ディレクトリ構造内のファイルを変更/追加するパッチを作成するツール


0

一連の変更を適用する必要がある一連のファイルがあります。

このシナリオでは、一連の既知の構成を適用し、特定のフォルダーにいくつかのjarプラグインを追加する必要があるJavaアプリケーションサーバー(zipファイルで配布)があります。事前に変更された独自のディストリビューションを単に作成したくありません。変更されたファイルのみをパッケージ化し、それらを初期インストールに適用できるようにします。

そのようなチェンジセットを作成し、同じチェンジセットを他の人のコンピューターに適用する最も簡単なツールは何ですか?

理想的には、ユーザーのコンピューターに何もインストールせずにツールが機能することができます。ワークフローは次のように機能します。

  1. 変更するアプリケーションのバイナリ配布を含む元のzipファイルをダウンロードします
  2. そのアプリケーションを任意のカスタムの場所に解凍します。Cドライブのルートの下にあるフォルダー、おそらくデスクトップ
  3. 変更セットを含むファイル(およびユーティリティ)をダウンロードします
  4. 変更セットをディレクトリに適用します

自動化された方法と手動の方法の両方で機能する方法が最適です。

パッチをホストするために何らかのサーバーをセットアップする必要はありません。パッチを適用するためにターゲットマシンに何もインストールする必要がない限り、ツールをインストールしてそれらを作成してもかまいません。

サブディレクトリを含むzipファイルを作成することを検討しました。違いを検出し、変更点のみを圧縮する最も簡単な方法はわかりません。大量の手動ステップを必要としない絶対確実な方法が必要です(diffを実行し、変更を手動で選択するとエラーが発生しやすくなります)。

最小サイズを達成するのは良いことですが、必須ではありません。

回答:


4

古典的なツールセットはコンテキストdiffpatchです。差分とパッチに関する10分間のガイドを参照してください


+1; これをバッチファイルと組み合わせて、適切なpレベルを取得できると思います。実装に苦労がなければ、これを受け入れます。サイドノート:頭上で、パッチを適用するための.NetやJavaライブラリを知っていますか?
マーリンモーガングラハム

1
@ MerlynMorgan-Graham:頭のてっぺんは動かなかったが、私の指先はこうだった: 「Diff MatchとPatchライブラリ…現在Java、JavaScript、C ++、C#、Objective C、Lua、Pythonで利用可能」
RedGrittyBrick

0

私の目的では、変更が小さいため、パッチを作成するよりも置換ファイルを含むzipファイルを作成する方が簡単でした。そうすれば、pレベルをいじる必要はありませんでした。

これを行うには、Beyond Compareを使用し、変更されたファイルを選択し、それらを同じ名前のディレクトリ(親パスが異なる)にコピーし、同じ名前のディレクトリを圧縮しました。

それを適用するには、既存のファイルの上で解凍し、すべてを置き換えます。

これは、これを検出するRedGrittyBrickの回答とは異なり、変更が有効であるかどうかを検出しませんが、理解するのが簡単であり、私のシナリオではよりうまく機能します。

また、プロセスを自動化する必要がないことがわかりました。その場合、バッチファイルからdiffツールを実行し、zip形式のファイルリストを生成し、コマンドラインzipユーティリティを使用して結果を保存する方法があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.