git svn init を使用して git で svn リポジトリを追跡できることは知っていますが、これはまったく新しいリポジトリを作成する場合のためのものです。
私の状況では、現在既に既存の git リポジトリがあり、現在の git リポジトリのリモート ブランチにすることで svn リポジトリのトランクを追跡したいと考えています。
助言がありますか?
昨夜検索した後、私はついに答えを見つけました:
http://i-nz.net/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/
既存のgitリポジトリにsvnブランチを追加するには、実際に.git/configファイルにアクセスして手動で編集する必要があるようです。したがって、これらの指示に従って、ブランチごとにエントリを追加する必要があります。
この質問に対する回答 ( https://stackoverflow.com/a/840411およびhttps://stackoverflow.com/a/7592152 ) は、Git v1.8.3.2 ( https://stackoverflow.com/ a/19833311 )。代わりにこれを行うことができます:
1) .git/config で新しいブランチを定義します。
[svn-remote "release-branch"]
url = svn+ssh://xxxx@mono-cvs.ximian.com/source/branches/mono-2-2/mcs
fetch = :refs/remotes/git-svn-release-branch
2) SVN ブランチをインポートします。SVN_BRANCHED_REVISION は、SVN でブランチが発生したときのリビジョンです。
$ git svn fetch release-branch -r SVN_BRANCHED_REVISION
3) ブランチを作成し、ローカル Git ブランチをリモート ブランチに接続します。
$ git checkout -b release refs/remotes/git-svn-release-branch
5) アップデート
$ git svn rebase
次のようにして SVN_BRANCHED_REVISION を見つけることができます。
$ svn log --stop-on-copy PATH_TO_BRANCH
これは実際に git svn init が行うことです -- 他の git svn コマンドは単純に物事をマージするなどです.ローカル ブランチへのプル、またはフェッチなど。git svn の man ページを読んでみてください。もしそうなら、freenode の #git は良いリソースです。したがって、これはあまり問題なく実行できるはずですが、すべてを行う方法が正確にはわかりません。