2012-04-23 18 views
3

SVNコマンドラインを使用して、現在の作業コピーのURLからブランチを作成するにはどうすればよいですか? (私の現地の作業コピーではなく、ローカルの変更があるかもしれません)作業コピーのURLからsvnブランチを作成する

"svn info"を通らずに直接URLを取得します。

+0

はあなたのために[OK]シェルスクリプトでのsvn情報を使用していますか? –

答えて

1

これはいかがですか?

svn copy ^/@HEAD <Branch URL>

EDIT

枝、タグ、およびトランクがSVNでちょうどパスと完全に任意であるため、私はあなたがしようとしているものを達成することができるでしょうとは思いませんちょっと創造せずに(例えば、組み込みのSVNコマンドの外で)行うことができます。私はあなたがしたいと思うものを達成するために、あなたは(Mac用/ Linuxのを想定)bashスクリプトを使用することができます。

#!/bin/bash 

CURRENT_URL=$(svn info | grep ^URL | cut -d" " -f2) 

svn copy $CURRENT_URL "^/branches/$1" 

用途:svnbranch.sh newbranch

+0

質問に答えません - 現在の作業コピーのURLからコピーします。^@ HEADは機能しません。^/@ HEADにする必要があります。 – Danra

+0

ああ、そうです。私はあなたの要求のその部分を誤解しました。ですから、URLを指定せずに、現在のトランクまたは現在のブランチからブランチを切り替えることができるようにしたいですか? –

+0

はい。ちょうどブランチ(スイッチなし)もOKです。 – Danra

1

あなたはただあなたが既存の作業コピーのURLを取得することができ、「SVN情報」のおかげで

svn copy <URL of existing URI> <New URL> 

を行うことができます。

SVNサーバーツリーには存在しないはずです。実際には、そのURLにサブディレクトリを作成します。

コピーはサーバー上で直接行われます。実際には、作業コピーを一切必要とせずに、変更内容を直接「コミット」します。

+0

ありがとうございます。それ以上に直接的な方法はありますか? – Danra

+1

ようこそ。もっと直接的には "svn add <ブランチのURL>"でしょうか? –

+0

私は最初にURLを取得することなく意味しました。キャレット表記の使用法と似ています(しかし、キャレットはレポの根を指しているので、キャレットはうまくありません)。 – Danra

1

`svn help copy 'を実行し、出力を注意深く読んでください。私は - 改訂オプションが役立つかもしれないと思う。

関連する問題