git-svn的钩子

iam*_*mac 13 git version-control hook git-svn

我可以为git-svn托管存储库中的"拉"/"推"设置挂钩吗?

情况是我在Google Code上有一个项目主持人,并使用git来管理本地工作副本.我想设置一些,以便从/检查时输入/输出数据到SVN仓库与git svn fetchgit svn dcommit,我可以做一些修改提交.由于我没有托管SVN存储库,因此我无法在服务器端设置挂钩.

我可以使用任何钩子吗?或者是有办法"标记"一个普通的分支,以便git pullgit push该分支将登入/登出从/到SVN仓库,而不是,因此可以使用普通的Git挂钩?

提前致谢.

Von*_*onC 9

正如说明此线程,你可以在这实际上可以拒绝你的Subversion的侧钩git svn dcommit基于某些条件.

但是如果你需要Git端的git钩子,我建议你设置一个中间 Git存储库(裸机以便于推/拉).
在那个裸仓库上,你可以拥有你需要的任何钩子,如" 我如何通过git push将多个分支部署到不同的目录? "中所示(不是关于svn而是仅仅是为了详细说明额外仓库的类似设置)

  • 如果中间回购验证您的推送,它可能会触发git svn dcommit.
  • 在允许您自己前进之前git fetch,它还可以根据请求触发git svn fetch并验证它git fetch.

(2年后)

David Souther他的博客中提出了一个解决方案(2012年4月)

我的解决方案是拥有一个带有分头的存储库.大多数情况下,中间存储库将具有空的工作目录.当推送发生时,它将检出master,验证构建,并推送到svn,然后返回空分支.

我们将设置一个带有两个分支的中间git仓库.

  • 大师仍将指向SVN回购,
  • 并且新分支stage将让我们保持工作目录的清洁并与下游更改保持同步.

看看他的要点.