Svn 什么是更有效的版本控制方法:签出还是合并?

Svn 什么是更有效的版本控制方法:签出还是合并?,svn,version-control,perforce,Svn,Version Control,Perforce,我一直使用Subversion或CVS进行版本控制,它们使用“合并”方法。我的一个朋友对Perforce赞不绝口,说它的变更列表和签出方法非常棒 虽然我确信这很大程度上取决于经验和个人偏好,但我想知道是否有人对哪种版本控制方法更有效进行过研究 编辑:为了澄清,我知道Perforce和SVN都允许锁定和合并,但SVN“鼓励”自由的编辑和合并方法,而据我所知,Perforce鼓励签出签入方法。合并更有效。原因很简单,对同一文件同时进行的更改往往很常见,而“合并”允许您从中恢复。相比之下,单次签出可以

我一直使用Subversion或CVS进行版本控制,它们使用“合并”方法。我的一个朋友对Perforce赞不绝口,说它的变更列表和签出方法非常棒

虽然我确信这很大程度上取决于经验和个人偏好,但我想知道是否有人对哪种版本控制方法更有效进行过研究


编辑:为了澄清,我知道Perforce和SVN都允许锁定和合并,但SVN“鼓励”自由的编辑和合并方法,而据我所知,Perforce鼓励签出签入方法。

合并更有效。原因很简单,对同一文件同时进行的更改往往很常见,而“合并”允许您从中恢复。相比之下,单次签出可以避免一点点额外的工作,但这样做的代价是日程安排效率低下。通常,将两个更改合并到同一个文件需要很短的时间(如分钟),而对文件进行更改则需要很长的时间(如许多小时或几天),因此阻止对文件进行编辑是一种极大的低效


请注意,Perforce不强制签出方法,它允许并发签出(相当于合并)。

合并更有效。原因很简单,对同一文件同时进行的更改往往很常见,而“合并”允许您从中恢复。相比之下,单次签出可以避免一点点额外的工作,但这样做的代价是日程安排效率低下。通常,将两个更改合并到同一个文件需要很短的时间(如分钟),而对文件进行更改则需要很长的时间(如许多小时或几天),因此阻止对文件进行编辑是一种极大的低效


请注意,Perforce不强制使用签出方法,它允许并发签出(相当于合并)。

不确定该研究,但这里有一个数据点供您参考:

我的团队选择PVCS(结账)主要是因为舒适。对合并的怀疑和对Subversion等工具的缺乏了解肯定是造成这种情况的原因。

不确定这项研究,但这里有一个数据点供您参考:

我的团队选择PVCS(结账)主要是因为舒适。对合并的怀疑和对Subversion等工具的缺乏了解肯定是造成这种情况的原因。

我不确定我是否理解这里的问题-我不知道有任何现代源代码管理系统(除了Visual SourceSafe)这不完全支持合并。

我不确定我是否理解这里的问题-我不知道有任何现代源代码管理系统(除Visual SourceSafe外)不完全支持合并。

也许你指的是源代码安全而不是性能?Perforce支持合并,事实上,在添加了命名合并的SVN 1.5之前,它比SVN更好地支持合并(以及更改列表,Perforce一直都有更改列表,我很想搬到一家使用SVN的商店,但在1.5经过更多时间测试之前,我们不会升级。)

值得注意的是,SVN和Perforce都允许您执行锁定签出,因此如果需要,您可以执行“未合并”模型,但除了使用版本控制管理二进制文件之外,我认为这没有多大用处


无论如何,对您的问题的简单回答是“只要涉及到多个开发人员,合并模型就会更好。”

也许您的意思是源代码安全而不是性能?Perforce支持合并,事实上,在添加了命名合并的SVN 1.5之前,它比SVN更好地支持合并(以及更改列表,Perforce一直都有更改列表,我很想搬到一家使用SVN的商店,但在1.5经过更多时间测试之前,我们不会升级。)

值得注意的是,SVN和Perforce都允许您执行锁定签出,因此如果需要,您可以执行“未合并”模型,但除了使用版本控制管理二进制文件之外,我认为这没有多大用处


无论如何,对您的问题的简单回答是“只要涉及到多个开发人员,合并模型就更好了。”

如果我理解正确,Perforce会将所有未签出的文件设置为只读。这与Microsoft TFS和VSS下的行为类似。另一方面,Subversion不设置只读属性。在我看来,Subversion方法更简单,因为您不必为了修改文件而麻烦使用源代码管理客户端——您可以不计后果地进行修改,然后在准备签入时将磁盘上的更改与服务器上的更改进行比较


当所有文件都是只读的时候,我发现自己不断地更改一个文件,试图保存,发现它是只读的,然后不得不跳到源代码管理客户机去检查它。如果将源代码管理客户端集成到编辑器中,情况还不错,但如果您在版本控制下存储非源代码的内容,则通常不会选择此选项。

如果我理解正确,Performce会将所有未签出的文件设为只读。这与Microsoft TFS和VSS下的行为类似。另一方面,Subversion不设置只读属性。在我看来,Subversion方法更简单,因为您不必为了修改文件而麻烦使用源代码管理客户端——您可以不计后果地进行修改,然后在准备签入时将磁盘上的更改与服务器上的更改进行比较

当所有文件都是只读的时候,我发现自己不断地更改一个文件,试图保存,发现它是只读的,然后不得不跳到源代码管理客户机去检查它。如果将源代码管理客户机集成到编辑器中,情况还不错,但是如果您在版本控制下存储非源代码的内容,那么这通常不是一个选项

如果我