2

テキスト ファイルとバイナリ ファイルの両方の変更を維持する必要があるプロジェクトがあります。いくつかのオプションがあります。

  1. パッチを使用する
  2. git や hg などのバージョン管理システムを使用します。

私の目的では、テキスト ファイルのみの場合は、パッチの方が適しています。ただ、差し替え・追加・削除の可能性がある画像もありますので、どの方法が良いでしょうか?

バイナリの違いも処理できるクリーンな diff/patch ユーティリティはありますか (バイナリであることを指定する必要はありません。bash の diff ではできない個々のファイルではなく、ディレクトリ全体を diff できるはずです)。バイナリモードで) パッチとして使用しますか? そうでない場合、バイナリ ファイルに関しては、どのバージョン管理システムがよりクリーンなオプションですか?

4

3 に答える 3

3

GitとMercurialはどちらも、テキストファイルとバイナリファイルの両方を簡単に処理できます。お好みの方を使用してください。そして、はい、VCSは正しい選択です。

于 2011-02-17T07:10:09.337 に答える
3

Mercurial には、主にquiltに触発された (mq 拡張機能を有効にした) パッチ キューの概念があります。
これにより、いくつかの方法でパッチを管理できます。

  • 単一のパッチ キューを使用し、すべてのパッチを順番に並べます
  • qqueue コマンドで複数のパッチ キューを使用し、任意の基準でパッチをグループ化します。

おまけとして、パッチ キューは実際にはパッチ ファイルであるため、簡単に順序を変更したり、あるキューから別のキューに移動/コピーすることもできます (パッチ キューを見つけるには、.hg ディレクトリを参照してください)。

Steve Losh の mercurial queue に関するチュートリアルで、パッチ キューの管理に関するさらに多くの有用な情報を見つけることができます。

于 2011-02-17T10:33:58.690 に答える
0

VCS 自体が気に入らない場合は、パッチを含む ftp サーバーを使用してみてください。バージョン番号をディレクトリ名として使用できます。このシステムは、ディレクトリ名に基づいてパッチを順番に適用するスクリプトでサポートできます。

私が取り組んでいるプロジェクトでは、データベースのパッチはこの方法で適用されます。ただし、それらは VCS 内で維持されます。ファイルを使用して現在のバージョンを維持できます。このバージョンはスクリプトによって読み取られ、適用するパッチが決定されます。

于 2014-12-17T16:46:59.957 に答える