私は、SVN ベースの開発からの複数のリリースに対処するために、似たようなことに直面しました。これが私がそれをどのように処理するかのスケッチです:
# checkout the SVN source
$ svn checkout svn://svnversion/trunk
$ cd /into/svn/checkout
$ git init
$ echo ".svn/" > .gitignore
$ git add .gitignore; git commit -m 'Initial .gitignore'
# Now you have a master branch; create your import-svn branch
$ git checkout -b import-svn
# Add *everything* from the SVN checkout
$ git add -A
$ git commit -m 'Initial SVN'
# Now get the GIT developed stuff
$ git checkout -b import-git master
$ git remote add original-git /path/to/git-developed-repository
$ git pull original-git master # or whatever branch your git developers used.
# Now you've got two branches 'import-svn' and 'import-git'; DIFF and MERGE as you please
# You don't need the remote anymore.
$ git remote rm original-git
おおむね正しいと思います。
これで、マージについて考えることができます。「import-git」を優先ベースラインと見なした場合、次のようなものが機能します。
$ git checkout -b git-merge-svn import-git
$ git diff --name-status import-svn
$ git merge import-svn
次のようなリベースを試して、どちらを好むかを決めることもできます。
$ git checkout -b git-rebase-svn import-git
$ git rebase import-svn
そして、マージとリベースを比較します(同じはずですが、わかりません..)
$ git diff git-rebase-svn..git-merge-svn