更新时间:2023-11-22 17:27:22
git-svn
不是一次性转换存储库或存储库零件的正确工具.如果要将Git用作现有SVN服务器的前端,这是一个很好的工具,但是对于一次性转换,您应该不使用 git-svn
,而> svn2git
,它更适合此用例.
git-svn
is not the right tool for one-time conversions of repositories or repository parts. It is a great tool if you want to use Git as frontend for an existing SVN server, but for one-time conversions you should not use git-svn
, but svn2git
which is much more suited for this use-case.
有一些名为 svn2git
的工具,可能***的工具是 https://github.com/svn-all-fast-export/svn2git .我强烈建议使用该 svn2git
工具.这是我所知道的***的,它在处理规则文件方面非常灵活.
There are pleny tools called svn2git
, the probably best one is the KDE one from https://github.com/svn-all-fast-export/svn2git. I strongly recommend using that svn2git
tool. It is the best I know available out there and it is very flexible in what you can do with its rules files.
如果您不是100%知道存储库的历史,请从 http://blog.hartwork.org/?p=763 是一个很好的工具,可以在将SVN信息库迁移到Git时对其进行调查.
If you are not 100% about the history of your repository, svneverever
from http://blog.hartwork.org/?p=763 is a great tool to investigate the history of an SVN repository when migrating it to Git.
尽管git-svn较容易入门,但还有一些其他原因为什么除了灵活性之外,使用KDE svn2git
代替 git-svn
更为优越:
Even though git-svn is easier to start with, here are some further reasons why using the KDE svn2git
instead of git-svn
is superior, besides its flexibility:
svn2git
(如果使用了正确的历史记录)可以更好,更清晰地重建历史记录,对于具有分支和合并等更复杂历史记录的情况尤其如此. git-svn
的标签包含一个额外的空提交,这也使它们不属于分支,因此常规的 fetch
直到您给出-tags
到命令,默认情况下,也仅获取指向获取的分支的标记.带有正确的svn2git标签是它们所属的地方 svn2git
进行配置,而使用 git-svn
最终会放弃历史记录 svn2git
,您还可以轻松地将一个SVN存储库拆分为多个Git存储库 svn2git
进行的转换比使用 git-svn
svn2git
(if the correct one is used), this is especially the case for more complex histories with branches and merges and so ongit-svn
the tags contain an extra empty commit which also makes them not part of the branches, so a normal fetch
will not get them until you give --tags
to the command as by default only tags pointing to fetched branches are fetched also. With the proper svn2git tags are where they belongsvn2git
, with git-svn
you will loose history eventuallysvn2git
you can also split one SVN repository into multiple Git repositories easilysvn2git
than with git-svn
git-svn
较差,而KDE svn2git
较优的原因有很多.:-)
There are many reasons why git-svn
is worse and the KDE svn2git
is superior. :-)