2

私たちの 4 人のチームは現在 svn を使用していますが、私は Mercurial をテストしています。ほとんどの場合、.net 上の C++ および C# でコーディングします。TortoiseHg をインストールし、hgsubversion を使用して既存の svn リポジトリに対してプッシュ/プルします。チームの他の開発者は、今のところ svn にとどまります。

私は、他の開発者にプッシュしたくない特定の方法でカスタマイズした (解体した方が適切な用語です) いくつかのソース ファイルを持っている傾向があります。しかし、これらのカスタム変更を私のバージョンのプロジェクトにコンパイルしたいと思います。通常のファイルとカスタマイズされたファイルの比率は約 100:1 です。

これらの解体されたファイルをMercurialで処理する最良の方法は何ですか? コミット中に解体されたファイルのチェックを外すこともできますが、最終的にはこの手順を忘れてしまいます。保留と無視について簡単に説明しました。

これらは追跡されたファイルであるため、無視するのは正しくないようです。私は他の人から分離されたファイルへの変更をプルしたいと思っています。棚上げは間近でしたが、作業コピーから解体されたコードが削除されるため、それも正しくありません。

私はそこにいる唯一のコードブッチャーではありません. これにどのように対処するか教えてください。Git ユーザーの皆さんも、hg の使用に完全にコミットしているわけではありません。

4

1 に答える 1

3

それらがファイルである場合、ほとんどの人が (開発者データベースのアカウント情報などに従って) 変更することになるため、正しい方法はxxxxx.sampleファイルを追跡することです。たとえば、にあるビルド スクリプトを使用 local-database.configして、リポジトリにファイル.hgignoreを提供します。local-database.config.sample指示に「サンプルを実際にコピーする」を含めるか、実際のファイルがまだ存在しない場合はビルド スクリプトに自動的に実行させることができます。存在する場合にのみ settings.local をインクルードし、メイン設定を上書きできるように構成します。そうすれば、誰もローカル構成を必要としませんが、それをコミットするリスクなしで何かを変更するためにオプションで使用できます。

それらがあなただけが変更するファイルである場合、最善の方法は Mercurial キューを学ぶことです。次にpop、その変更セットを自分だけの変更で変更し、中央リポジトリにプッシュしてから、ビルドに再度適用できます。同様のことを行うさまざまな拡張機能がありますが (shelveたとえば)、ポップして適用するオーバーレイをバージョン管理できるため、 mq が推奨されます。

于 2012-12-19T00:22:36.670 に答える