6

PERFORCEを使用した3ウェイのマージ/解決のためのLinuxベースのツールを探しています。私はvim/vimdiffに精通していますが、3ウェイマージにどのように/使用できるかわかりません。どちらの場合でも、あなたによると、Linuxで最高のマージ/解決ツールは何であるかを教えてください。

わかりやすくするために、Xサーバーを必要としないツール、つまりパテを介して使用できるツールが望ましいことを付け加えておきます。

4

4 に答える 4

4

Xクライアントを使用しないことに完全に固執している場合は、emacsのediffを見てみてください。これはテキストモードで機能します(ただし、Xの方が簡単です)。

于 2011-03-14T09:30:21.293 に答える
4

三方差分ツールでファイルを解決することについて話していると思います。異なるバージョンは、

  • オリジナル
  • 彼らの
  • あなたのもの

これを行うには、Linux で少しセットアップが必要です。.p4config好ましい差分ツールを定義するファイルがあります。

P4CLIENT=mywork
P4DIFF=diff -u
P4EDITOR=vi
P4IGNORE=.p4ignore

ここでP4DIFFは に設定しdiff -uます。全体を機能させるには、.p4configファイルを環境変数によって perforce にプラグインする必要があります。

export P4CONFIG=.p4config

今がスイートスポットです。実際にコマンドで解決する必要がありますp4 resolve

p4 resolve /path/to/mysource.h

これを行うとすぐに、私たちが作業していた元のバージョンを誰かが変更したため、競合があることがわかります。したがって、それは私たちの行動を促すものです。

/path/to/mysource.h - merging //stream/version/path/to/mysource.h#2
Diff chunks: 13 yours + 2 theirs + 0 both + 1 conflicting
Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) e: d

を押すと差分が表示されdます。

--- /path/to/mysource.h 2016-09-28 18:34:54.918709150 -0400
+++ /path/to/tmp.6365.102   2016-09-29 11:05:32.228946564 -0400
@@ -16,6 +16,7 @@
we are same in all branches
same as everywhere 
+ added line
more same

@@ -28,7 +29,12 @@
here you go the conflict
+>>>> ORIGINAL //stream/version/path/to/mysource.h#1
+ the original line is here
+==== THEIRS //stream/version/path/to/mysource.h#2
+ their line is here
+==== YOURS /path/to/mysource.h
my line is here
+<<<<
Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) e: e

これで、このタイピングを修正できるようになりましたe+====行と行の間で異なるバージョンを比較できるエディターが開きます+<<<<

編集が完了したら、入力して受け入れることができますa

Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) ae: a

プロセス全体は、リモート コマンド/シェル ウィンドウから実行できます。したがって、X サーバーは必要ありません。

于 2016-09-29T15:37:18.207 に答える
4

私はmeldを好みます。これは強力ですが軽量であり、Kdiff3 のような KDE 依存関係はありません。公式ホームページを見る

于 2011-03-14T08:39:06.170 に答える
1

と呼ばれるものdiff3があり、マージオプションがあります。どこから来たのかわからず、使用していません。diff3 -m file1 file2 file3. それが価値があるもののためにそれを取ります。

ところで、私は OpenSuSE 11.2 を実行しています。

于 2011-03-14T22:24:51.373 に答える