問題タブ [diff]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .NET 用の適切なテキスト差分/マージ エンジンはありますか?
要件:
- 無料、できればオープンソース
- .NET マネージ言語の 1 つに実装されている
Google はこれらを見つけました:
- codeprojectの汎用的で再利用可能な差分アルゴリズム
- C# の O(ND) 差分アルゴリズム
- Joshua Tauberer によるC#/.NET 用の差分/マージ/パッチ ライブラリ
編集:
アプリは使用せず、ライブラリのみを使用してください。
.net - WinFormsまたはWPFのテキスト差分視覚化コントロール
私の前の質問の続きで、テキスト差分の視覚化のための良いコントロールはありますか?
StackOverflowのリビジョン差分ビューアのようなものですが、WinFormsまたはWPF用です
要件:
- 無料、できればオープンソース
- WPFまたはWinFormsに基づく
アプリは使用しないでください。コンポーネントのみを使用してください。
OSS差分ツールには興味がありません
unit-testing - NUnit でテキスト ファイルを比較する単体テスト
2 つの xml ファイルを処理してテキスト ファイルを生成するクラスがあります。
次のことを行う、このクラスに対して個別に合格または不合格になる一連の単体/統合テストを作成したいと思います。
- 入力 A と B に対して、出力を生成します。
- 生成されたファイルの内容を、期待される出力の内容と比較します
- 実際の内容が予想される内容と異なる場合、失敗し、違いに関するいくつかの有用な情報を表示します。
以下は、クラスのプロトタイプと、単体テストでの最初の刺し傷です。
この種のテストに使用すべきパターンはありますか?それとも、人々は無数の TestX() 関数を書く傾向がありますか?
NUnit とのテキスト ファイルの違いを理解するためのより良い方法はありますか? テキストファイル差分アルゴリズムを埋め込む必要がありますか?
アップデート
差分機能のテストには興味がありません。より読みやすいエラーを生成するために使用したいだけです。
c# - テキスト差分アルゴリズム
2つのテキストファイルを比較してそれらの違いを強調し、(さらに良い!)意味のある方法でそれらの違いを計算できるアルゴリズムが必要です(2つの類似ファイルは2つの異なるファイルよりも高い類似スコアを持ち、「類似」という単語が必要です)通常の用語で定義されます)。実装は簡単に聞こえますが、そうではありません。
実装はc#またはpythonにすることができます。
ありがとう。
svn - Mercurial を使用して、自分の作業コピーとデフォルトのリモート リポジトリのヒント ファイルを比較する簡単な方法はありますか
Mercurial を使用している場合、デフォルトのリモート リポジトリにあるファイルの作業コピーとヒント ファイルを比較できるようにしたいと考えています。これを行う簡単な方法はありますか?
「hg incoming -p」を実行して、入ってくる変更のパッチ セットを確認できることはわかっていますが、プルを実行した場合に得られる特定のファイルの実際の変更を直接確認するだけでよいでしょう。最新のもの(または私がプッシュアウトしようとしているもの)。
今考えられる最も簡単な方法は、.hg/hgrc のデフォルトの場所を確認し、curl を使用してファイルをダウンロードする小さなスクリプトを作成することです (http 経由の場合は、そうでない場合は ssh 経由で scp するか、単にローカル ファイル システム上にある場合は直接 diff を実行してから、作業コピーまたはヒントをその一時コピーと比較します。
私は自分のチームに mercurial を販売しようとしていますが、私のチーム メンバーの 1 人が、GUI ツールを使用して SVN で簡単に実行できるものとして、今日これを持ち出しました。
database - 「スケジュール」を最も効率的に編集するための優れたアルゴリズムは何ですか?
これは小さなスケジューリングアプリ用です。2つの「スケジュール」を効率的に比較し、違いを見つけ、変更されたデータ行と、このテーブルを外部キーとして持つ別のテーブルのエントリのみを更新するアルゴリズムが必要です。これは大きな質問なので、すぐに一般的なアドバイスまたは具体的な解決策を探していると言います。
編集:提案されたように、私は質問を大幅に短縮しました。
1つの表では、リソースが使用される期間にリソースを関連付けています。
また、テーブルAのIDを外部キーとして使用する2番目のテーブル(テーブルB)もあります。
表Bに対応する表Aのエントリには、表Bの期間を含む期間があります。表Aのすべてのエントリに表Bのエントリがあるわけではありません。
ユーザーがテーブルAのリソーススケジュールを編集するためのインターフェイスを提供しています。これらは基本的に、DB内のバージョンとの差分として扱う必要があるテーブルAの新しいデータセットを提供します。
テーブルBが指すオブジェクトをテーブルAから完全に削除する場合は、テーブルBからもエントリを削除します。
したがって、次の3つのセットが与えられます。
- 表Aの元のオブジェクト(DBから)
- 表Bの元のオブジェクト(DBから)
- 表Aから編集されたオブジェクトのセット(ユーザーからのものであるため、一意のIDはありません)
次のようなアルゴリズムが必要です。
- これらのオブジェクトに変更が必要ない場合は、表Aと表Bの行を変更しないでください。
- 必要に応じて、テーブルAに行を追加します。
- 必要に応じて、テーブルAとテーブルBから行を削除します。
- 必要に応じて、テーブルAとテーブルBの行を変更します。
適切なデータベース操作を適用できる配置にオブジェクトを並べ替えるだけで、ソリューションには十分すぎるほどです。
繰り返しになりますが、具体的または一般的に好きなように答えてください。アドバイスを探していますが、誰かが私の一日を作る完全なアルゴリズムを持っている場合。:)
編集: lassvekに応えて、私はいくつかの追加の詳細を提供しています:
テーブルBのアイテムは、単に重複するのではなく、常にテーブルAのアイテム内に完全に含まれます。
重要なのは、表Bの項目は量子化されているため、完全に内側または完全に外側に収まる必要があるということです。これが発生しない場合は、データ整合性エラーが発生しているため、個別に処理する必要があります。
例(省略形を使用する場合):
したがって、次の動作が必要です。
- テーブルAからID02を削除するか、午後2時から午後3時に短縮する場合は、テーブルBからID01を削除する必要があります。
- テーブルAID01を午後1時に終了するところまで拡張すると、これら2つのエントリが1つの行にマージされ、テーブルBID01がテーブルAID01を指すようになります。
- 表AID01から8:00AM-10:00AMを削除した場合、そのエントリは2つのエントリに分割する必要があります。1つは7:00 AM-8:00AM用で、新しいエントリ(ID 03)は10:00AM-11用です。午前00時。
hibernate - Hibernate:現在のレコードと前のレコードの比較
インメモリ Hibernate エンティティの現在の値をデータベースの値と比較したい:
CODEBLOCK#1では、そのnewEntity.getProperty()="new value"
ANDを取得しますoldEntity.getProperty()="new value"
(もちろん、期待していoldEntity.getProperty()="old value"
ましたが)。実際、2 つのオブジェクトはメモリ内でまったく同じです。
いじって、それを取り除くようHibernateSessionFactory.getSession().evict(newEntity)
に設定しようとしました(比較のためだけに必要です):oldEntity=null
そして今、2つのエンティティは別個のものですが、もちろん私は恐ろしいorg.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session
.
何か案が?
EDIT:ダブルセッション戦略を試しました。HibernateSessionFactory
セッションのマップを実装するように変更した後...
oldEntity ノートを印刷しようとしているときに、単体テストがハングします... :-(
filesystems - リモートシステムにファイル構造の差分/パッチを適用しますか?
おそらくMD5マニフェストに基づいて、ファイル構造の差分を作成するツールはありますか? 私の目標は、新しい/更新されたファイルと削除するファイルのリストを含むパッケージをネットワーク経由で送信することです。新しい/更新されたファイルをコピーし、ソース ファイル構造で削除されたファイルを削除する必要がありますか?
visual-studio - Team Foundation Server (TFS) ファイル差分ビューアー - 他のツールでカスタマイズ
Visual Studio 2005 に Team Foundation Server (TFS) を使用しています。
2 つのファイルのバージョンを比較したいときはいつでも、TFS は違いを示すウィンドウを表示します。
問題は、常に垂直方向に分割されることです。
実際、ほとんどの場合、水平に分割することを好みます。 私はすでにTFSオプションを見てグーグルで検索しましたが、何も見つかりませんでした。そのようなオプションが利用できないと思うとゾッとします!
水平方向に分割するように TFS を構成する方法はありますか?
svn - KDiff3 を TortoiseSVN で適切に使用して競合を解決するにはどうすればよいですか?
競合解決ツールとして KDiff3 を使用するように TortoiseSVN をセットアップしました (組み込みの TortoiseMerge よりもマージに役立つ情報が多く表示されることがわかりました)。
Tortoise の「Edit Conflicts」コマンドでファイルを開くと、3 つのファイルが表示され、手動で「Merge->Merge Current File」を選択する必要があります。問題は、KDiff3 が結果を tosource_file.working
ではなくto に保存することsource_file
です。したがって、名前を付けて保存を行わないと、競合のある実際のファイルは変更されません。このマニュアルを毎回名前を付けて保存する方法はありますか?
これは厳密にはプログラミングの問題ではないことはわかっていますが、ここで役立つはずのプログラマーにとって十分に一般的な補助プロセスに関するものです。これに対する答えは他に見つかりませんでした。