タグ付けされた質問 「mercurial」

Mercurialは、高速なオープンソースの分散バージョン管理システムです。

2
大規模なMercurialリポジトリは「プッシュレース」の影響を受けますか?
Programmers.SEに関するいくつかの質問に対するいくつかの「なぜDVCSが優れている」という回答を読むと、大規模なプロジェクトでコミットレースを行わないため、IEコミットが古くなっているため、一般的にDVCSが優れていると言われています。更新、コミット、期限切れ、コミット、まだ期限切れなど DVCSは、プッシュの概念でこれを制限します。しかし、非常に大きなプロジェクトでは、特に1日の終わりに「プッシュレース」が行われることはないでしょうか。私はGitでこれがすべての定数分岐によっていくらか改善されることを知っていますが、Mercurialでは分岐せず、新しいヘッドを作成します。 私が見る問題 ユーザーがプッシュしようとしています 古くなっている(ローカルリポジトリが古い場合、Mercurialではプッシュできないため)ローカルの変更をプルしてマージする ユーザーがもう一度プッシュしようとしたが、他の人をマージしているときにプッシュされたため、再び古くなっている もう一度プルしてマージ まだ時代遅れ 繰り返す 聞き覚えがある? これは非常に大きく人気のある水銀レポの実際の問題ですか?誰もがその日の最後のプッシュを行うとき、社内ではどうですか?
9 mercurial  dvcs 

4
ローカルで水銀を使い続けたい小さな変更をどのように管理しますか?
14年前のCVSリポジトリ(履歴はそのまま)をMercurialに移行することを検討しています。私はすべての技術変換ビットを下げたと思いますが、私は水銀で効果的に働くことについていくつかの質問があります。 個人開発者のcvsサンドボックス(自分のものも含む)でよく目にすることの1つは、メインラインにプッシュする準備ができていないローカルのコミットされていない変更です。これは悪いことだと私は理解しています。hgを使った私の実験のほとんどは、コミットされていない変更は悪いことだと示唆しています。それらとマージできないことで十分です。だから私が知りたいのは、日々のコーディングで水銀を使用する他の人々がそれをどのように扱うかです。リポジトリを更新するときにコードの不完全な変更にどのように対処しますか?(まだ)他の開発者と共有したくないローカルな変更にどのように対処しますか?

6
hginit-ばかげた#ifdefs
ジョエル・スポルスキーの水銀の紹介を読んでいたとき、それは私を襲った: 「そして今、彼らがしていることは次のとおりです。各新機能は大きな#ifdefブロックにあります。そのため、1つのトランクで機能できますが、デバッグされるまで新しいコードが表示されることはありません。正直なところ、それはばかげています。」 なぜこれはとにかくばかげているのですか?これは、他に何もないにしても、単純に処理するのが簡単ではないですか?それは派手なことではありませんが、トリックを行います-少なくともあなたがすでにSubversionと「結婚」している場合。 欠点は何ですか?私は議論を理解していません。


3
Mercurialの差分プログラムを選択する
私はFirefox開発に貢献することを試みることに決めました、そして彼らはソース管理にMercurialを使用します。Mercurialの使用に関するドキュメントでは、diffプログラムを選択し、コーディングを開始する前にそれを行うことをお勧めしました。それらにはたくさんのオプションがリストされており、そのうちの1つは、標準的なUnix / Linux diffプログラムのようです。 問題は、diffプログラムが問題になる可能性があることに気づかなかったし、間違ったものを選択して、どういうわけかそれを台無しにするまで、どのように選択するのかわからないという感じです。したがって、この不必要なハードルをスキップするために、diffプログラムを選択するときに何を見るべきか、そしてどのような場合に選択が重要であるか(そしてどのように)尋ねるかを尋ねたいと思います。
8 mercurial  diff 

1
外部ソースからのさまざまなブランチを単一のMercurialリポジトリに統合する
編集:バウンティがまもなく期限切れになるので、これをさらに明確にします。履歴を(異なるSCMからプルして)Mercurialの特定のブランチに直接インポートする方法はありますか? 私は現在、Perforceを使用している会社で働いており、Mercurialを使用した分散バージョン管理の方法を作っています。私はperfarceを使用してPerforceの履歴をインポートすることに成功しました(適切な名前です。見たり言うたびに笑ったりします)が、これは一度に1つのブランチでしか機能しません。 P4統合設定の仕組みは次のとおりです。 perforceで「クライアント」を作成します。これは、絶えず更新/チェックアウトする対象の説明の一種です。これは、一度に1つのブランチ(トランクまたはその他)しかアドレス指定できません。 これを実行したら、実行します hg clone p4://<server>/<client_name> .hg / hgrcに移動し、perforceパスの行を追加します。 perforce = p4://<server>/<client_name> Mercurialでコードを正常に処理し、hg pull perforce同期をとって、hg pushチェンジリストをエクスポートします。 私ができることは、ブランチごとにPERFORCEパスを設定し、すべてを同じリポジトリで機能させることです。現在、プッシュは問題ではありませんが、別のブランチから履歴をプルすると、デフォルトのブランチになります。 私は何かをすることができhg pull perforce-R5て、それをmercurialのR5ブランチに着陸させたいと思っています。マージの履歴がなくても、ブランチの履歴を保存できるほど十分に甘いでしょう。 Mercurialを統合できるCVCS用のプラグインは他にもありますが、サブバージョン1には同じ問題があります。 これを行うための簡単な方法はないと思いますが、1つのMercurialマシンでいくつかのフックとスクリプトを使用してプロセスを自動化できれば、それで十分です。 編集:物事を少し明確にするために: PERFORCE トランクはMercurialのデフォルトのブランチにマッピングされています PERFORCE R1ブランチはMercurialのリリース1ブランチにマップする必要があります(R2、R3などでも同じ) Mercurialにperforceからプルするように指示すると(つまりhg pull perforce、「perforce」はPerforceクライアントを指すパスの名前です)、PerforceトランクをMercurialのデフォルトにプルする必要があります。 Mercurialにperforce-R1からプルするように指示すると(つまりhg pull perforce-R1、「perforce-R1」はR1クライアントへのパスです)、Perforce R1ブランチをMercurialの「release-1」ブランチにプルする必要があります。これは私が質問している部分です。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.