Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Git - Problem mit Mac SMB Share? (https://www.delphipraxis.net/179003-git-problem-mit-mac-smb-share.html)

jensw_2000 7. Feb 2014 17:32

Git - Problem mit Mac SMB Share?
 
Moin,
ich habe heute SourceTree installiert und ein paar Testprojekte unter Versionskontrolle gestellt. Das hat mir ganz gut gefallen.

Jetzt möchte ich nach und nach Repositories für meine Produktivprojekte erstellen.
Bei lokalen Projektverzeichnissen hat das bisher problemlos funktioniert. Ich bekomme es aber nicht hin, ein Projekt, das auf einem SMB Share auf meinem Mac liegt zu versionieren.
Beim stagen kommt die Meldung
Code:
"error: unable to write sha1 filename .git/objects/c3/b8f368a73182a50abe7863f31281c59066f32b: Permission denied"
Ich halte das für einen Bug, bin mir aber nicht ganz sicher, ob es nicht doch Unfähigkeit meinerseits ist ...
Wenn ich die Freigabe \\Mac\Dev\ProjektXYZ\.git\objects\c3\ von meinem PC aus im Explorer öffne, dann kann ich problemlos Dateien erstellen und löschen.
Der Fehlermeldung "Permission denied" traue ich daher nicht ganz.

Kann mir jemand auf die Sprünge helfen?

jfheins 7. Feb 2014 17:40

AW: Git - Problem mit Mac SMB Share?
 
Wäre es eine Möglichkeit, ein bare repo vorzuhalten und den Transfer zwischen Win und Mac via git push/pull zu erledigen?

SourceTree hatte wohl in der Vergangenheit schon kleine Probleme bei Repos auf Netzlaufwerken: https://answers.atlassian.com/questi...e-on-smb-share https://answers.atlassian.com/questi...n-sshfs-volume

jensw_2000 7. Feb 2014 17:52

AW: Git - Problem mit Mac SMB Share?
 
Zitat:

Zitat von jfheins (Beitrag 1247108)
Wäre es eine Möglichkeit, ein bare repo vorzuhalten und den Transfer zwischen Win und Mac via git push/pull zu erledigen?

Ich glaube schon :wink:
So wie ich das eben auf die schnelle gelesen habe ist ein bare repo ein "leeres" lokales Repo, dass nur den .git Ordner enthält. Das dürfte den Fehler umgehen.
Frage ist jetzt nur, wie ich das konfigurieren kann. In der SourceTree Gui finde ich keine "bare Option" und mit der Git Commandline bin ich nach ein paar Stunden "Spielen" echt noch nicht fit. Ich habe etwas Angst mir meine iOS Projekte auf dem Mac Share wegzuREPROduzieren. :)

Kannst Du kurz weiterhelfen?

sx2008 7. Feb 2014 18:06

AW: Git - Problem mit Mac SMB Share?
 
Nimm das .git-Verzeichnis und kopiere es mit dem Namen xxxxxx.git irgendwo hin.
Die xxxxxx stehen dabei für einen Projektnamen den du frei wählen kannst.
Dann die Datei "config" in dem Verz. mit einem Editor öffnen und den Eintrag "bare = false" auf "bare = true" setzen.

jensw_2000 7. Feb 2014 19:20

AW: Git - Problem mit Mac SMB Share?
 
Ich drehe mich im Kreis.

Auf dem Mac Share gab es bis vorhin nur das Projektverzeichnis (ohne Versionskontrolle). Von Windows aus habe ich dann vorhin versucht das Repo zu erstellen - wobei es zu diesem "access denied" Fehler beim ersten Staging-Versuch kam.
In dem so entstandenen .Git Verzeichnis auf dem Mac Share wurde also noch erfolgreich gestaged bzw. ein initiales Commit gemacht.

Dieses .Git Verzeichnis habe ich jetzt wie beschrieben auf meinen PC kopiert, in meinProjekt.git umgemannt und die bare in der Config auf true gesetzt.

In SourceTree kann damit nicht viel anfangen, weil bei jeder Aktion "git Status Error - No Working Copy" kommt.

Dann habe ich in diesem lokalen bare Repo mein Mac Share Projektverzeichnis als "remote" registriert und versucht zu pullen. Das klappt nicht - da wegen des fehlenden Stagings bzw. Commits auf dem Mac Share noch kein "master Branch" existiert, den ich beim pullen auswählen könnte.

jfheins 7. Feb 2014 19:34

AW: Git - Problem mit Mac SMB Share?
 
Oha :cyclops: also dieses defekte bare-Repo kannst du bitte erstmal entsorgen.
Dann mal auf Anfang ... hast du SourceTree auch auf dem Mac installiert?

Die Schritte wären ungefähr so: Auf dem Mac Share legst du ein bare Repo an. Das geht leider nit mir Sourcetree, daher über die Kommandozeile:
Code:
$ mkdir test.git
$ cd test.git
$ git init --bare
Initialized empty Git repository in c:/Daten/test.git/
$
Es ist Konvention, aber kein muss, dieses Verzeichnis mit ".git" enden zu lassen. Statt "test" solltest du natürlich etwas wählen, was dem Projektnamen näher kommt.

Jetzt gehst du auf dem Mac irgendwo anders hin und klonst dieses Repo mit Sourcetree in einen neuen Ordner. Dann schiebst du dein Projekt da hinein und commitest und pushst.
Auf Windows kannst du nun das Repo auf dem Netzlaufwerk klonen und pullen.

Ich habe aber auch schon mehrmals gelesen dass SAMBA jetzt nicht so toll mit git zusammen arbeitet. Nonplusultra wäre hier ein kleiner Linux-Server (Rasperry PI oder BeagleBone Black sollte langen) mit einem SSH Server. Ist aber natürlich etwas aufwändiger aufzusetzen.

jensw_2000 7. Feb 2014 20:36

AW: Git - Problem mit Mac SMB Share?
 
Das hat geklappt. Danke.
Sourcetree und die Git Commandline Tools hatte ich natürlich noch auf dem Mac installiert.:oops:

Aber ich glaube ich muss mir trotzdem eine andere Lösung ausdenken.
Du hast Recht, das läuft wirklich nicht sehr stabil über SMB.
Von 10 Test-Pulls schmiert mindestens einer ganz böse ab:
Code:
fatal: The remote end hung up unexpectedly
Mal schauen ob Xcode besser mit SMB klarkommt.
Dann lege ich mir die paar iOS Sachen lieber auf ein Windows Share und nutze nur das lokale Git.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz