トランクからローカルDIRにチェックアウトし、そこで多くのローカル変更を行いました。トランクにコミットし直したくありませんが、このローカルバージョンからブランチを作成したいです。それは可能ですか?
トランクをブランチにコピーしてからcd DIR
およびsvn switch
ブランチへ?
[〜#〜] update [〜#〜]:答えてくれてありがとう、うまくいきました!手順を要約するには:
cd DIR
svn copy . new-branch-URL
svn switch new-branch-URL .
(点に注意してください)
そのコマンドラインヘルプによると、svn copyはディレクトリからリポジトリURLにコピーできます。したがって、作業コピーをブランチにコピーできるはずです、例えば:
svn copy working_directory url_to_branch
SVN Book( http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create )は、ローカル作業コピー。
svn copy
を使用して作業コピー内のディレクトリを複製することでブランチを作成することも可能ですが、この手法はお勧めしません。実際、かなり遅い場合があります!クライアント側のディレクトリのコピーは、ローカルディスク上のその作業コピーディレクトリ内のすべてのファイルとサブディレクトリを実際に複製する必要があるという点で、線形時間の操作です。
代わりに、最初にブランチを作成してからsvn switch
コマンドを使用して、変更をコミットできるようにします。トランクの作業コピーがかなり古い場合は、ソースURLに「@REV」を追加します。「REV」は、svn info
によって報告される作業コピーのリビジョンです。
ただし、サーバー上のディレクトリのコピーは一定時間の操作であり、ほとんどの人がブランチを作成する方法です。
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Creating a private branch of /calc/trunk."
SVNクライアント:TortoiseSVNでは、次のことで十分です。
完了:)
ローカルバージョンを指定されたリポジトリのURLにコピーするのと同じです。
はい、tortoiseSVNと同様にSVNコマンドラインでこれを行うことができます。
SVN workingcopyをsrcとして指定し、新しいブランチを宛先として指定する必要があります
svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>
コマンド。
TortoiseSVNで作業コピーをポイントし、コンテキストメニューから[ブランチ/タグ]を選択し、[リポジトリにコピーを作成する]セクションで[作業コピー]を選択します。
このような方法でタグを作成することは(トレーサビリティ上の理由から)良いアイデアではありませんが、ブランチの場合は完全に問題ないことに注意してください。