2

subversion 的一个问题是它仅通过用户名来识别提交。例如,Git 允许将全名和电子邮件地址作为元信息添加到提交中。一些组织需要难以映射到人员的用户帐户。其中一些组织还需要使用 svn。使这种情况对代码审查员可行会导致我提出以下问题:

  • 是否可以在提交中保留一些元信息,以便我可以让 svn 进行映射

或者如果这是不可能的,

  • 我将如何使用 git-svn 在本地系统上进行映射
4

2 回答 2

1

您可以在任何 subversion 修订上设置自定义修订属性(有关详细信息,请参阅http://svnbook.red-bean.com/en/1.7/svn.advanced.props.html)。

$ svn propset property_name property_value -r<REV> --revprop
property 'property_name' set on repository revision <REV>

这可以在提交后挂钩脚本中调用(脚本可以查看修订作者,查找短作者姓名以使用一些映射文件解析完整的作者信息,例如 authors.txt --- 见下文)。

Git<->SVN 翻译解决方案,如 subgit 或 git-svn 也可以使用以下格式的 authors.txt 映射:

shortname = Long Name <email@example.com>
anothername = Another Long Name <email2@example.com>
...

对于每个 git-svn 命令(对于 git-svn --authors-file仅适用于 SVN->Git 翻译,Git->SVN 始终在用户名下创建修订版;对于 subgit,该选项可双向使用)。

于 2012-07-10T10:39:02.540 回答
1

如果您需要使用 git-svn 将“git 用户”映射到“颠覆用户”,我建议使用 --authors-prog 选项来“git svn clone”。例如,您将创建 my-complex-mapping.sh ,它将 subversion 用户作为其第一个参数,然后回显您希望 git 使用的“Git User”名称。然后你会运行“git svn clone --authors-prog=$HOME/my-complex-mapping.sh”

于 2012-07-24T20:09:01.293 回答