1

svn updateかなり古いサンドボックスでコマンドラインからいくつかのローカル変更を加えました。競合が検出されたため、通常の出力が表示されました。

Conflict discovered in 'file.cpp'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options: p

meldこのコンピューターでsvnコマンドラインオプションを設定していなかったため、競合を解決するための起動方法が利用できませんでした。したがって、私はメルドを設定するまで紛争を延期することにしました。

次に、ここに示すmeld手順と同様の手順を使用して設定します。

さて、別のsvn updateことをしても競合が再発見されないため、meldを起動するオプションが表示されません。「」しかAt revision ...表示されません。Conflict discovered in ...「 」行を再度取得する方法はありますか?または、3ウェイメルドリゾルバを起動するコマンドはありますか?

4

2 に答える 2

1

そのドキュメント によると、 meldはgitマージヘルパーとして使用できます。gitマージヘルパーは次のように呼び出されます。

このツールを使用して(-tまたは--toolオプションまたはmerge.tool構成変数を使用して)git mergetoolを呼び出すと、構成されたコマンドラインが呼び出され、$BASEがの共通ベースを含む一時ファイルの名前に設定されます。可能な場合は、マージ。$ LOCALは、現在のブランチのファイルの内容を含む一時ファイルの名前に設定されます。$ REMOTEは、マージされるファイルの内容を含む一時ファイルの名前に設定され、$ MERGEDは、マージツールがマージ解決の結果を書き込むファイルの名前に設定されます。

したがって、少なくとも次のように実行できます。

export BASE=some_file.r123
export LOCAL=some_file.mine
export REMOTE=some_file.r124
export MERGED=some_file
meld

これが3ファイル構文で実行するのと同じかどうかはわかりません:meld some_file.r123 some_file.mine some_file.r124

于 2013-01-02T17:19:00.477 に答える
0

@AndreKRをフォローアップ

  • Meldをインストールして延期された競合を解決する方法

競合するファイル(* .MY、*。THEIR、*。BASE)ごとに(延期後)3つの一時ファイルがあり、Meldはfile-diffのパラメーターとして最大3つのファイル名を受け入れることができるため、手meld MY BASE THEIRで、必要な結果を得るためにMYファイルを編集して保存し、merge-conflictを閉じるには、その後に使用しますsvn resolve --accept 'my-full FILENAME'svn help resolve「--acceptオプションは現在必要です」に準拠しsvn resolve、すべての変更がMYで行われた必要があります)。ファイル)

  • Meldを合併として使用する方法-永遠に異なる

[helpers]構成ファイルのセクション:diff-cmddiff3-cmdおよびmerge-tool-cmdキーは共通の値を取得 meldします-(おそらくパスはありますが、パラメーターはありません)。「...Subversionは指定されたコマンドに4つの引数を渡します」と、Meldは3つしか受け入れられないため、merge-toolで小さな問題が発生しますが、ブログ投稿にはこの頭痛の回避策が含まれています

于 2013-01-02T21:07:45.783 に答える