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



我正在使用git svn clone进行从SVN存储库到Git存储库的单向转换。大多数例子都是用--no-metadata标志来做的——使用这个标志有什么好处吗?

我理解该标志删除了SVN的修订号。我可以想到为什么保留这些代码是有用的原因(例如,引用bug跟踪软件中提到的特定提交)。

使用--no-metadata标志的参数是什么?除了打破所有束缚的感觉之外,还有什么好处吗?

使用--no-metadata的一个理由是它不会改变您的提交消息。因此,即使您从不同的位置获取,提交消息将是相同的,因此提交哈希值将是相同的。

作为一个例子,如果我从本地file: URL git svn init一个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,我们被全部或没有。

实际上不建议:

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

相关内容

最新更新