5

Windows 7 で TFS 2012 を Matlab のソース管理プロバイダーとして使用して調査しています。これには、VS 2012 シェル/TFS クライアントと、Microsoft から無料でダウンロードできる 64 ビット MSSCCI プロバイダーをインストールする必要があります。私はこれをすべて設定しましたが、問題なく動作します。

ただし、ファイルの差分とマージには問題があります。VS 2012 ソース管理エクスプローラーとの違いを表示すると、VS 2012 Diff ツールが正しく実行されます。Matlab 内から (ソース管理メニューを使用して) 同じ操作を試みると、「構成されたツールを実行できません」というエラーが表示されます。競合を解決するときに、「マージ ツールの変更をマージする」ボタンでも同じことが起こります。VS 2012 では機能しますが、Matlab では機能しません。

これは、少なくとも TFS を駆動しようとする他のツールでは既知の問題のようです。外部差分ユーティリティを使用するように VS 2012 を構成するという回避策があります。私はこれを試してみましたが、うまくいきました。さらに、外部差分ユーティリティを VS 2012 独自の「内部」差分ツールとして構成すると、内部ツールが Matlab から正しく呼び出されることがわかりました。

差分コマンドは次のとおりです。

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe

必要な引数は次のとおりです。

 /Diff %1 %2 %6 %7

(つまり、元のファイル、変更されたファイル、元のファイル ラベル、変更されたファイル ラベル)。これに関するドキュメントはこちらにあります

マージ ツールはさらに問題があります。コマンドラインに関する特定のドキュメントが見つかりません。私がこれまでに得た最も近いものは

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe

私はかなり正しいと確信していますが、私が使用している引数は

%1 %2 %1 %2 %3 %4 /m

ファイル ラベルが異なり、差分表示の形式が (通常の組み込みツールとは) 異なります。このコマンド ラインは、こちらの git 関連のドキュメントからリバース エンジニアリングしましたが、git については何も知りませんし、イタリア語も話せません。使用する正しいコマンドラインオプションを見つけるのを手伝ってくれる人はいますか?

編集して追加

この問題に関連していると思われる MSDN ディスカッションがここにあります。他のツールで発生しているようで、Matlab に限定されていません: それに応じてこの質問にタグを付け直しました

編集して追加

Diff 機能の推奨コマンドラインは次のとおりです。

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\vsDiffMerge.exe

コマンドライン引数は次のとおりです。

/t %1 %2 %6 %7

マージ機能に相当するものは機能しません。これは内部バグであり、Microsoft はこれを認めています。

4

2 に答える 2

8

vsDiffMerge.exe ツールは、差分と 3 方向のマージの両方で機能するようです。マージと統合のために、VS diff/merge ツールを Perforce クライアントと正常に統合することができました。

ツールに提供される引数 (少なくとも Perforce の場合) は次のとおりです。


差分

vsDiffMerge.exe /t %1 %2

どこ:

  • /t (一時的なタブで開き、永続的なタブで開くにはオフのままにします)
  • %1 (最初のファイル)
  • %2 (2 番目のファイル)

マージ:

vsDiffMerge.exe /m %1 %2 %b %r

どこ:

  • /m (マージ操作、差分を実行するためにオフのままにします)
  • %1 (それらの/ソース ファイル)
  • %2 (あなたの/対象ファイル)
  • %b (ベースファイル)
  • %r (結果ファイル)

注: 「%」の説明は、Perfore のドキュメント ( http://www.perforce.com/perforce/doc.current/manuals/p4v/Configuring_display_preferences.html#Diff ) からのものです。

編集:申し訳ありませんが、どうやってそれを混ぜ合わせたのかわかりません。Mark Sowul は、今日の私のテストでは完全に正しいです。答えを修正しました。また、最初のコメントが投稿された直後にこれを修正できなかったことをお詫びします。海外旅行から帰国しました。

于 2013-07-09T20:00:32.083 に答える
0

マージ オプションと一緒に発生するエラーの解決策を見つけました。マージされたファイルに使用するファイルを作成しました。私のコメントで詳細を参照してください: http://www.codeproject.com/Articles/649736/Solving-the-resx-Merge-Problem-in-TFS?msg=4745473#xx4745473xx

于 2014-01-27T12:55:58.583 に答える