web-dev-qa-db-ja.com

トランクからブランチへのSVNスイッチ

私はSVNがホストするプロジェクトのtrunkのルートフォルダーにいて、2つのブランチのセットアップを検討しています。

1つのブランチは、現在の(安定した)リビジョンでのプロジェクトの「スナップショット」になり、2番目のブランチは、新しいコードを適用してテストし、トランクを新しいバージョンにアップグレードする作業になります。

私の目標は、スナップショットを保険として保持し、プロジェクトの古い安定したバージョンを手早く取得することです。 2番目のブランチは、新しいコードを適用してテストに合格すると、トランクにマージされて公開されます。

スナップショットをセットアップするために、trunkv1p2p3というブランチにコピーしました。

$ svn cp https://www.example.com/svn/trunk \ 
         https://www.example.com/svn/branches/v1p2p3 \
         -m "Branching from root trunk to v1p2p3 at r1114"

ここまでは順調ですね:

Committed revision 1115.

私がやりたいのは、ローカルリポジトリのコピーをこのブランチに切り替えて、動作することを確認することですが、エラーメッセージが表示されます:

$ svn switch --relocate https://www.example.com/svn/trunk \
                        https://www.example.com/svn/branches/v1p2p3

エラーメッセージは次のとおりです。

svn: E155024: Invalid relocation destination: 
              'https://www.example.com/svn/branches/v1p2p3' 
              (does not point to target)

私は何を間違えていますか?

(これがうまくいかない場合は、より野心的な2番目のブランチから始めることができないと思います。既存のプロジェクトレイアウトに損傷を与えない方法を探しています。アドバイスをありがとう。これが愚かな質問である場合は謝罪します。)

61
Alex Reynolds

ブランチは同じリポジトリURL内にあるため、--relocateは必要ありません。ただやる:

svn switch https://www.example.com/svn/branches/v1p2p3
132
tzaman
  • (正しい)tzaman回答の短いバージョンは(新鮮なSVNの場合)

    svn switch ^/branches/v1p2p3
    
  • --relocateスイッチはとにかく非推奨です。必要な場合svn relocateコマンドを使用する必要があります

  • スナップショットブランチ(読み取り専用)を作成する代わりに、タグ(履歴の従来のROラベル)を使用できます。

Windowsでは、キャレット文字(^)をエスケープする必要があります。

svn switch ^^/branches/v1p2p3
34
Lazy Badger