在git svn clone中使用--no-metadata有什么好处吗?

Eri*_*ric 21 svn git version-control git-svn

我正在使用一个从SVN存储库到Git存储库的单向转换git svn clone.大多数示例使用--no-metadata标志执行此操作- 使用此标志是否有优势?

据我所知,该标志删除了SVN修订号.我可以想一想为什么保持这些可能有用的原因(例如回顾bug跟踪软件中提到的特定提交).

使用旗帜的理由什么--no-metadata?除了打破所有关系的感觉之外还有什么好处吗?

Mar*_*oth 15

使用的一个论点--no-metadata是它不会更改您的提交消息.因此,即使您从不同的位置获取,提交消息也是相同的,因此提交哈希值将是相同的.

例如,如果我git svn init是来自本地file:URL 的repo ,后来从https:URL中提取,则repo中的每个提交都将被复制,因为所有带有git-svn-id: file:///... 的提交都将被提取为git-svn-id: https:///...并使用新的SHA1进行编码.

如果我指定--no-metadata了提交消息,并且这个sha1将是相同的,我可以从本地文件系统或subversion服务器获取,因为在git repo中只有一个给定svn提交的单个副本.

我个人更喜欢它,如果有一个最小的元数据选项,它记录了subversion版本ID,但没有记录完整的元数据,但没有搞乱,git-filter-branch我们被困在全部或全部.


man*_*lds 10

实际上不推荐:

建议不要使用此选项,因为这样很难在现有文档,错误报告和存档中跟踪对SVN修订号的旧引用.如果您计划最终从SVN迁移到git并确定要删除SVN历史记录,请考虑使用git-filter-branch(1).filter-branch还允许重新格式化元数据,以便于阅读和重写非"svn.authorsFile"用户的作者信息.

  • 这根本不回答这个问题.我们知道它不推荐,但它存在; 有什么意义呢,它有什么用呢?想要使用此选项可能有什么理由? (18认同)