問題タブ [patch]
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.
python - 自己更新 py2exe/py2app アプリケーション
Linux の Mac と Windows で動作する PyQt に基づくクロス プラットフォーム アプリケーションを維持しています。
Windows および Mac バージョンは、py2exe および py2app を使用して配布され、非常に大きなバンドル (~40 MB) を生成します。
ダウンロードサイズを制限するパッチに基づいて、「自動更新」機能を追加したいと思います。
- http サーバーで新しいバージョンを確認する
- 最新バージョンへの更新に必要なパッチをダウンロードする
- パッチリストを適用し、アプリケーションを再起動します
いくつか質問があります:
- 開いているファイルはロックされており、上書きできないため、Windows アプリケーションを更新するための推奨される方法は何ですか?
- パッチを準備して適用するにはどうすればよいですか? おそらくbsdiff/pspatchを使用していますか?
[アップデート]
bsdiffでパッチを作成するための簡単なクラスを作成しました。これは、サイトで宣伝されているように非常に効率的です。私のアプリの 2 つの py2exe バージョン (圧縮されていない ~75 MB) の diff は、44 kB のパッチを生成します。私には十分小さいので、この形式に固執します。
このコードは、Python コードの小さなライブラリであるpyfluの「更新」パッケージで入手できます。
git - git am が変更されたファイルを放置するのはなぜですか? ワークフローを改善するにはどうすればよいですか?
長くなりますが、ご容赦いただければ幸いです。
チームのソース コードをバージョン管理下に置くために git を使用しようとしています。自分に合ったさまざまなアプローチを見つけようとした後、最終的にgit format-patch
機能を使用することにしました。FWIW、製品は Windows で実行されている ASP.NET Web アプリケーションであり、現在msysgitを使用しています。
背景:
すべての aspx ファイルを含むステージング サーバー (ミラー運用サーバー) があります。次に、ルート フォルダー内でinit-dbを使用して git リポジトリを作成し、git add .
すべてのファイルを追跡しました。
ラップトップにローカル コピーを作成するために、ステージング サーバーから ".git" フォルダーを圧縮し、ローカル マシンに FTP 接続しました。名前を「staging.git」に変更git clone staging.git webappfolder
し、開発を行うために実行しました。
feature1 と feature2 に対して 2 つのコミットを行った後、変更をステージング サーバーに適用します。git format-patch -2
ファイル0001blah.patch
とに出力するを実行しました0002blah.patch
。
次に、これら 2 つのパッチ ファイルがステージング サーバーに送信さgit am 0001blah.patch
れ、ステージング サーバー自体で を実行しました。agit log
を実行すると、コミットが完了したことが示されます。しかし、私がするときgit status
、それは示していますChanged but not updated: modified: file1.aspx
。
それは正確にはどういう意味ですか?私もやってみましたgit apply 0001blah.patch
が、私が得たのはerror" patch failed: file1.aspx: patch does not apply
.
ワークフローに問題はありますか? 適切な方法やヘルプに関する洞察は非常に役立ちます。繰り返しになりますが、SSH サーバーをすぐにセットアップする予定はないため、現時点ではパッチ適用モデルが最も実行可能です。
svn - svn では、変更を元に戻して後で保留することはできますか?
svn リポジトリにいくつかのコミットをコミットして、いくつかの変更を加えました。HEAD が r750 にあり、r746-r750 を失わずに r745 を元に戻したいとします。これは可能ですか?
そして、どうにかして r745 を保存し、後で (新しいリビジョンとして) 再適用できますか?
wix - Wix 3.0 のアップグレードとパッチの作成
1) ビルド、パッチのベスト プラクティスは何ですか?
2)メジャーアップグレード(製品コードの変更)ビルドの間にパッチをビルドすることはできますか?
3) 製品のコンテンツ (静的ファイル) アップデートを出荷する方法 パッチを使用してこれを実行しようとしましたが、わずか 200 ファイルを更新するのに多くの時間がかかりました。製品をインストールしました。
patch - NSIS パッチ (1 つのファイルに複数のパッチ)
NSIS の Vpatch を使用して、あるバージョンから別のバージョンへのパッチ ファイルを生成できます。mydll.dll バージョン 1 があり、それをバージョン 2 に更新するためのパッチがあるとします。その後、新しいバージョンが再びあるので、別のパッチを生成してバージョン 3 に更新します。
ただ気になるのは、ユーザーがバージョン 2 への更新をキャンセルした場合などです。次に、私の最新バージョンはバージョン 20 としましょう。ユーザーはバージョン 20 に更新することにしました。本質的に累積的なパッチを生成する方法はありますか? 一方、ユーザーは古いバージョンから最新バージョン (つまり、バージョン 3 からバージョン 20) にジャンプすることができますが、その間のバージョンを通過する必要はありませんか?
vpatch のドキュメントでこの行を読みました ---> 「バージョン 1 と 2 をバージョン 3 にアップグレードできるようにしたい場合は、1 > 3 と 2 > 3 のパッチを 1 つのファイルに入れることができます。」しかし、どうすればいいですか?
すでに 30 ほどのバージョンがある場合はどうでしょうか。古いファイル (バージョン 1 ~ 29) と新しいファイル (バージョン 20) を引数とするパッチを作成する必要があるということですか?
c# - ローリング差分を実行する方法は?
2つのファイル間でローリング差分を実行して、変更されたファイルの部分のみを判別するにはどうすればよいですか?
ruby-on-rails - RailsのRubyにパッチをどのように適用しますか?
このスレッドで言及されているaction_mailerパッチを適用したいのですが、これまでパッチを適用したことがなく、これらがどのように機能するかわかりません: https ://rails.lighthouseapp.com/projects/8994/tickets/2263
私のアクションメーラーgemはここにあります:/opt/ruby-enterprise-1.8.6-20090421/lib/ruby/gems/1.8/gems/actionmailer-2.3.2
そのディレクトリに移動してpatchコマンドを実行する必要があると思います...このようなものですか?
また、パッチファイルが「actionmailer」ディレクトリを参照しているのに、私の名前は「actionmailer-2.3.2」であるということもよくわかりません。
git - あるリポジトリから別のリポジトリにgitパッチを適用するにはどうすればよいですか?
2つのリポジトリがあります。1つはライブラリのメインリポジトリで、もう1つはそのライブラリを使用するプロジェクトです。
subservientプロジェクトで修正を加えた場合、そのパッチをアップストリームに適用する簡単な方法が必要です。
ファイルの場所はリポジトリごとに異なります。
- メインレポ:
www.playdar.org/static/playdar.js
- 計画:
playlick.com/lib/playdar.js
git format-patch -- lib/playdar.js
playlickプロジェクトで使用してgit am
から、メインのplaydarリポジトリで使用してみましたが、パッチファイル内のファイルの場所が異なるとエラーが発生しました。
特定のファイルの特定のコミットから別の任意のファイルにパッチを適用する簡単な方法はありますか?
ボーナスポイントについては、パッチを適用するファイルがgitリポジトリにない場合はどうなりますか?