繁体   English   中英

如何将svn存储库中的已删除路径导入git或mercurial

[英]How to import a deleted path in a svn repositroy into git or mercurial

我需要对公司svn存储库中svn删除路径中的源进行一些研究。 由于我需要做很多与注释相关的工作,因此我希望以历史记录或git记录历史。 到目前为止,我尝试过:

  • hgsubversiongit-svn :对于这两个程序,我都找不到一种指定存在路径的旧版本的方法,请尝试svn HEAD并由于路径被删除而失败。
  • hgsvn :它找到旧路径(带有钉修订版),但是由于它想从svn HEAD修订版中获取日志,而该路径不再存在,因此无法进行初始更新。

那么有没有办法将已删除的svn路径导入git或hg?

假设在版本117中删除了该路径,则hgsubversion应该可以使用以下命令:

hg clone -r 116 http://svn.example.com/whereever

(我最近没有对此进行测试,但是应该可以。如果不这样做,则是一个错误……)

您还应该注意,尽管khmarbaise声明了什么,但是关闭Mercurial中的分支不会将其从历史记录中删除。 除非给出-c/--closed参数,否则关闭分支只会将其隐藏在hg heads

据我所知git和hg都不能够处理已删除的路径。 如果您在git中删除分支,则该分支将从历史记录中删除。

从您的问题尚不清楚,为什么需要git或hg。 您可以只使用svn annotate 分析SVN中已删除的对象不是问题,您可以像这样使用钉修订

svn annotate http://example.com/svn/somefile@321

即使在321版修订后的某个时间删除或重命名了某个文件,此功能也将起作用。

编辑:考虑之后,我猜你想要hg / git,因为拥有版本库的本地副本可能会大大加快注释的速度。 通过使用svnsync在本地文件系统上创建镜像存储库并使用file:/// URL访问它,可以使用svn达到相同的目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM