0

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

我们的要求之一是 git 修订哈希在 SVN 存储库中可用,可以在自定义 revprop 中,也可以通过 JSON 格式的日志消息。

本质上,我正在尝试与此问题中描述的相反。

我同时控制 git repo 和 svn repo,我很高兴编写自定义钩子/脚本,但我无法在 subgit 或 stash 文档中找到插入此钩子的合适位置。我也对插入此类功能的最佳实践非常感兴趣。

4

1 回答 1

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 会创建一个没有设置 subgit:* 属性的新 SVN 修订。

于 2015-06-10T21:32:28.273 回答