2011-08-12 15 views
0

私は頻繁に頻繁に変更されるオープンソースプロジェクトを利用しています。すべての変更とバグの修正を伴う最新バージョンを常に持っている必要があります。独自のコードを別のプロジェクトに自動的に挿入する

ソースコードは、私が必要とするように調整されています。それでは、私自身のコードも含んでいます。 sthが変わるたびに、私は現在changelogで変更された内容を手動で読み込んだり、ファイルを比較したり、すべてをコピーして自分のファイルに貼り付けたりしています。これはかなり時間がかかります。

は、だから今、私は別のアプローチを使用して考えていた:

  1. 代わりにロングコードスニペットの、唯一の関数呼び出しを挿入し、別のファイルにそれらのすべてを保ちます。このファイルをmakeシステムに追加します。
  2. ソースコードの変更は、それをダウンロードし、私は今、元のソースコードと古いものと新しい(手付かず)のバージョンを比較することができますこの方法

を行って、すべての変更を自動的

  • 再コンパイルし、再挿入した場合と、私が使ったコードの状態と新しいコードの状態の間で何が変わったのかを見てください。

    私の質問は、ステップ2のためです:追加のコードが追加された場合

    行番号は変更される場合があります。私自身の機能を注入するための正しいポジションを見つけるにはどうすればよいですか?

  • +5

    ソースコントロールを使用します。トランクからあなたのバージョンをブランチしてから、変更されたトランクからの変更をマージします。 –

    +0

    ジョナサン、私は自分の枝を作ることができるか分からなかった。私は今それを読んで、これはまさに私が探していたものです! –

    +1

    @フランク:フォークしたプロジェクトで使用されているソース管理システム(以下、「アップストリーム」という)に依存します。それができない場合は、通常は上流のコードのソースコントロールにブランチを作成します。それから、変更のためにブランチを作成します。新しいコードがアップストリームから到着するたびに、まずそれを上流のブランチにチェックインし、そのブランチの変更を開発ブランチにマージします。手作業で解決しなければならないコンフリクトがまだ残っている可能性がありますが、マージは多くの作業を行います。 –

    答えて

    2

    ジョナサンは言うとおりにします。ソースコントロールを使用します。

    +3

    私はジョナサンです。ひざまずけ。 :) –

    関連する問題