問題タブ [mercurial-queue]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mercurial - ローカルの変更を管理するための Mercurial の mq の使用
サイト固有の変更を加えたローカル mercurial リポジトリがあります。私がやりたいことは、いくつかのファイルをコミット不可に設定してhg commit
、引数なしで実行したときに自動的にコミットされないようにすることです。
現在、これを達成するためにガードを使用して複雑なことを行っておりmq
、ガードをプッシュ、ポップ、および選択して、変更 (mq パッチにチェックインされている) がコミットされないようにしています。
これを行う簡単な方法はありますか?mq
サイト固有の変更を含まない変更をコミットするたびに、すべてのコマンドのヘルプを読むのにうんざりしています。
git - hg mqに相当するgit?
Git に慣れるために、Mercurial と一緒に Git を使い始めたところです。
Mercurial の mq エクステンションを広範囲に使用してローカル パッチを管理しており、Git に相当するものを探しています。
Git ブランチを使用する必要がありますか? または、パッチを簡単に適用および削除できるローカル パッチを管理するためのより良い方法はありますか?
ありがとう、
mercurial - Mercurialキューをリポジトリの内外で交換する方法
「Simulator」と呼ばれるプラットフォームニュートラルなMercurialコードリポジトリがあります
ビルド前に特定のプラットフォームの最適化を対象とするパッチを適用したい。
ガイドによると、ガード付きのパッチを使用することでこれを実現できます。
- Windows Experimental.patch + windows
- Unix Experimental.patch + unix
- Mac Experimental.patch + mac
ただし、パッチキューにはwindows-memory-optimization.patch + windows、unix-memory-optimization.patch + unix、windows-io-experimental-bug-fix.patch + windows、などなど。シリーズファイルでグループとして整理しましたが、ファイルが大きくなり、qseries/qappliedを使用すると管理できなくなります。
代わりに、Windows、UNIX、Mac用のキューが必要です。
パッチを次のように整理できるようにします。
- Windowsパッチスタック:memory-opt.patch、io-opt.patchなど
- Unixパッチスタック:disk.patch、graphics.patchなど
- Macパッチスタック:io-fix.patch、io-opt.patch、experimental.patchなど
次に、シミュレータリポジトリの内外で各プラットフォームのパッチスタックを交換します。これにより、Windowsパッチスタックで作業し、さまざまなサブシステム最適化パッチをポップ/プッシュして、UNIXまたはMacパッチスタックとは独立して作業できるようになります。
各プラットフォームに固有の3つの異なるリポジトリを作成し、パッチスタックをそのように維持する以外は、それができるようには見えません。
.hg / patchsディレクトリをリポジトリに手動でコピーしたり、リポジトリからコピーしたりする以外に、パッチスタックの「交換」を実行する方法はありますか?
mercurial - Mercurial:「コミットアクション」の変更を元に戻す
ファイルに変更を加えたとしましょうhg status
。変更されたものとして表示します。
今、私はコミットしたいと思います。そうする前に、誤っhg remove
てファイルを作成してしまいました。Mercurialは次のコミットでファイルを削除し、削除hg revert
から保持しますが、変更は失われます。
パッチをエクスポートしてからMQの上にインポートすることは、ファイルを「変更された」状態に戻す唯一のオプションですか?
mercurial - Mercurial: 最後の n リビジョンを MQ にエクスポートする
最後の n コミットを新しい mq キューにエクスポートし、実際のリポジトリからコミットを削除する簡単な方法はありますか?
新しい機能の開発を始めることがよくありますが、後で自分が何か間違ったことをしたことに気付き、パッチを折りたたむために MQ を使用したいと思いました。
私は現在やっています:
- 最後の n 個のコミットを単一のパッチとしてエクスポート
- 最後の n 個のコミットを取り除く
- 新しい mq を作成する
- すべてのパッチを逆順にインポートする
mercurial - Mercurial Queue を使用して作業を複数のパッチに分割するにはどうすればよいですか?
しばらくコードに夢中になっていて、途中でパッチ シリーズを作成するのを忘れた場合、パッチ シリーズをさかのぼって作成するにはどうすればよいですか? これまでのところ、頭に浮かぶ唯一のことは次のとおりです。
この非常に面倒なアプローチは危険でもあります。-k
onを忘れるかもしれませんqdelete
。その時点で額をレンガの壁に数分間ぶつけたり、qrecord 操作中に含める量が多すぎたり少なすぎたりする可能性があります。
より良い方法はありますか?
(私が本当にhg qpop
望んでいるのは、分割したいパッチの直前に を実行し、現在存在しないコマンドを使用してhg qunrecord
、パッチから作業ディレクトリに変更を対話的に吸い込むことができるようにすることです。満足したら、変更により、hg qnew -f
新しいパッチが古いパッチの前に押し出される可能性があります。)
mercurial - Mercurial MQ パッチからファイルを削除する
Mercurial に大きな MQ パッチを適用しました。何が起こったのかというと、qrefresh を実行して、含めたくないファイルをパッチに含めました。手動で編集せずに、これらのファイルへの変更をパッチから削除する方法はありますか? この場合、MQ を使用せずに作業していた場合は、hg revert を実行するだけで済みます。
configuration - 「hg qpush」の代わりに誤って「hg push」を回避するにはどうすればよいですか?
MQ 拡張で Mercurial を使用している場合:
hg push
作業ディレクトリ ( ) にパッチを適用する代わりに、誤って中央リポジトリ ( ) に変更を送信したのはこれが 2 回目ですhg qpush
。
これは非常に単純なエラーであり、非常に深刻な結果をもたらすため、これは非常に残念だと思います (最後のコミットを「元に戻す」新しいコミットを生成するために、送信された変更ごとにahg backout
と余分な操作を行う必要が最小限に抑えられます)。hg push
中央リポジトリですが、歴史は複雑で不快になります。
私の目標は、誤って実行しにくくするために、自分の環境でエイリアスまたは何かを構成することhg push
です。
何か提案はありますか?私は次のようなことを考えていました:
これは完全に主観的な質問であるため、これはコミュニティ ウィキとして扱われます。
ありがとう!
mercurial - Mercurial Queues:パッチの組み合わせ
私はMercurialとMercurialのキューで遊んでいましたが、今ではかなり妥当な動作バージョンがあります。ただし、パッチを送信する前に、そのspagettiの履歴を取得して、半重複して繰り返されるdo-undo-redo-slightly-differentlyの混乱ではなく、個別の論理的なステップにマージしたいと思います。パッチの数を減らすため。
それ、どうやったら出来るの?
version-control - Mercurial MQ 拡張機能でのコミット メッセージの更新
hg qnew
andを使用hg qrefresh
して、リポジトリに適用するパッチを作成および更新した後、作成したときに書いたコミット メッセージがhg qnew
あまり良くなく、trac からのチケット番号を参照していませんでした。その中で、私のコミットが対処するいくつかの問題について。
のようなことをするにはどうすればよいですかhg qrewritemycommitmessage
。ウェブサイトのドキュメントを調べたところ、空白になりました。