2

私は混合ソース管理環境で働いています。私たちはまだほとんどが CVS を使用していますが、新しいプロジェクトは SVN を使用しています。しかし、TortoiseSVN は TortoiseCVS のようには機能しないため、SVN の賛同を得るのは難しいと感じています。

3 通りのマージには多くの認知的不協和があり、TortoiseCVS は常に正しくマージされているように見えますが、TortoiseSVN はほとんどの場合手作業が必要です。また、競合を修正した後、手動でファイルを OK としてマークする必要があります。

TortoiseSVN を TortoiseCVS のように動作させるためのヒントはありますか?

編集

より明確にするために、私は 3 方向のマージを行いたくありません。可能であれば、TortoiseCVS のように 2 方向のマージを行いたいと考えています。結果のファイルが CVS と SVN で同じであることはわかっています。たとえば、Visual Studio プロジェクト ファイルには 2 つの異なるバージョンがあります。これは、TortoiseSVN では常に競合で終了し、TortoiseCVS で競合することはありません。

SVN は次のようになります。

<<<<<<< .mine
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> .r195290

CVS のように見える

<<<<<<< SomeFile.cproj
     <ApplicationRevision>22</ApplicationRevision>
=======
     <ApplicationRevision>28</ApplicationRevision>
>>>>>>> 1.121

同じ種類のマージを取得できるはずです。また、TortoiseSVN では、2 人が同じファイルで作業している場合、更新時にほぼ常に競合が発生します。2 人が別の場所で作業していても、TortoiseCVS にはこの問題はありません。TortoiseSVN はより保守的であり、TortoiseCVS は CVS が適切であると想定しているため、マージをチェックする必要があると思います。TortoiseSVN のどこかにいくつかのオプションが隠されているのではないかと思っていました。

ああ、そうです、マージ ポイントを持つ Subversion 1.5 を使用しています (これがないとブランチは基本的に役に立ちませんでした)。

4

5 に答える 5

2

BeyondCompareとAraxis Mergeを見てください。それらをカスタムのマージ/差分ツールとして TortoiseSVN に統合する方法を説明しています。

于 2009-02-17T23:23:26.023 に答える
1

競合のマーキングは、Tortoise 自体と関係があるべきではなく、むしろ SVN 対 CVS と関係があるべきです。ファイルが競合しているかどうかを判断するのは、Tortoise ではなく SVN です。なぜそうなのか、それに対して何ができるのかはわかりません。おそらく非常に少ない。SVN は、マージの受け入れに関しては、おそらくより保守的です。繰り返しますが、使用されているアルゴリズムについては肯定的ではありませんが、変更された行が互いに十分に近い場合 (および変更が異なる場合) に、ファイルが競合しているとフラグを立てるようです。

実際、TortoiseMerge はかなり優れていると思います。そのため、できる限り説明できれば幸いです。また、以前は知らなかったことがわかるかもしれません。通常、2 つのペインが横に並んでいて、下に 1 つのペインがあります。下のペインはマージの結果であり、競合は赤でマークされ、他の部分はすでに正常にマージされています。競合行を右クリックして、自分の変更を保持するか ([自分] ペインに表示される)、その他の変更を保持するか ([相手] ペインに表示される)、またはそれらの組み合わせを受け入れるかを選択できます。 .

最後に、マージの保存と解決済みのマーク付けが 2 つの別個のステップである理由を説明できます。SVN では、何かを解決済みとしてマークすると、再度コミットできます。これは基本的に、ツールでマージして保存したファイルをコミットしないようにするのに役立つフェイルセーフですが、編集/テストはまだ完了していません。基本的に、SVN はマージ ツールで何かを保存することと、実際に解決することを区別しています。

それが役に立ったことを願っています。

于 2009-03-02T21:19:35.030 に答える
0

ええと、多分私は問題を見逃しています。TortoiseCVSがそれを「正しく」行う場合(チームがそれを行う必要がある場合、または行われることを期待している場合)...それでは、なぜTortoiseSVNを選択したいのでしょうか。

このテクノロジーの「目的」を混同しないでください...開発プロセスで開発チームに「サービスを提供」することです。

(私は現在、TortoiseSVNを試すために両方を使用しています..しかし、これまでのところ、SVNのタグ/分岐方法はあまり好きではありません)

于 2009-03-01T04:58:13.277 に答える
0

ここでは大げさな推測ですが、サーバーでCVSNTを使用している場合、この観察結果は、CVSNTが「マージポイント」の概念を持っているため、SVNよりもマージがはるかに優れているという事実に基づいている可能性があります。これにより、通常、同じブランチとの間で複数回マージする場合の競合がはるかに少なくなります。
少なくとも目立たない方法で、これについてできることはあまりないと思います。

編集:私は修正されたままです。v1.5以降、SVNにもマージポイントがあります。この回答は削除しますが、古いバージョンのSVNを使用している人にとってはまだ役立つかもしれません。

それがあなたが話していることではない場合、多分あなたはあなたの質問をもう少し明確にするべきです。これはTortoiseSVNとTortoiseCVSの違いであり、CVS(NT?)とSVNの違いではありませんか?

于 2009-02-17T23:38:34.757 に答える
0

あなたの質問は、Windows での Subversion とのマージをより適切にサポートする方法に焦点を当てていると思います。

特にあなたが探していたものではないかもしれませんが、Subversion でのマージを容易にするために、Windows で Emacs を定期的に使用しています。

Windows での Emacs + SVN

EmacsW32 + cygwin ( svnを使用) + psvn emacs パッケージ + 「組み込み」の emacsマージ ツールの組み合わせは、Windows でうまく機能します。最近の Emacs にはpsvnが標準で付属していることがわかります。お使いの Emacs にない場合は、簡単かつ迅速にダウンロードしてインストールできます。

Emacs ベースのツールセットに統合されたサポートのおかげで、一般的な同僚よりもマージの解決が 5 倍から 10 倍速くなりました。彼らは、TortoiseSVN と他のお気に入りのエディターを使用して満足しているようで、そのように対応しています... 私は、Emacs 機能の使用法と能力について彼らに指示することを何度も提案しました (セットアップが完了すると、自動的に処理されます)。しかし、彼らは基本的なツールに固執し、生産性の向上に投資しないようです。

SVN は強力なツールであり、それを使用する必要がある場合は、それを機能させるために投資することを検討することもできます。

デビッド

于 2009-03-01T05:19:57.637 に答える