当前位置:  开发笔记 > 运维 > 正文

git提交者和SVN用户之间的映射

如何解决《git提交者和SVN用户之间的映射》经验,为你挑选了1个好方法。

我正在使用git-svn来存储一些SVN仓库的"暂存"版本,允许其他用户从此暂存仓库中提取并提交更改回来,然后暂存仓库上的提交定期提交给上游SVN回购

我想知道是否有办法在git提交者的名字和SVN用户名之间进行映射,以便在提交回SVN回购时它们的信息将保持不变?



1> VonC..:

使用git svn时,Vincent Danen确实提到了-A选项:

因此,使用〜/ git作为Git存储库的顶级目录,可以[...]创建authors.txt文件.
此文件将Subversion提交者的名称映射到Git作者,从而生成导入的Subversion存储库的正确历史记录.
对于具有少量提交者的项目,这非常简单.对于拥有大量提交者的大型项目,这可能需要一些时间.该文件的语法是:

user = Joe User 
vdanen = Vincent Danen 

短名称是Subversion的提交者名称,而长格式是用户的全名和电子邮件地址,由Git使用.

最后一步是克隆Subversion存储库,该存储库基于它创建一个本地Git存储库.假设您的存储库使用/ trunk,/ tags和/ branches的标准,请使用:

# git svn clone --no-metadata -A authors.txt -t tags -b branches -T trunk https://svn.example.com/svn/repo

-A
--authors-file=

语法与git-cvsimport使用的文件兼容:

loginname = Joe User 

如果指定了此选项并git-svn遇到authors-file中不存在的SVN提交者名称,则git-svn将中止操作.
然后,用户必须添加适当的条目.修改authors文件后
重新运行上一个git-svn命令应继续操作.

config key: svn.authorsfile

这适用于所有git-svn命令,包括git-svn dcommit(当您推送到 SVN时)(注意:我没有直接测试它).

Mohammed Gamal确实报告(在评论中)它正在运作,但没有--no-metadata选择权.


您的解决方案有效,但没有--no-metadata切换
它对我不起作用 - 所有提交都以用户*root*的形式提交给SVN.虽然我使用`file:`方案,但我注意到你使用的是`https:`.您在Apache中使用哪种身份验证方法允许设置svn:author?
推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有