1. ホーム
  2. svn

[解決済み] Tortoise SVNで作業コピーとは何か、「切り替え」は何のために行うのか?

2022-02-27 03:19:02

質問

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

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

Tortoise SVN のヘルプファイルを読むと、私の "作業コピー" を新しく作成したブランチに切り替えることができると書かれています。

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

現在、持っています。

/プロジェクト/トランク/

/プロジェクト/タグ/

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

すべてチェック済みです。では、"switch" の意味は何でしょうか? 現在、私は自分の/trunkフォルダに移動して作業を行うだけです。 そして、私がタグとブランチを作ったとき、更新を行った後に私の /Tags/ と /Branches/ フォルダにフォルダが作成されました。

なぜ、やろうと思えば /Branches/Experiemental-v3.0/ に行ってそこで作業をしないのでしょうか?

Working CopyとSwitchingの概念を説明できる人がいますか? 私は何を見逃しているのでしょうか? 一般的に、人々はリポジトリ全体をチェックアウトしていないのでしょうか?

解決方法は?

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

svn switch を使えば、同じ親のブランチ (正確にはコピー) 間を切り替えることができます。これは基本的に、現在の作業コピーと切り替え先のブランチとで何が違うのかを教えてくれるものです。そして、現在の作業コピーに、切り替えたブランチのリビジョンへの更新を行います。

つまり、作業コピーとは、どのように入手したかにかかわらず、あなたのチェックアウトのことです。

スイッチングとは、作業コピーがコミットするブランチを変更するだけです。リポジトリ上で自分のコミットの行き先のポインタを変更するようなものだと考えてください。ブランチとの差分を取得することで、自分の作業領域が確保されます。