2012-05-10 2 views
1

私は約1Kのアクティブユーザを持つ中規模のウェブサイトを作成し、維持しています。私はフォークを維持しなければならないか、パッチとメイクファイルを維持するべきですか?

私は、Ubuntu、Python、Django、jQuery、Less、twitter-bootstrapなどのテクノロジーと、それらがもたらすすべての依存関係を使用しています。私はインターネットからダウンロードしたJSライブラリのような外部コンポーネントを半分持っていますが、GitHubを変更する必要があるため、私はいくつかのプロジェクトをフォークしました。私がpipでインストールしたいくつかのPythonプロジェクト。

私はまた、オンラインでダウンロードしたJSライブラリに変更を加えました。すべてが現在私のリポジトリにあります。フォークされたプロジェクトは、私のリポジトリ内のgitサブモジュールとして利用できます。

1.5年の開発の後、私はこれがひどいアプローチであることを認識しています。コンポーネントをアップグレードすると、潜在的に面倒なことになります。私がバージョンを把握するのは難しいですし、単一のコンポーネントをアップグレードするのは難しいです(pipやJavaScriptライブラリなどでインストールしたPythonパッケージでも構いません)。

昨夜私は、明日がないようなものを捏造するのではなく、Makefileで適用された一連のパッチを維持していたはずだと考え始めました。

私は良くなったでしょうか?あなたの考えは何ですか?

ありがとうございます。

答えて

0

私は最近これについていくつかの経験があります。私は、ラボが使用する言語の新しいバージョンにファイルを移植するためにラボが使用する一連のファイルを変更してきましたが、他の人はニーズに合わせて独自のバージョンのファイルをカスタマイズしていました。だから私が必要とするのは、カスタマイズされたバージョンの上に自分の変更をパッチする方法です。

私がこれをやっているやり方は、gitやMake(私は日常的にこれらの両方を使う)ではなく、OS Xの視覚的なFileMergeユーティリティを使うことです。私はカスタマイズされたコードとそのコードの違いのすべてが最初にコードに設定されていると仮定して、すべての変更を順番に調べて、自分のカスタマイズしたコードに属していれば、コードに修正します。

これはマニュアルですが、OS Xの視覚的なFileMergeユーティリティを使用すると、比較的早くて簡単にできます。比較的痛みがないということは、私は右手で4つの矢印キーを離してしまうことはなく、マウスを使用することは決してありません。正直なところ、このようなパッチを自動化できるかどうかはわかりません。私は、マージを行うときに何らかの自動パッチシステムに簡単に任せることができないかどうかを判断する必要がありました。

私はgitのマージアルゴリズムが正常にマージされたことのいくつかに驚いています。

これは大きな質問です。投稿に感謝します。そして、私はこれが決定的な答えではないことを知っていますが、これらは私の現在の考えです。

関連する問題