0

私は、複数の顧客のために同じ e コマース Web アプリを維持することに取り組んでいます。

当初は、顧客のカスタマイズの残りすべてが過去に派生した標準的な一連のページがありました。

最近、私が働いている場所では、バージョン管理に Mercurial を使用することにしました。彼らはまた、私たちの電子商取引の標準的なページ セットを作り直し、それらを開発のメインライン/ベースラインにすることを決定しました。

ただし、バージョン管理 (hg) にまだ入力されていない、ベースラインのページ セットの前に行われた既存のカスタマイズが各顧客に存在すると言われています。

概要

各顧客の既存のカスタマイズを維持しながら、開発のベースラインからの変更を各顧客の個別の開発ラインにマージする最良の方法は何ですか?

4

3 に答える 3

1

各顧客の既存のカスタマイズを維持しながら、開発のベースラインからの変更を各顧客の個別の開発ラインにマージする最良の方法は何ですか?

他の分岐シナリオと同様です。例えば:

alice ~/wc/cust-XYZ % hg pull -u $xyz
alice ~/wc/cust-XYZ % hg ci
alice ~/wc/cust-XYZ % hg ci
alice ~/wc/cust-XYZ % hg ci
alice ~/wc/cust-XYZ % hg pull $mainline
alice ~/wc/cust-XYZ % hg merge
alice ~/wc/cust-XYZ % hg ci
alice ~/wc/cust-XYZ % hg push $xyz
于 2009-11-30T22:15:23.090 に答える
0

私は、新しい顧客のために共通のリポジトリとクローンを作成します。共通リポジトリに入れるパッチがある場合、または共通リポジトリから顧客のリポジトリに適用する必要がある一連のパッチがある場合は、hg 移植を使用できます。

于 2009-12-04T03:35:54.807 に答える
0

各プロジェクトをどの程度カスタマイズする必要があるかにもよりますが、最も簡単な方法は、基本セットよりも優先される顧客ごとに個別のテンプレート ツリーを用意することです。のように

base/template1.html

customer/template1.html

どのページでも、顧客のディレクトリが最初に検索されます。これには多くのバージョン管理マジックは必要ありませんが、サブリポジトリが便利な場合があります。

mq(Mercurial キュー)を使用して、各顧客の変更をパッチセットとして追跡できる場合があります。パッチセットをマージするのは少し難しいかもしれません。

で同じことを行うことができrebase、潜在的に よりもエレガントですがmq、リベース セットを共有する方法がわかりません。

または、ベース リポジトリと、ベースに戻されない各顧客からの個別のリポジトリを単純に保持することもできます。

いずれの場合も、顧客ごとのカスタマイズが制限され、コア製品への変更と競合する可能性が低くなるようにプロジェクトを編成すると、作業 (マージ) がはるかに簡単になります。

于 2009-11-30T22:06:40.840 に答える