61

私はソフトウェア アプリを持っており、バージョン 2.0 という重要なマイルストーンに到達しました。

このバージョンを「Version-2.0」とタグ付けすることにしたので、このスナップショットに名前を付けました。何かを修正してトランクにマージする必要がある場合に備えて、「Version-2.0」ブランチも作成しました。

Tortoise SVN ヘルプ ファイルを読んだ後、「作業コピー」を新しく作成したブランチに切り替えることができると通知されました。

これは何を意味するのでしょうか?

現在、私は持っています:

/プロジェクト/トランク/
/プロジェクト/タグ/
/プロジェクト/ブランチ/

すべてチェックアウトしました。では、「切り替え」のポイントは何でしょうか。現在、/trunk フォルダーに移動して作業を行っています。そして、タグとブランチを作成すると、更新後に /Tags/ および /Branches/ フォルダーにフォルダーが作成されました。

/Branches/Experimental-v3.0/ に行って、そこで自分の仕事をしたいのであれば、なぜできませんか?

誰かが「ワーキングコピー」と「スイッチング」の概念を説明できますか? 私は何が欠けていますか?人々は通常、リポジトリ全体をチェックアウトしていませんか?

4

5 に答える 5

45

作業コピーは、作業領域にチェックアウトしたコピーです。枝からでも幹からでも構いません。それはあなたが取り組んでいるものです。

svn switch を使用して、同じ親のブランチ (より正確にはコピー) を切り替えることができます。これは基本的に、現在の作業コピーと切り替え先のブランチの違いを示しています。次に、現在の作業コピーを、切り替え先のブランチのリビジョンに更新します。

したがって、作業コピーはチェックアウトされますが、取得されました。

切り替えは、作業コピーがコミットするブランチを変更するだけです。コミットが行われるリポジトリ内のポインターを変更するようなものだと考えてください。ブランチから作業領域への違いを取得するのを助けて。

于 2009-02-24T10:30:23.817 に答える
31

通常、リポジトリ全体をチェックアウトする必要はありません。Subversion のブランチとタグは安価であることを意図しています。つまり、同じファイルのコピーを作成せず、参照するだけです。リポジトリ全体をチェックアウトすると、何らかの理由で誰かがブランチやタグを付けたときに、ローカル ハード ドライブで使用されるスペースが突然増加します。

必要に応じて、リポジトリの一部をいくつでもチェックアウトできます。したがって、トランクだけの作業コピーである「trunk」というフォルダーと、ブランチの作業コピーである別の「version2」を持つことができます。このようにして、作成された追加のタグはチェックアウトされません。

または、「プロジェクト」と呼ばれるチェックアウトを 1 つ持つことができます。最初にトランクを指していた場合は、ブランチまたはタグのいずれかに切り替えることができます。これは、元のチェックアウトを再利用する方法であり、すべてをもう一度。

トランクで作業しているときにこれを行うと、変更をブランチにコミットする必要があることに突然気付くことができます。これは、おそらく実験的すぎるためです。これを行うには、作業コピーから分岐し、新しい分岐に切り替えてコミットすると、変更がトランクではなく分岐に移動します。

于 2009-02-24T10:35:46.610 に答える
5

作業コピーは、チェックアウトしたコードのコピーです。通常、リポジトリの構造全体ではなく、/Project/trunk/ だけをチェックアウトします。切り替えは、作業コピーのルートを変更しています。SVN を操作する方法は、本来あるべき方法ではありません。

于 2009-02-24T10:28:04.710 に答える
3

作業コピーは、subbversion からプロジェクトをチェックアウトするために使用した、ハード ドライブ上の任意のフォルダーです。その作業コピーの別のプロジェクトに「切り替える」ことができるため、バージョン管理されたコンテンツは他のプロジェクトのコンテンツに似ています。

これは、新しいコピーをチェックアウトすることなく、トランクからブランチに切り替えるのに便利です。たとえば、バージョン管理されていないファイル (コンパイルされたオブジェクト、ライブラリ、実行可能ファイル) が削除または変更されないため、ビルド時間を節約できます。

デイブ

于 2009-02-24T10:26:23.340 に答える
2

プロジェクト ツリー全体をチェックアウトしましたが、これはおそらくあなたが望むものではありません。トランクの作業については、プロジェクトのルートからではなく、「トランク」をルートとするコピーをチェックアウトしてください。同様に、ブランチの作業については、必要なブランチのみをチェックアウトします。

于 2009-02-24T10:32:26.463 に答える