颠覆:强制用户在提交前更新
Subversion: force users to update before commit
我们如何强制使用 TortoiseSVN 的用户先 "Update" 他们的 b运行ch,然后才能 "Commit"?
我们今天早些时候 运行 讨论了这个问题:
- Joe 致力于 B运行ch1,修订版 101
- Bob 下载 B运行ch1,然后提交到 B运行ch1,修订版 102
- Joe 致力于 B运行ch1,修订版 103... 并且 SVN 从未像通常发生的那样告诉他"You must update before you can Commit"
另外:
- 乔在 /svnrepo/ProjectXYZ/branches/Branch1/DirectoryA/
工作
- Bob 在 /svnrepo/ProjectXYZ/branches/Branch1/DirectoryB/
工作
关于 reasons/ways SVN 的任何想法都会跳过不让用户先更新这一步吗?
我怀疑一旦 Bob 只在 DirectoryB 中进行了更改,然后他从 DirectoryB 级别而不是根级别进行了提交。
这意味着 none 的文件先前由 Joe 修改,其中受到 Bob 提交的影响。
换句话说,Bob 修改的所有文件都是最新的,因此不需要更新。
我看到 2 种可能的解决方案:
1)让每个人都从根级别提交 - 即在这种情况下为“/svnrepo/ProjectXYZ/branches/Branch1”
2)写一个svn预提交钩子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 注册为已更改。
如您所见,这些更改集没有共同的部分,因此不需要更新。
我们如何强制使用 TortoiseSVN 的用户先 "Update" 他们的 b运行ch,然后才能 "Commit"?
我们今天早些时候 运行 讨论了这个问题:
- Joe 致力于 B运行ch1,修订版 101
- Bob 下载 B运行ch1,然后提交到 B运行ch1,修订版 102
- Joe 致力于 B运行ch1,修订版 103... 并且 SVN 从未像通常发生的那样告诉他"You must update before you can Commit"
另外:
- 乔在 /svnrepo/ProjectXYZ/branches/Branch1/DirectoryA/ 工作
- Bob 在 /svnrepo/ProjectXYZ/branches/Branch1/DirectoryB/ 工作
关于 reasons/ways SVN 的任何想法都会跳过不让用户先更新这一步吗?
我怀疑一旦 Bob 只在 DirectoryB 中进行了更改,然后他从 DirectoryB 级别而不是根级别进行了提交。 这意味着 none 的文件先前由 Joe 修改,其中受到 Bob 提交的影响。 换句话说,Bob 修改的所有文件都是最新的,因此不需要更新。
我看到 2 种可能的解决方案:
1)让每个人都从根级别提交 - 即在这种情况下为“/svnrepo/ProjectXYZ/branches/Branch1”
2)写一个svn预提交钩子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 注册为已更改。 如您所见,这些更改集没有共同的部分,因此不需要更新。