Git svnを使用してsvnリポジトリをチェックアウトしました。次に、ブランチの1つをチェックアウトして追跡する必要があります。それを行う最良の方法はどれですか?
Subversionトランク、タグ、ブランチを含むgitクローンを作成します。
git svn clone http://svn.example.com/project -T trunk -b branches -t tags
Subversionリポジトリが典型的な構造を使用している場合、--stdlayout
オプションは素敵なショートカットです。
git svn clone http://svn.example.com/project --stdlayout
GitリポジトリがSubversionリポジトリが行うすべてを無視するようにします:
git svn show-ignore >> .git/info/exclude
これで、git側のすべてのSubversionブランチが表示されるはずです。
git branch -r
Subversionのブランチの名前がwaldo
であるとします。 git側では、実行します
git checkout -b waldo-svn remotes/waldo
-svnサフィックスは、次の形式の警告を回避するためのものです
警告:refname 'waldo'はあいまいです。
Gitブランチwaldo-svn
を更新するには、実行します
git checkout waldo-svn git svn rebase
Subversionブランチをトランク専用クローンに追加するには、gitリポジトリの.git/config
を変更して、
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch =:refs/remotes/mybranch
ランニングの習慣を身に付ける必要があります
git svn fetch --fetch-all
git svn
が別個のリモートであると考えるものをすべて更新します。この時点で、上記のようにブランチを作成および追跡できます。たとえば、mybranchに対応するgitブランチを作成するには、次を実行します。
git checkout -b mybranch-svn remotes/mybranch
git svn dcommit
を使用するブランチについては、その履歴を線形に保ちます。
関連する質問への回答 を読むこともできます。