2017-03-17 61 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被更改。 正如你所看到的,這些改變沒有共同部分,所以不需要更新。

相關問題