web-dev-qa-db-ja.com

作業コピーとは何ですか?また、Tortoise SVNでの「切り替え」とは何ですか?

ソフトウェアアプリがあり、重要なマイルストーンであるバージョン2.0に到達しました。

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

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

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

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

/プロジェクト/トランク/
/プロジェクトタグ/
/Project/Branches /

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

どうして/Branches/Experiemental-v3.0/に行き、そこで作業をしたいのですか?

「Working Copy」と「Switching」の概念を誰かに説明してもらえますか?不足しているものはありますか?一般的にリポジトリ全体をチェックアウトしていないのですか?

60
KingNestor

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

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

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

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

46
ng.

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

リポジトリの必要なだけの部分をチェックアウトできます。そのため、トランクだけの作業コピーである「trunk」というフォルダと、ブランチの作業コピーである別の「version2」を作成できます。この方法では、作成された追加のタグはチェックアウトされません。

または、「プロジェクト」と呼ばれる1つのチェックアウトを持つことができ、元々トランクを指していた場合、ブランチまたはタグの1つに切り替えることができます-これは、取得する必要がないように元のチェックアウトを再利用する方法ですすべてが再び。

トランクで作業しているときにこれを行うと、ブランチに変更をコミットする必要があることに突然気付くのは非常に便利です。これを行うには、作業コピーからブランチし、新しいブランチに切り替えてからコミットすると、変更はトランクではなくブランチに送られます。

23
Jim T

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

4
vartec

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

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

デイブ

3

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

2
anon