質問

CVSでは、私の作業コピー(WC)は、(私たちは「foo」という呼びます)は、特定の枝の上にあります。別のDEVでのfooにチェックインし、他の変更がありました。私は私のWCとのfooの上流の状態との間の差分をしたいです。トランク(HEAD)で作業する場合、通常、私はCVSの差分を行い、それは大丈夫です。しかし、ブランチでプレーンなCVSの差分を取るいくつかの理由で、diffは空です。私が使用しようとすると、「CVS差分-r foo」という、diffが現れ、それが反転している - 。上流の追加がマイナスで示されており、上流の削除がプラスで表示されます。

どのように私はどちらかのことができます:(1)差分に "他の方法"(プラス上流の追加のための)CVSを取得し、または(2)(一般的に)パッチを反転

役に立ちましたか?

解決

これの主な目的は、中央リポジトリに「アップ何」をチェックする場合は、

、私はあなたがあなた自身あなたが更新する前に最新の変更を参照して見ることができる機能CVSビューア/ブラウザ/ウェブブツを取得示唆しています。しかし、あなたが持っているすべては、コマンドラインCVSである、私はとにかくあなたのソリューションを提供しようとすると仮定すると:)

だから、あなたがここに持っていることはfooから行った分岐Aある - Bは、他の開発者のチェックイン後に(サーバー上の)ブランチの状態であり、かつBはあなたが最後に作業を更新された状態である> A、コピーします。

ちょうどこのような状況では、プレーンcvs diffを行う場合、あなたはあなたのローカルな変更がAに比べを参照してくださいよ。Aはあなたがチェックアウトしたものであるから。ローカルCVS状態は、各ファイルがfooブランチ上のリビジョンから来ていることが示され、差分の時は、あなたのCVSクライアントは、サーバからそのリビジョンをダウンロードします。あなたのケースでは、私はあなたのcvs diffが空であるので、あなたは何のローカルな変更を持っていない推測してます。

あなたがあなたのローカルcvs diff -r foo(またはA +変更)(現在Aである)、サーバーのfooに対しての差分のだB行うときに

次に、 - 、サーバーのBから取得するために必要な変更をごA+changesは正確であると他の開発者のチェックイン、プラス独自のローカルの変更の反対ます。

あなたが本当にB(または先端の-fooが)(あなたが現在チェックアウトされているものは何でもの手付かずのバージョン)と比較する方法を知りたい場合は、

は、今、私はあなたがタグに設定されて何をすべきかと思いますあなたの作業コピーし、枝の状態に対して、そのタグの差分。このような何かます:

cvs tag pistos_temp1
cvs diff -r pistos_temp1 -r foo
# And clean up by deleting the tag afterwards:
cvs tag -d pistos_temp1

他のヒント

多分あなたがpatchutilsパッケージからinterdiff使用して行うことができます欲しいます。

私は、多くの場合、指定したファイルのトランクに変更されているものを見るために、このようにそれを使用します:

cvs diff -up -r1 givenfile | interdiff /dev/stdin /dev/null

あなたは、いくつかの一時ファイルへの分岐からファイルをエクスポートしようとすると、あなたの作業コピーと、この一時ファイル間の差分を作ることができます。最も簡単な方法のようです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top