7

SVN リポジトリのトランクに対するいくつかの変更に取り組み始めたところです。今、私は実際に、代わりに新しいブランチを開始する必要があったことに気付き始めています。ブランチを作成して個々の部分をそこに移動するのではなく、新しいブランチを作成して作業コピーの変更をコミットする方法はありますか?

4

3 に答える 3

13
  1. 開発を開始した場所から新しいブランチを作成する
  2. 新しく作成されたブランチに切り替えます
  3. ローカルの変更をコミットします (新しいブランチにコミットします)

チェックアウトを行わないでください

私はsvn 1.6.5でそれを行います。問題なく動作しますが、本当に偏執狂的である場合は、次のようにすることができます:

  1. 現在の作業コピーからパッチを作成する
  2. ブランチを作成する
  3. それに切り替える
  4. パッチを適用する
  5. 専念
于 2009-10-03T18:41:32.000 に答える
2

で現在の作業からパッチを作成してからsvn diff、新しいブランチを作成し、 でブランチにパッチを適用するのはpatch -p0どうですか?

于 2009-10-03T18:42:23.990 に答える
2

コマンドを使用して、作業コピーの状態を URL に直接分岐できますsvn copy。作成されたブランチには、ローカルの変更が含まれます。

いくつかの落とし穴:

  • 「ファイルは既に存在します」などのエラーが表示される場合があります。これは、作業コピーのベース リビジョンの不一致、より具体的にはファイルとその親フォルダー間の不一致が原因です。考えられる解決策の 1 つはsvn update、この方法で分岐を試みる前に a を実行することです。
  • の後、svn copy作業コピーは変更されません。引き続きトランクを指します。また、ローカルの変更もステータスに表示されます。作業コピーをそのまま使用し続けるか、新しいブランチに切り替えるかにかかわらず、最初にこれらの変更を元に戻す必要があります。
于 2009-10-04T00:16:54.607 に答える