我有一个旧的SVN存储库,其中包含我要导入现有 git存储库的文件的子目录,保留历史记录。怎么办呢?
假设我有现有的SVN布局:
file:///svn
trunk
foo
bar
branches
以下git布局:
file:///git
*master
baz
qux
我想将svn:///file/trunk/foo
导入git,以便我得到以下结果:
file:///git
*master
foo
baz
qux
答案 0 :(得分:0)
我发现的解决方案需要使用git-subtree,它包含在git contrib中,或者在某些情况下使用默认的git安装(例如使用git Debian软件包1.9及更高版本)。
使用git-svn克隆SVN repo:
git svn clone -r 1540:HEAD \
--authors-file=authors.txt \
https://svn.host.com/repos/trunk/foo foo
然后在你的主仓库中,创建一个新的分支(我认为是可选的),并使用git-subtree导入新的部分仓库:
git checkout -b foo
git subtree add --prefix foo /path/to/foo master