私は通常のSVN構造を持っています:
http://server/DEV/Project/trunk
http://server/DEV/Project/branches
次に、次のコマンドで分岐します。
svn copy -m "message" "http://server/DEV/Project/trunk@123" "http://server/DEV/Project/branches/rel123"
すべてがうまく機能し、 のコンテンツは/trunk@123
新しいブランチ パスの下に配置されます/branches/rel123
。すべて良い。
追加: /DEV/Project/branches/rel123 (パスからコピー: /DEV/Project/trunk, Revision, 123)
問題:
誰かが誤ってブランチを再度実行した場合、 「svn: E160020: Path 'rel123' already exists」で失敗することが予想されます。しかし、それは失敗しません。
svn copy
実際に同じコマンドを繰り返すと/trunk
、/branches/rel123/trunk
追加: /DEV/Project/branches/rel123/trunk (パスからコピー: /DEV/Project/trunk, Revision, 123)
その/branches/rel123
ため、トランクからのすべてのファイルに加えて、トランクからの同じファイルをすべて含む追加のフォルダー「トランク」( ) が含まれています。/branches/rel123/trunk
私が試してみました:
パスを終了して、これが絶対ディレクトリ名であることを SVN に認識させようとしましたが、うまくいきませんでした (http://server
以下の例では一部を削除しました)。
svn copy -m "message" "/DEV/Project/trunk@123 / " "/DEV/Project/branches/rel123"
svn copy -m "message" "/DEV/Project/trunk / @123" "/DEV/ Project/branches/rel123"
svn copy -m "message" "/DEV/Project/trunk@123" "/DEV/Project/branches/rel123 / "
svn copy -m "message" "/DEV/Project/trunk@123 / " "/DEV/Project/branches/rel123 / "
svn copy -m "message" "/DEV/Project/trunk / @123" "/DEV/Project/branches/rel123 / "
これを経験した人はいますか?これは既知の問題ですか? この「ブランチ内のブランチ」の間違いを防ぐための回避策はありますか?