2017-03-17 59 views
3

我们如何强制用户使用TortoiseSVN在他们可以“提交”之前更新他们的分支?Subversion:强制用户在提交之前更新

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

  • 乔承诺分支1,修订101
  • 鲍勃下载Branch1的,然后提交到分支1,修订102
  • 乔承诺分支1,修订103。 ..和SVN从来没有告诉过他:“你必须更新,然后才能提交”作为通常发生

另外:

  • 乔是工作在/ svnrepo/ProjectXYZ /分支机构/分支1/DirectoryA/
  • 鲍勃在工作/ svnrepo/ProjectXYZ /分支机构/分支1/DirectoryB/

的原因/途径SVN任何想法会跳过这一步不先让用户更新?

+2

我从来没有见过Subversion有这样的行为 - 它**总是**提示更新过时的工作副本。这里有一些你可以忽略的工作流程。或者,也许你的用户正在对不同的子目录进行修改,在提交之前并不总是需要'update'。 – alroc

+0

我更新了这个问题,以包括Joe和Bob在不同的目录中工作的事实 – SED

回答

3

我怀疑,一旦Bob只在DirectoryB中进行了更改,他就从DirectoryB级别进行了提交,而不是从根级进行提交。 这意味着,以前由Joe修改的文件都不受Bob的提交影响。 换句话说,所有由Bob修改的文件都是最新的,所以不需要更新。

我看到2个可能的解决方案:
1)让每个人都从根级别提交 - 即 “/ svnrepo/ProjectXYZ /分支机构/分支1” 在这种情况下
2)写一个SVN pre-commit钩子http://svnbook.red-bean.com/en/1.7/svn.ref.reposhooks.pre-commit.html

**对于我所说的从关卡中提交的意思有点长解释,为什么在这种情况下这很重要。

因此,可以说是从乔根级别

cd /svnrepo/ProjectXYZ/branches/Branch1 
svn commit DirectoryA/Hello.java 

然后COMMITED改性被Branch1的目录,目录DirectoryA和Hello.java文件

然后鲍勃DirectoryB水平COMMITED什么SVN注册

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

然后svn只注册DirectoryB和文件Hello2.java被更改。 正如你所看到的,这些改变没有共同部分,所以不需要更新。

相关问题