在从SVN迁移到git的过程中,我们正在评估Stash中的SVN Mirror Stash plugin(SubGit)。
我们的一个要求是在SVN存储库中可以使用git版本哈希,可以是自定义revprop,也可以是JSON格式的日志消息。
基本上我试图改变this question中描述的内容。
我控制了git repo和svn repo,我很乐意写一个自定义的钩子/脚本,但我还没有找到合适的位置插入这个钩子,或者subgit或stash文档。我也对插入此类功能的最佳做法非常感兴趣。
答案 0 :(得分:0)
在@Brilliantnut和support@subgit.com之间讨论此问题后,只需简短摘要:
我们的团队决定支持特殊类型的修订属性,这些属性保留相应Git提交的元数据信息:作者,提交者,时间戳,提交ID等。
我们发布新版本并实施此功能后,我会立即更新此答案。
更新
为了在Subversion存储库中设置Git特定的修订属性,请按如下方式调整SubGit配置文件:
$ edit GIT_REPO/subgit/config
[svn]
...
revisionProperties = committer, author, date, log, commit
...
然后运行subgit install
以激活此配置更新:
$ subgit install GIT_REPO
之后,SubGit为每个修订版设置以下属性,从Git转换为SVN:
subgit:committer="Git Committer <git.committer@company.com>"
subgit:author="Git Author <git.author@company.com>"
subgit:date="2015-06-10 16:46:01 +0400"
subgit:log="fix foo"
subgit:commit=9039c430e12d25c3ef250c8e49c4a57877c36343
您还可以通过调整配置选项来选择要设置的属性:
[svn]
...
revisionProperties = date, log, commit
...
此功能存在以下限制:
subgit:*修订版属性未在SVN用户提交的修订版上设置,也未由SubGit从Git提交转换;
如果在已经与SVN存储库同步的提交中添加/删除新的Git分支或标记,则SubGit会创建一个新的SVN修订版,该修订版没有子标记:*属性集。