14

同じ閉じた (うーん、ばかげた政府の) ネットワーク上に 2 人の開発者がいます。別の開発者は車で数分のところにあり、4 番目の開発者は国の途中にあります。電子メール、ftp、およびリムーバブル メディアはすべて、同じネットワーク上にいない人への転送方法として考えられます。

私は 2 人のクローズド ネットワーク開発者のうちの 1 人です。私たちを「マスター」ロケーションと考えてください。

グループに最適な Mercurial セットアップ/パターンは? リモート開発者との間で変更を伝達する最良の方法は何ですか? 私が担当しているので、少なくとも 1 つのマスター リポジトリと、開発できる別のローカル リポジトリを保持する必要があると考えました。他の人は、マスターのクローンが必要なだけです。これは正しいですか?これもマージの責任になると思いますか?

ご覧のとおり、私はまだ分散バージョン管理について頭を悩ませようとしています。接続状況でこれを行う方法は他にないと思います。

4

3 に答える 3

3

パッチはシンプルで用途の広いソリューションです。

変更のより大きなグループ(特にバイナリの変更とマージ)を移動するために、Mercurialはバイナリバンドルを提供しています。バンドルは基本的に、ネットワーク上で送信されるバイナリのものですがhg push、ここではファイルにキャプチャされます。

どういうわけか(フラッシュドライブ、DVDなどで)クローンを取得したと想像してみてください。それを呼び出しますupstream。次に、2番目のクローンを作成します。これを呼び出しますdevel。私はすべての開発をdevel行い、多くのコミットやマージなどを行います。Mercurialは配布されているため、これらすべてをオフラインで行うことができます。

どのチェンジセットが欠けているかを確認するupstreamには

% hg outgoing ../upstream

何か送るものがあるときは、

% hg bundle changes.hg ../upstream

すべてのメタデータを含むチェンジセットを含むバイナリ圧縮ファイルを取得します。次に、このファイルをCDに書き込んで、メールで送信できます...

バンドルの受信者は次のことができます

% hg incoming changes.hg

チェンジセットリストを表示し、

% hg pull changes.hg

変更セットを解凍してリポジトリに追加します。その場合、彼はおそらくマージする必要があります。これは、HTTPまたはSSHを介してリポジトリから直接プルした場合とまったく同じです。

upstreamリポジトリは、アップストリームリポジトリですでに検出されているチェンジセットを覚えておくための便利な方法としてのみ使用されることに注意してください。チェンジセットIDを書き留めて、hg bundle --baseバンドル時にベース(共通)チェンジセットを指定するために使用することもできます。wikiを参照hg help bundleまたは参照してください。

于 2009-05-22T21:57:29.010 に答える
1

ネットワーク外のユーザーは、パッチを作成したり、電子メールを使用して更新をメイン リポジトリや誰か (あなたのような人) に送信してマージしたりできます。あなたのように、他の内部の人々がローカル コピーを持っていて、マージを行うことができます -- しかし、これらの外部ネットワーク パッチを持っている場合は、誰も混乱しないように、1 人がそれらを処理する方がよいかもしれませんが、それはあなたがしなければならないことです。あなた自身を考えてください。

他の方法で同期する場合は、パッチを作成し、リモートの開発者に電子メールで送信するかフラッシュ ドライブを入手して、システムにパッチを適用します。チームマンとの良好なコミュニケーションが必要になります。私があなたの立場ではないことに感謝します。

以上が私の唯一の提案です。もちろん、VPN 接続を取得してください。どのように進行するか、どのような計画が毎週のグルーブに安定するかなどを聞きたいです。

于 2008-08-07T13:37:30.300 に答える
0

正しい。閉ざされたネットワークに侵入する唯一の方法は、フラッシュ ドライブを介することです。

于 2008-08-07T12:53:17.597 に答える