svn リポジトリを追跡する git リポジトリがあります。を使用してクローンを作成し--stdlayout
ました。
経由で新しいローカルブランチを作成しましたgit checkout -b foobar
…/branches/foobar
ここで、このブランチをsvn リポジトリに配置したいと考えています。
どうすればいいですか?
(多くの調査テキストを切り取りました。気になる場合は質問履歴を参照してください)
svn リポジトリを追跡する git リポジトリがあります。を使用してクローンを作成し--stdlayout
ました。
経由で新しいローカルブランチを作成しましたgit checkout -b foobar
…/branches/foobar
ここで、このブランチをsvn リポジトリに配置したいと考えています。
どうすればいいですか?
(多くの調査テキストを切り取りました。気になる場合は質問履歴を参照してください)
この質問は少し前に回答されていることは知っていますが、それを読んだ後、特定の git svn branch コマンドの例を追加し、それを典型的なワークフローに関連付けるのに役立つかもしれません.
kch が答えたように、 を使用しますgit svn branch
。完全な例を次に示します (ドライランで-n
テストすることに注意してください)。
git svn branch -n -m "Branch for authentication bug" auth_bug
これがうまくいけば、サーバーは次のような回答を返します。
r8914 のhttps://scm-server.com/svn/portal/trunkを https://scm-server.com/svn/portal/branches/auth_bug にコピーしています...
スイッチがないと-n
、サーバーはおそらく次のようなものを追加します。
可能性のある分岐点が見つかりました: https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug、8914
ブランチの親が見つかりました: (refs/remotes/auth_bug)
d731b1fa028d30d685fe260f5bb912cbf59e1971
do_switch で親をたどる
親 r8915 の追跡に成功しました = 6ed10c57afcec62e9077fbeed74a326eaa4863b8
(refs/remotes/auth_bug)
その最良の部分は、次のようにリモート ブランチに基づいてローカル ブランチを作成できることです。
git checkout -b local/auth_bug auth_bug
つまり、「という名前のローカルブランチをチェックアウトして作成しauth_bug
、リモートブランチ(最後のパラメーター)に従うようにしますauth_bug
dcommit
with --dry-run
( -n
)を使用して、ローカル ブランチがそのリモート ブランチで機能することをテストします。
git svn dcommit -n
そして、SVN サーバーは新しいブランチ名で応答する必要があります。
https://scm-server.com/svn/portal/branches/auth_bugにコミットしています...
git v1.6.1 の時点git svn branch
で利用可能です。
git ドキュメントから:
ブランチ SVN リポジトリにブランチを作成します。 -m, --メッセージ コミット メッセージを指定できます。 -t, --tag branch_subdir の代わりに tags_subdir を使用してタグを作成する git svn init 中に指定されます。
以前のバージョンの git では、svn ブランチを作成する方法が提供されていません。
@kch ちょうど (2008 年 12 月 7 日) git の v1.6.1-rc1 タグをコンパイルしました。これには git svn branch コマンドとそのドキュメントが含まれています。そのため、git の v1.6.1 リリースには (うまくいけば) このコマンドが含まれているはずです。