2012-05-17 5 views
8

Ich möchte ein Git-Projekt (von Github, sagen) klonen, und die oberste Ebene Verzeichnis für Gruppe beschreibbar sein.'Git Clone' respektiert Umask, außer für Top-Level-Projekt-Verzeichnis

Ich habe ein paar verschiedene Dinge ausprobiert. Zuerst muss nur die Umask vor dem Klonen gesetzt werden.

$ umask 
0002 

Dateien, die ich erstellen sind dann beschreibbar Gruppe

$ touch test 
$ ls -l test 
-rw-rw-r-- 1 user group 0 2012-05-17 09:32 test 

Jetzt versuche ich git clone

$ git clone [email protected]:user/repo.git 
Cloning into repo... [succeeds] 

Aber das Klon-Verzeichnis von Gruppe nicht beschreibbar.

$ ls -ld repo 
drwxr-xr-x 11 user group 4096 2012-05-17 09:32 repo 

habe ich versucht, das Gleiche mit einem Repo erstellt mit git init --shared=umask (die bereits dem Standard sein soll) in einem Verzeichnis mit 775 Berechtigungen. Nach dem Drücken auf Github git clone erhält die gleichen Ergebnisse.

Das ist keine große Sache, ich kann chmod in meine Checkout-Skripte. Aber wenn es einen richtigen/eingebauten Weg gibt, ist das vorzuziehen. Git ist Version 1.7.4.1 auf Ubuntu 11.04.

Alle Ideen oder Links sind willkommen. Ich sah this post, but it uses chmod, ich konnte nicht viel anderes dazu finden. Vielen Dank!

Antwort

2

Versuchen Sie, die globale "core.sharedRepository = Gruppe" nur für den Klon-Befehl setzen:

git -c "core.sharedRepository=group" clone [email protected]:user/repo.git 
ls -ld repo/.git 
drwxrwsr-x 8 user user 4096 Jul 4 22:16 repo/.git/ 
+0

Hey @ fork0, danke für die Antwort. Mein .git-Verzeichnis und alle Projektdateien sind bereits gruppierbar, dank meiner umask. Um zu verdeutlichen, versuche ich, dass das oberste Verzeichnis des Projekts eine Gruppe schreibbar ist (dh "ls -ld repo" würde "drwxrwxr-x" anzeigen). Das Festlegen von 'core.sharedRepository = group' macht dasselbe wie' git init --shared = group' hinter den Kulissen und macht das oberste Verzeichnis nicht für Gruppen schreibbar. –

+0

Ich verstehe. Nein, tut es nicht – fork0

+0

Also ja, tut es nicht. Ich glaube nicht, dass Git etwas dafür hat, aber lassen Sie mich überprüfen ... – fork0