2009-02-24 9 views
51

私はソフトウェアアプリケーションを持っており、重要なマイルストーン、バージョン2.0を打った。作業コピーとは何ですか?Tortoise SVNの "切り替え"とは何ですか?

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

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

これはどういう意味ですか?現在

、私が持っている:

/プロジェクト/トランク/
/プロジェクト/タグ/
/プロジェクト/支店/

をすべてチェックアウト。だから、 "切り換え"のポイントは何ですか?現在、私は/ trunkフォルダに行って仕事をしています。そして、私がタグとブランチを作成したとき、私は更新を行った後、/ Tags /と/ Branches /フォルダにフォルダを作成しました。

なぜ私は/Branches/Experiemental-v3.0/に行きたいと思ったら私の仕事をしませんか?

誰かが私に「作業コピー」と「切り替え」という概念を説明できますか?私は何が欠けていますか?人々は一般的にリポジトリ全体をチェックアウトしていないのですか?

答えて

41

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

svnスイッチを使用して、同じ親のブランチ(またはより正確にコピー)を切り替えることができます。これは基本的に、現在作業中のコピーと私が切り替えるブランチとで何が違うかを言うでしょう。次に、現在作業中のコピーを、あなたが切り替えるブランチのリビジョンに更新します。

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

切り替えは、作業コピーがコミットするブランチを変更するだけです。コミットが行われるリポジトリ内のポインタを変更するようにしてください。ブランチから作業エリアまでの相違を取得する助けを借りて。

+4

しかし、これは質問に答えることができません。キングは、人々は一般的にすべてのフォルダをチェックアウトしていませんかと質問していますか?私が/Branches/Experiemental-v3.0/フォルダに入って、変更がコミット時にこの非常にフォルダにコミットされることはないでしょうか?誰が作業コピーと "ディレクトリに切り替え"を気にしています。あなたが言っているのは、一度に1つのコピーだけがチェックアウトされているということです。 – shabby

+0

すべてのフォルダをチェックアウトしても、svn repoの複製があることを意味しません。私は、ブランチからチェックアウトされたフォルダを持つことができますが、ここで何らかの変更をコミットすると、私はsvnスイッチを作った場合、コミットを別のブランチに送信できます。 – mtk

+5

私は、自分のやり方で作業することを恐れず、ローカルのマシンですべてのブランチをチェックアウトすることをお勧めします。それは私たちが約5年以上働いたことで、人生をよりシンプルにしてくれます。スイッチを使用してチェックアウトされた支店で作業することには利点がありますが、私は貢献したいと思っていませんでした。 –

1

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

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

デイブ

3

作業コピーをチェックアウトしていることを、コードのコピーです。通常は、リポジトリ全体の構造ではなく、単に/ Project/trunk /をチェックアウトします。切り替えは作業コピーのルートを変更しています。あなたがSVNを使って作業する方法は、どうやってやるべきかではありません。

1

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

17

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

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

「project」というチェックアウトを1つだけ持つことができます。最初はトランクを指している場合は、ブランチまたはタグのいずれかに切り替えることができます。元のチェックアウトを再利用して、すべてをもう一度やり直さなければならない。

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

+0

これは受け入れられた答えでなければなりません。これは実際に受け入れられているものよりも優れています。 –

関連する問題