2010-02-03 46 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

相关问题