Subversion:强制用户在提交之前更新

4
我们如何强制使用TortoiseSVN的用户在“提交”之前“更新”他们的分支?
今天我们遇到了以下问题:
- Joe对Branch1进行提交,修订版101 - Bob下载Branch1,然后向Branch1进行提交,修订版102 - Joe对Branch1进行提交,修订版103...但SVN从未告诉他“必须在提交前更新”,这通常是会出现的。
此外:
- Joe正在/svnrepo/ProjectXYZ/branches/Branch1/DirectoryA/中工作 - Bob正在/svnrepo/ProjectXYZ/branches/Branch1/DirectoryB/中工作
有什么原因或方法可以使SVN跳过不需要让用户先更新的步骤吗?

2
我从未见过Subversion表现出这种方式 - 它始终会提示更新过期的工作副本。你在这里的工作流程中可能忽略了某些东西。或者,也有可能是你的用户在不同的子目录中进行修改,这并不总是需要在提交前进行“更新”。 - alroc
我已更新问题,包括Joe和Bob在不同目录中工作的事实。 - SED
1个回答

4
我怀疑Bob只在DirectoryB中进行了更改,然后从DirectoryB级别而不是根级别进行了提交。这意味着Joe早期修改的任何文件都不会受到Bob的提交的影响。换句话说,Bob修改的所有文件都是最新的,因此不需要更新。
我看到有两种可能的解决方案:
1)让每个人从根级别提交——即在这种情况下为“/svnrepo/ProjectXYZ/branches/Branch1”
2)编写一个svn pre-commit钩子http://svnbook.red-bean.com/en/1.7/svn.ref.reposhooks.pre-commit.html ** 对我所说的提交级别进行更详细的解释以及为什么在这种情况下很重要。
所以假设Joe从根级别提交。
cd /svnrepo/ProjectXYZ/branches/Branch1
svn commit DirectoryA/Hello.java

那么svn注册为修改的是Branch1目录、DirectoryA目录和Hello.java文件。

然后Bob从DirectoryB级别提交了。

cd /svnrepo/ProjectXYZ/branches/Branch1/DirectoryB
svn commit Hello2.java

然后svn仅将DirectoryB和文件Hello2.java注册为已更改的内容。 正如您所看到的,这两组更改没有共同部分,因此不需要更新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接