我的项目在网络文件系统上有一个Subversion存储库,新团队希望使用Git访问它,并能够向其提交和获取更新。
我想到的方法是在同一网络文件系统上创建一个新的裸的git-svn
克隆子版本库,并确保两个仓库始终保持相互更新。
要做到这一点,可能需要为Subversion和新的Git仓库添加后置挂钩,以便每个仓库都可以更新另一个仓库。
Subversion后置挂钩将包括git svn rebase
,而Git的后置挂钩将包括git svn dcommit
。
问题在于,在另一个仓库提交时,必须使用某种锁定机制确保没有人提交到任何一个仓库,因为任何提交之前它们总是需要保持同步。这带来了一些缺点,其中包括提交到Subversion或推送到Git存储库所需的时间(必须等待挂钩完成),以及一些用户可能无法运行git svn
(因为它没有安装在他们的计算机上),这意味着他们无法在提交/推送时更新其他存储库。
我该如何解决这些问题?Subversion和Git的后置挂钩是什么样子的?
git config hooks.denycreatebranch false
@Daniel 你是不是想说“true”? - basin