1

プロジェクトを管理するためにTortoiseSVNを実行しています。明らかに、タグ付けに関する原則はSVNのすべての実装に適用されますが、この質問では、TortoiseSVN固有のダイアログボックスとメッセージをいくつか参照します。


私の作業ディレクトリとSubversionリポジトリ構造の両方に、ソースルートディレクトリとその下のトランク、タグ、ブランチディレクトリがあります。(箇条書きを使用せずにマークダウンでマルチレベルのインデントされた階層を作成する方法を理解できなかったので、誰かがこれを編集して修正できれば幸いです。)

作業コピーのトランクディレクトリから作業していて、リポジトリのトランクディレクトリを指しています。タグ「Release1」を適用したいので、「Branch / tag ...」メニューオプションをクリックして、リポジトリパスを[repo_path / bla / Source / Tags/Release1」タグとして設定します。このダイアログボックスにオプションが表示されます。 「作業コピーを新しいブランチ/タグに切り替える」に。

このオプションをオフのままにすると、/ Tagsの下に新しい「Release1」ブランチが作成されますが、作業コピーは以前の「トランク」パスに残ります。このオプションをオンにした場合(またはSwitchコマンドを使用した場合)作業コピーが「/Tags」の下の新しい「Release1」ブランチに切り替わると理解しています。

私が概念を見逃しているのは、この決定をどのように行うかです。定義上(?)そのタグをある時点でのコードのスナップショットにしたいので、作業ディレクトリを最近作成したタグに切り替えたいとは思われません。作業ディレクトリを切り替えない場合は、トランクから作業を続行し、別のスナップショットを作成する準備ができたら、別のタグを作成します。等々...

私はこの権利を理解していますか、それとも前の段落で何か間違ったことを述べていますか(たとえば、タグは特定の時点のスナップショットを表す必要があるため、タグに切り替えたくないというステートメント)、またはこの決定を行う方法に関して何かが欠けていますか?

4

3 に答える 3

3

Subversionでは、タグはリビジョンに付ける「ラベル」ではありません。ある時点でのトランク(またはブランチなど)のコピーです。コピーされたディレクトリなので、コミットできます。しかし、あなたはすべきではありません

タグを作成したら、元の場所(ブランチまたはトランク)にとどまり、そこで作業する必要があります。タグディレクトリに切り替えないでください。タグディレクトリにコミットすると、その内容が変更され、「スナップショット」としては機能しなくなります。

ブランチを作成するときは、通常はそれに切り替えたいと思うでしょうが、ブランチの作成後にトランクに留まりたい場合があります(たとえば、偶然にもトランクで修正が行われていることに気付いた場合)。あなたが決めることです。いつでも後で切り替えることができます。タグを作成するとき、決定することはあまりありません。あなたがいるブランチにとどまります。タグへの切り替えが役に立たない場合は考えられません...

于 2010-05-21T03:07:33.627 に答える
1

Subversionには、技術的には「ブランチ」や「タグ」などはありません。SVNにとって、これらは単なるディレクトリのコピーです。それらはあなたがそれらをどのように扱うかという理由だけで特別です。

タグ=プロジェクトのコピーを作成しますが、コピーを作成した後は触れないでください。通常、タグに変更をコミットすることはないため、通常はタグに切り替えたくありません。

ブランチ=プロジェクトのコピーを作成し、そこでいくつかの作業を行います。通常、ブランチで行う作業は、ある時点でトランクとマージされます。すぐに作業するブランチを作成している場合は、ブランチに切り替えることをお勧めします(チェックボックスをオンにします)。

注1: SVN自体にはトランク/ブランチ/タグの特別な処理はありませんが、TortoiseSVNにはタグへのコミットを阻止するためのUIヒントがあります。タグをチェックアウトする(またはタグを作成してそれに切り替える)場合、いくつかの作業を行ってからコミットしようとすると、TSVNは警告メッセージを表示します。TSVNは、あなたが本当にやろうとしていたことを推測しようとします。

注2:ポイントインタイムスナップショットのタグは必ずしも必要ではありません。リポジトリのリビジョン番号がそれを行います。

于 2010-05-21T12:42:51.673 に答える
0

もっと簡単にしましょう:

プロジェクト構造を作成するための推奨される方法:

  • svnRoot / projectName / trunk(実際の開発ライン)
  • svnRoot / projectName / tags / Release_X.XX(タグをラベルとして考えますが、それらは単なるコピーです)
  • svnRoot / projectName / branchs / Release_X.XX(更新可能なコピー、サブプロジェクトのブランチ)

タグをコミットしないでください(できますが、コミットしないでください)。

他の誰かの作品を破壊せずに何かを開発する必要がある場合は、ブランチを作成してから、ブランチをトランクとマージしますが、注意してください:)

于 2012-03-01T19:31:41.200 に答える