1

私は基本的に次のgitリポジトリレイアウトを持っています

x ---- a -------------- b  -------------- c  ---->
         y -- 1 -- 2 -- ┛  z -- i -- j -- ┛

ここxy、、、zは初期コミットです。を使用して複数の git リポジトリを 1 つの大きなリポジトリにマージしたため、これらの複数の初期コミットがあります。

git fetch git://github.com/<user>/<repo>.git refs/heads/master:refs/heads/<repo>
git merge --no-commit <repo>
git read-tree --reset -u HEAD
git read-tree -u --prefix=lib/<repo> <repo>
git commit -m "Pulling <repo>"
git branch -d <repo>

複数回。すべてのサブモジュールは、基本的に同じファイル レイアウトを持っていました。

git リポジトリを svn にインポートするために、空の svn リポジトリを初期化し、

git svn clone http://some/svn/repo/my-project

それから私は試しました

cd my-project
git remote add dev /path/to/working/git/big-repository
git pull dev master
git svn rebase

しかし、すべてのサブモジュールのトップレベルに同一のファイルがあったために発生したと思われるいくつかのマージ エラーが原因で、リベースは失敗します ( pom.xml)

履歴を保持しながら git リポジトリを svn にインポートする方法はありますか?

4

1 に答える 1

0

他の誰かがより適切な回答を提供してくれることを願っていますが、問題が本当にこの 1 つの競合するファイルである場合は、おそらくgit filter-branchプロジェクト履歴からファイルを削除するために使用できます。

このページには例があります。

于 2012-04-25T20:40:54.693 に答える