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

时间:2017-03-17 22:41:59

标签: svn tortoisesvn

我们如何强制使用TortoiseSVN的用户进行更新"他们的分支在他们可以"承诺"?

之前

我们今天早些时候遇到了这个问题:

  • Joe致力于Branch1,修订版101
  • Bob下载Branch1,然后提交到Branch1,修订版102
  • Joe致力于Branch1,修订版103 ......并且SVN从未告诉过他"你必须先更新才能提交#34;通常会发生

另外:

  • Joe在/ svnrepo / ProjectXYZ / branches / Branch1 / DirectoryA /
  • 工作
  • Bob在/ svnrepo / ProjectXYZ / branches / Branch1 / DirectoryB /
  • 工作

有关原因/方式的任何想法SVN将跳过不首先让用户更新的步骤吗?

1 个答案:

答案 0 :(得分:4)

我怀疑Bob只在DirectoryB中进行了更改,然后他从DirectoryB级别提交,而不是从根级别提交。 这意味着Joe早先修改过的文件都没有受到Bob提交的影响。 换句话说,Bob修改的所有文件都是最新的,因此不需要更新。

我看到了两种可能的解决方案:
1)让每个人从根级别提交 - 即" / svnrepo / ProjectXYZ / branches / Branch1"在那种情况下 2)编写一个svn pre-commit hook 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文件更改为。 正如您所看到的,这些更改集中没有共同的部分,因此不需要更新。