[解決済み] セマンティックディフユーティリティ【終了しました
質問
私は、セマンティックな diff/merge ユーティリティの良い例を見つけようとしています。 ソース コード ファイルを比較する伝統的なパラダイムは、行と文字を比較することで機能します。 構造 を考慮したユーティリティはありますか?
たとえば、既存の diff プログラムは、"125 行目の文字 2 で相違が見つかりました、と報告します。ファイル x は v-o-i-d を含み、ファイル y は b-o-o-l" を含みます。 特殊なツールは、"メソッド doSomething() の戻り値のタイプが void から bool に変更されました" を報告できるようにする必要があります。
私は、この種の意味的な情報は、ユーザーがコードを比較するときに実際に探しているものであり、次世代のプログラミングツールの目標であるべきだと主張します。 利用可能なツールでこのような例はあるのでしょうか?
どのように解決するのですか?
このシナリオに的確に対処できるツールを開発しました。チェック http://www.semanticmerge.com
テキストベースのアルゴリズムではなく、コード構造に基づいてマージ (および差分) を行うため、基本的に強力なリファクタリングを伴う次のようなケースに対処できます。また、以下のように差分とマージの競合の両方をレンダリングすることができます。
そして、テキストブロックの移動で混乱するのではなく、最初に解析するので、メソッドごと(実際には要素ごと)にコンフリクトを表示することができるのです。先ほどのようなケースは、手動でコンフリクトを解決することもないでしょう。
これは言語を意識したマージツールで、この SO の質問にようやく答えられるようになったのは素晴らしいことです :-)
関連
-
[解決済み] git diff の出力を自分の好みの diff ツール/ビューアで表示するにはどうすればよいですか?
-
[解決済み] git diff ファイルを、同じリポジトリのコピーであるローカルブランチに適用するにはどうすればよいですか?
-
[解決済み] git-diff で ^M を無視するようにした
-
[解決済み] コマンドラインからdiffをカラー化する方法
-
[解決済み] Git の diff -w で、行頭と行末の空白だけを無視する
-
[解決済み] Gitで1つのファイルを任意のバージョンに差分するには?
-
[解決済み】ビットシフト(bit-shift)演算子とは、どのようなもので、どのように機能するのですか?
-
[解決済み】並行プログラミングと並列プログラミングの違いは何ですか?
-
[解決済み】2つの異なるディレクトリに存在するDiffファイル
-
[解決済み】未追跡のファイルに対してgit diffを使用できますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン