80

トランクからローカルDIRにチェックアウトし、そこで多くのローカル変更を行いました。今はトランクにコミットしたくありませんが、このローカルバージョンからブランチを作成したいと思います。それは可能ですか?

トランクをブランチにコピーしてから、ブランチにコピーすることはできますcd DIRsvn switch

更新:答えてくれてありがとう、それはうまくいきました!手順を要約すると、次のようになります。

  • cd DIR
  • svn copy . new-branch-URL
  • svn switch new-branch-URL .

(ドットに注意してください)

4

4 に答える 4

52

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."
于 2011-09-20T02:15:55.290 に答える
1

はい、これはSVN コマンドラインtortoiseSVNで実行できます。

SVN の作業コピーを src として指定し、新しいブランチを宛先として指定する必要があります。

svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>

指図。

TortoiseSVN で作業コピーをポイントし、コンテキスト メニューから [ブランチ/タグ] を選択し、[次からリポジトリにコピーを作成] セクションで [作業コピー] を選択します。

このような方法でタグを作成することは (トレーサビリティ上の理由から) 良い考えではありませんが、ブランチの場合はまったく問題ないことに注意してください。

于 2009-08-21T00:22:27.493 に答える