如何使用SubGit在同步的SVN仓库中找到Git Revision Hash?

时间:2015-06-08 15:29:08

标签: git svn version-control bitbucket-server subgit

在从SVN迁移到git的过程中,我们正在评估Stash中的SVN Mirror Stash pluginSubGit)。

我们的一个要求是在SVN存储库中可以使用git版本哈希,可以是自定义revprop,也可以是JSON格式的日志消息。

基本上我试图改变this question中描述的内容。

我控制了git repo和svn repo,我很乐意写一个自定义的钩子/脚本,但我还没有找到合适的位置插入这个钩子,或者subgit或stash文档。我也对插入此类功能的最佳做法非常感兴趣。

1 个答案:

答案 0 :(得分:0)

@Brilliantnutsupport@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
    ...

此功能存在以下限制:

  1. subgit:*修订版属性未在SVN用户提交的修订版上设置,也未由SubGit从Git提交转换;

  2. 如果在已经与SVN存储库同步的提交中添加/删除新的Git分支或标记,则SubGit会创建一个新的SVN修订版,该修订版没有子标记:*属性集。