繁体   English   中英

'git svn clone'ing时保留复制的TAG的SVN历史记录

[英]Preserve SVN history of copied TAG when 'git svn clone'ing

我正在将一些SVN项目迁移到git。

我想将某个标签克隆到自己的git存储库中。

通过在TAG路径上执行git svn克隆,我松开了svn复制之前的所有历史,该历史首先创建了标记。

有没有办法在新的git项目中保留原始历史记录? (我可以在自己选择的IDE中浏览SVN历史记录,因此SVN似乎能够提供所需的信息)

提醒:我不希望带有类似于SVN结构的分支和标签的主干项目。 我想要一个仅包含TAG和所有历史记录(包括标记创建之前的修订)的单独项目

检查--follow-parent标志:

 git svn clone --follow-parent https://path.to/svnroot/repo/tags/0.12

编辑:

但是请注意, git svn只会看到克隆目录上下文中的内容; svn-tagging通常涉及将一个目录复制到另一位置,因此您需要整个目录树(包含“ trunk”和最后的“ tagX”导向器),以便有足够的上下文使git起作用。 这样做的原因是,git将拒绝将任何东西从git-repository本身之外的路径复制到git-repository本身之外的路径(这很有意义)。 svn可以查看整个历史记录,因为它确实具有完整的上下文(在服务器上,即使您仅在本地计算机上进行了部分签出)

因此,为了将完整的历史记录保存到git svn克隆中,您可能确实确实需要克隆整个项目(也就是说,至少要同时包含主干和tag-dir的目录)。

所以进行的方式是:

  • 做一个完整的git svn clone你的svn库中,并可以指定主干/标签/分支目录( --trunk--tags--branches如果你有一些特殊的设置或使用标志--stdlayout如果回购在组织标准的/ trunk,/ tags /...、/ branches / ...方式)

  • 这将为您提供一个带有多个git分支和git标签的git存储库,您可以在其中删除所有不需要的分支/标签(或不将其推入服务器)

暂无
暂无

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

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