多くの部分からなる質問で申し訳ありませんが、BitBucketでMercurial Patch Queueを使用するための意図された方法を理解するのに苦労しており、Googleはあまり役に立ちません。私の希望は、いくつかのMQの概念を説明する1つの回答が、一度に多くの質問をカバーすることです。http://ches.nausicaamedia.com/articles/technogeekery/using-mercurial-queues-and-bitbucket-orgを読みました、しかしそれは時代遅れで不完全なようです。私の全体的な計画は、必ずしもブランチにコミットすることなく、多数のユーザーから提出された多数の変更を許可することです。これらのパッチは、ゲームを強化および拡張するためにプレーヤーがゲームに対して行うオプションの変更を表します。そして、ユーザーが任意のパッチまたはパッチのセットを選択して、遊んだりレビューしたりできるようにしたいと思います。hgがどのように機能するかをしっかりと理解したら、PHPスクリプトなどを作成して、ブランチと選択したパッチのセットをワークスペースにプルし、プレーヤーがHTML5コードを実行してレビューできるようにします。
私は次のことができました:
- 一般的に、SourceForge http://sourceforge.net/p/iotabuildit/wiki/Homeにリポジトリを作成します。ここで、私はすべてをホストすると思っていました。
- すべてのコードをSourceForgeリポジトリにコミットします。
- 私の要件を考えると、BitBucketがこれをホストするのに適した場所である可能性があることを認識してください(多くの独立したパッチをホストするための推奨DVCSメカニズムのおかげで)。
- 私のコードをSourceForgeのMercurialリポジトリからBitBuckethttp://bitbucket.org/bluemonkmn/iotabuildit/に直接インポートします
- BitBucket URIをTortoiseHgに追加して、どちらのオンラインリポジトリでも同じローカルリポジトリを使用できるようにします。
- TortoiseHgでmqを有効にする
- Qローカルリポジトリのパッチキューに変更をコミットします。
- BitBuckethttp : //bitbucket.org/bluemonkmn/iotabuilditmq/にパッチキューリポジトリを作成します。
- パッチキューリポジトリをローカルリポジトリに複製する
- パッチファイルを元のローカルリポジトリからパッチキューリポジトリにコピーします(ただし、これを行うためのより良い方法があるかどうか疑問に思います)。
- プッシュを実行する前に--mqスイッチをオンにして、パッチをBitBucketパッチキューリポジトリにプッシュします。
- BitBucketにリストされているパッチを参照してください。
- BitBucketパッチキューリポジトリの新しいコピーを複製し、ローカルリポジトリで利用可能なパッチを(ツリーの残りの部分とともに)確認します。
私が理解できないことや質問があることは次のとおりです。
- メインリポジトリとパッチリポジトリの両方をローカルに保持する必要がありますか?
- パッチリポジトリをSourceForgeで使用できますか/使用する必要がありますか?(可能であれば、BitBucketを放棄する可能性があります。)
- SourceForgeはmqをサポートしていますか?(SourceForgeは、BitBucketで見たように、パッチが含まれているクローンリポジトリを提供しますか?)
- 元のリポジトリをBitBucketパッチリポジトリで使用できますか/使用する必要がありますか?(可能であれば、SourceForgeのリポジトリを放棄する場合があります。)
- パッチ用のコードで作業する場合は1つのリポジトリを使用し、正式にコミットするためのコードで作業する場合はもう1つのリポジトリを使用する必要がありますか?
- パッチをオンラインリポジトリ
にプッシュする最良の方法は何ですか?
- ローカルパッチリポジトリでQCommitまたはQNewを実行してから、-mqスイッチでプッシュしますか?
- プロセス中のある時点で、シリーズと.diffファイルをパッチリポジトリにコミットしましたが、少しずれているように見えました。これは、mqとBitBucketがどのように機能するかについての私の認識を汚しましたか?
- BitBucketまたはSourceForgeのソース管理に.diffファイルをコミットする必要がありますか?(場合によっては、QCommitは.hgignore、series、および.diffファイルをコミットしたいようです)
- ユーザーは、クローンを作成した後、パッチリポジトリで保留中の適用済みおよび/または未適用のパッチを表示できるようになっていますか?
- クローンを作成せず
に、ローカルまたはリモートのリポジトリで利用可能なパッチをプルする方法はありますか?
- ローカルリポジトリでパッチを削除すると、再クローンを作成せずにリモートリポジトリからパッチを元に戻す方法がわかりませんでした。また、パッチの削除をコミットする方法もわかりませんでした。
- パッチファイルを手動でコピーしないと、元のリポジトリからパッチリポジトリにパッチを転送できませんでした。
- 同じキューで他のパッチを先に取得しないと、キューからいくつかのパッチを選択できないという問題がすぐに発生しますか?一部のプレーヤーは、同じ(または別の)ユーザーからの無関係な変更に合わせてパッチを別のブランチ/キュー/その他に作成することを怠るのではないかと心配しています。その潜在的な問題に対処するための提案も歓迎します。
- すべてのBitBucketユーザーにパッチリポジトリへのアクセス許可を明示的に追加しなくても、任意のユーザーがパッチを送信できるようにすることは可能ですか?
- すべての(場合によっては数百人の)ユーザーがパッチキューリポジトリを共有することは、賢明で合理的ですか?これは理想的です(可能であれば、各ユーザーに独自のパッチリポジトリを作成させるのではなく)。これはユーザーにとって複雑になりたくないので、MercurialとBitBucketの理解に時間がかかっていることを考えると、どんな複雑さも多くのユーザー/プレーヤーをオフにすることを恐れてください。
お分かりのように、どんな質問をすればいいのかわからず、ちょっと迷ってしまいました。答えはこれらの質問よりも簡単だと思いますが、質問を知らなければ、正しい質問をするのは難しいです。うまくいけば、パッチキューリポジトリの性質を説明する1つの答えが、私にとってこれらすべてをクリアするでしょう。