2017-05-25 2 views
0

自分のプロジェクトにgitプロジェクトをサブモジュールとして含めたいが、パッチファイルを使っていくつかのパッチを適用したい。また、構成プロセスの一部であるクイックセットアップスクリプトを使用して、これらのパッチファイルの適用を自動化したいと考えています。中央の場所から適用できるようにパッチファイルを生成する方法

これを行うための「標準的な」方法はありますか?私はパッチファイルを生成しましたが、パッチファイルを適用するのはかなり複雑です。私はすべての私のパッチファイルを含んでいるセントラルディレクトリを持っていて、それを適用するためにおそらく​​3210のようなものを持っていることを望んでいました。テストのしばらくの間、パッチはそのようにはうまくいかず、パッチを適用するためにディレクトリを移動する必要があります。

これを行う簡単な方法がありますか、私はpatchを間違って使用していますか? patch -R patches/*のような単純なコマンドがrootディレクトリから実行することができるように生成されたファイルにパッチを適用する方法を

root 
├── libs 
│   └── submodule1 
├── patches 
   ├── example1.patch 
   └── example1.patch 

:私は次のディレクトリ構造を持っていると仮定すると?私は修正コードsubmodule1_modifiedをどこかに置いて、パッチファイルを生成するためにパッチを実行できると仮定します。

私はこれをさまざまな方法で試してみましたが、適用しようとするとエラーcan't find file to patch at input line 4を報告するパッチで終わります。私がこれを動作させるための唯一の方法は、まず最初にcdを変更されたツリーのルートディレクトリに適用してそこに適用することでした。

+0

私が推測する 'quilt'ツールが必要です。 – 0andriy

答えて

0

パッチファイルの生成方法とヘッダーのパスは指定していませんが、最も簡単な解決策は、プロジェクトごとにパッチを分割し、patch -d lib/submoduleNを使用して正しいディレクトリに適用することです。

すべてのパッチをまとめて保存する場合は、ヘッダーを書き換えてlibs/submoduleNを含めるか、最初にルートディレクトリからdiffを生成する必要があります。

もちろん、私はあなたがプロジェクトのルートからパッチを適用したと仮定します。

関連する問題