是否有一种首选方式来获取git存储库并将其作为新的(任意深度嵌套的)目录导入到现有的Subversion存储库中,同时保持提交历史?在维护历史的同时将git项目导入Subversion版本库的子目录
举例来说,如果我有一个颠覆回购具有以下(简体)目录结构:
backends
backends/A
backends/B
,我一直工作在一个git回购新的后端C,我现在想添加git repo的内容以svn回购为backends/C
。
我发现的大部分信息似乎都集中在导入顶层(通常是新创建的或其他空的svn回购)。
我目前的做法是使用下面的代码片段从git的过滤分行手册页向下推动混帐回购协议的现有顶层到backends/C
git filter-branch --index-filter \
'git ls-files -s | sed "s-\t\"*-&newsubdir/-" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new \
git update-index --index-info &&
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
然后使用git的svn和git底垫将文件导入svn回购。大多数人会这样做,还是有一种“更好”的方式?
在svn subdir中指向git-svn效果很好,谢谢。 – 2011-02-02 05:37:42