Mercurial リポジトリ (「foo」と呼びましょう) で、バージョン管理全般、特に Mercurial の初心者と協力する必要があります。
私は、Mercurial 側 (混乱) と私側 (後始末) のどちらにも余分な労力をかけずに Mercurial を使用できるようにするワークフローを考え出そうとしています。
私の懸念は、初心者として彼らが間違いを犯すことを期待する必要があり、彼らが制御された方法で間違いを犯すことを許可する必要があるということです。しかし、悪い変更によってリポジトリが不必要に汚染されることは望ましくありません。
mq
それらが適切にマージされたり、拡張機能を使用したりできるとは思いません。これは過小評価の問題ではなく、過去の SVN の経験と私自身の Hg の経験を考慮した現実的な評価です。
次のアプローチのうち、最も理にかなっているのはどれですか? または、より良いアプローチがある場合、それは何ですか?
foo-submit
誰でも読み取り/書き込み可能なリポジトリと、すべてのユーザーがfoo-trunk
読み取り可能で、管理者が書き込み可能なリポジトリがあります。ユーザーは からプルしfoo-trunk
、変更を にプッシュしますfoo-submit
。クリーンアップ: 良い変更が見つかった場合は、そのまま通過させます。悪い変更を見つけた場合は、以前のバージョンとマージして「バイパス」します。foo-trunk
すべてのユーザーが読み取り可能で、管理者が書き込み可能なリポジトリがあります。各ユーザーは、チームの他のメンバーが読み取りアクセスできる独自のクローンを維持する責任があります。誰かが変更をプッシュしたい場合、彼らは私に知らせ、必要に応じて適切なクリーンアップを行ってリポジトリからプルします (#1 と同じ)。foo-dev
誰でも読み取り/書き込み可能なリポジトリと、すべてのユーザーがfoo-trunk
読み取り可能で、管理者が書き込み可能なリポジトリがあります。ユーザーは foo-dev にプル/プッシュし、広範な開発を行う必要がある場合は名前付きブランチで作業します。マージとクリーンアップの実行を担当しています。foo-trunk
リポジトリは、ヒントが常に良好な状態にあるブランチを持つ「クリーンな」コピーを保持するためだけのものです。