2010-02-03 42 views
2

在SVN中,您可以簽出(阻止其他人在同一個文件上工作)。你可以在GIT中做到這一點嗎?看起來你必須建立第二個系統,告訴人們哪些文件正在被GIT的人編輯?在SVN中,您可以簽出(阻止其他人),您可以在GIT中執行此操作嗎?

+7

這不是所謂的「退房」,檢查出越來越在SVN工作拷貝/ CVS說話。大概你的意思是在文件上獲得'獨佔鎖'?通過'svn lock'命令實現。 –

+2

而且當時的「諮詢」鎖 - 任何人都可以打破它。它只是一個交流工具。 –

回答

12

Git不會有一箇中央存儲,您可以查詢到檢查文件是否被「鎖定」。由於它的分佈式特性,一個存儲庫可能在1000臺計算機上,並且它們都是平等的。如果你允許他們全部鎖定一個文件,並讓他們與其他所有的存儲庫通信,那麼所有文件基本上都會被鎖定。

所以,不,你不能這樣做,在Git的。相反,依靠經常更新和處理奇怪的合併衝突。

你可以閱讀有關distributed version control systems on Wikipedia

5

這不會使一個很大的意義與DVCS(如「分佈式」)

所有你能做的就是設置一個「中央」回購這將不接受非快速向前推進,這將使在將其推向「中央」回購之前,您先重新開始工作。

但同樣,有沒有在你的所有的歷史存儲在本地,並從所有其他的「服務器」 VCS完全隔離可以工作一個VCS「鎖定」的概念。

+0

又見http://stackoverflow.com/questions/2171823/svn-monitor-like-software-for-git-repositories/2171914#2171914 – VonC

2

Git中(或任何分佈式版本控制系統),問題不在於「你可以鎖定文件?」,而是「爲什麼會有人使用VCS中鎖定一個文件需要或期望?」 DVCS的工作流程/心態只會使操作完全不合理。這與詢問當您甚至不知道要使用哪個框時如何鎖定所有1000個不同框中的/ etc/password相似。

你不要阻止他們編輯的文件拷貝控制其他開發人員的訪問。您可以通過決定將哪些修補程序放入您的代碼副本來控制訪問。

+2

鎖定一個文件時,文件中包含的內容是不是人類可讀是有用的,因此不能合併。 DVCS'是否有處理無法合併的文件的機制? – RjOllos

相關問題