私はSVNがホストするプロジェクトのtrunk
のルートフォルダーにいて、2つのブランチのセットアップを検討しています。
1つのブランチは、現在の(安定した)リビジョンでのプロジェクトの「スナップショット」になり、2番目のブランチは、新しいコードを適用してテストし、トランクを新しいバージョンにアップグレードする作業になります。
私の目標は、スナップショットを保険として保持し、プロジェクトの古い安定したバージョンを手早く取得することです。 2番目のブランチは、新しいコードを適用してテストに合格すると、トランクにマージされて公開されます。
スナップショットをセットアップするために、trunk
をv1p2p3
というブランチにコピーしました。
$ 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番目のブランチから始めることができないと思います。既存のプロジェクトレイアウトに損傷を与えない方法を探しています。アドバイスをありがとう。これが愚かな質問である場合は謝罪します。)
ブランチは同じリポジトリURL内にあるため、--relocate
は必要ありません。ただやる:
svn switch https://www.example.com/svn/branches/v1p2p3
(正しい)tzaman回答の短いバージョンは(新鮮なSVNの場合)
svn switch ^/branches/v1p2p3
--relocate
スイッチはとにかく非推奨です。必要な場合svn relocate
コマンドを使用する必要があります
スナップショットブランチ(読み取り専用)を作成する代わりに、タグ(履歴の従来のROラベル)を使用できます。
Windowsでは、キャレット文字(^
)をエスケープする必要があります。
svn switch ^^/branches/v1p2p3