2011-07-27 44 views
3

故事是這樣的......管理Windows和Mac之間的權限git commiters

我的團隊在Windows文件服務器上有一個git repo。一個窗戶傢伙設置回購並開始提交。我是一名蘋果電腦的人,克隆到我的文件系統,做出一些提交,然後推回去(實際上我去了回購,並拉我的更改)。現在的問題是我對repo中的文件擁有自己的權限,即使我已經將文件夾中的每個人都讀取/寫入權限,但是repo以某種方式在Windows操作系統上有額外的權限限制,而且我的同事無法承諾。

該情景也可以以其他方式發揮作用。我建立了回購協議,並且一個Windows用戶鎖定了權限。

那麼你們如何確保不同開發環境之間的權限是一致的呢?

+0

爲什麼要去windows回購,然後'拉'?您應該有一個可以通過訪問的裸露回購站。 ssh或git協議。雙方應該從/回推該回購。 –

+0

我同意裸回購,但那不是我們工作的環境。我們不使用傳統的git設置。將這種方式使用裸回購解決我的問題? – sbartell

+0

@Noufal更具體地說,您是否有一個由Windows和Mac用戶組成的團隊,他們在描述方式時沒有權限衝突?或者,如果你不這樣做,你是否知道有一種可靠的防火方法來避免我遇到的問題? – sbartell

回答

1

也許你可以嘗試配置core.sharedRepository

core.sharedRepository 

在組(或真),庫被多個用戶之間的組中取得共享(確保所有的文件和對象是基團 - 可寫)。

  • 當所有人(或世界或所有人)存儲庫將被所有用戶閱讀時,除了羣組共享之外。
  • umask(或false)時,git將使用umask(2)報告的權限。
  • 0xxx,其中0xxx是一個八進制數,存儲庫中的文件將具有此模式值。 0xxx將覆蓋用戶的umask值(而其他選項將僅覆蓋用戶的umask值的所需部分)。
    示例:0660將使所有者和組的回購可讀/可寫,但其他人無法訪問(相當於組,除非umask是例如0022)。
    0640是一個組可讀但不可分組寫入的存儲庫。參見git-init(1)。

默認爲False

+0

好吧,所以基本上git配置會選擇這種方式的權限,不管是什麼? – sbartell

+0

@sbartell:這是主意,覆蓋用戶默認的umask。 – VonC

+0

這是要走的路。在編寫這個問題的時候我沒有意識到的是,Windows服務器強制只讀權限(管理員除外)放置在其中的任何文件。所以我拉的任何東西都是隻讀的。這解釋了這一點。 – sbartell