Subversionで現在チェックアウトされているブランチとは異なるブランチへの変更をコミットします


115

私は開発ラインからチェックアウトされたコードに取り組んでおり、加えられた変更は重大な変更であり、メインの開発ツリーにコミットする前に実験的なブランチに移動する必要があることを発見しました。しかし、私は実験ブランチをチェックアウトしていませんし、すでに行われた変更を失いたくありません。

作業フォルダーの変更を最初にチェックアウトしたブランチとは別のブランチにコミットする方法はありますか?

回答:


129

sourceURLまず、既知のブランチから作成する必要があります(これは、質問で述べた「開発ライン」になります)。

svn copy sourceURL branchURL

次に、そのブランチに切り替えます。

svn switch branchURL

変更をコミットします。

svn commit

55

次のようにTortoiseSVNで実行できます。

  • ブランチしたい変更があるディレクトリを右クリックします。リポジトリのルートであってはならず、そのように複製することはできません。
  • 選択TortoiseSVNは - > " 支店/タグ... "。
  • URLに設定: "svn:// host / repository / FooBar / branches / FooBarBranchName";
  • [*] 作業コピーが選択されていることを確認してください。これにより、変更が確実にコミットされます。
  • ログメッセージ: "ハエで実験:)";
  • オプション:チェックマーク[*] 作業コピーを新しいブランチ/タグに切り替えます。これは、新しいブランチで作業を続ける予定がある場合に役立ちます。後で切り替えることもできますが。
  • OKボタンを探してみてください。ヒント:ウィンドウの下部中央にあります。

楽しい!


「それはリポジトリのルートであってはならず、そのように複製することは少ない」とはどういう意味ですか?
thekozak 2015年

ブランチで変更の対象とならないすべての無関係なサブフォルダーを含むルートフォルダーを選択しないことをお勧めします。後で(小さい)ブランチをトランクにマージする方が簡単になります。
Jポラック2015年

私の場合、ソフトウェアがスーパーフォルダにも依存しているため、そのフォルダのみをコミットすると問題が発生しました。それが最もよくあるケースだと思います。ほとんどのユースケースでは、すべてをコミットする方が良いと思うので、ルートからコミットすることをお勧めします。
ikku100

@ ikku100これらのスーパーフォルダに変更がない場合、どのように問題になりますか?
simpleuser

後で変更をコミットする可能性があるためかもしれませんが、スーパーフォルダーの正しいリビジョンをチェックアウトしてから、サブフォルダーのブランチをチェックアウトできると思います。superdirからコミットするよりも多くの作業だと思います。
ikku100

8

作業ディレクトリから直接新しいブランチを作成し、作業ディレクトリをそのブランチに切り替えることができます。

コマンドは svn copysvn switch

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.