私はMercurialを初めて使用していますが、何とか評価プロセスにまだ入っていますので、これらの4つのコンセプトは私にとっては紛らわしいものです。 Gitのステージング/インデックスコンセプトと同等か、Gitのステージングより優れているものもあります。どのようにhg graft
、hg record
、hg qrecord
とhg shelve
4つのコマンド(これはGraft vs. Transplantで説明されており、hg transplant
、しかし、すでに)相互に比較して、どうやっキューの概念とdirstate?どちらのユースケースが選択されていますか?私はそれぞれのヘルプページがあることを知っていますが、一般的にVCSが私にとって新しいトピックであるため、それぞれが何をしているのか把握するのは難しいです。Mercurial:移植片対レコード対qrecord vs. shelve対移植対対流対待ち行列
答えて
Mercurialの設計にはステージング領域という概念は含まれていません。つまり、ローカルの変更とコミットの中間の状態はありません。ここで
はあなたが言及した概念のそれぞれの概要は次のとおりです。
hg graft
はgit cherry-pick
のと同じです。あるブランチから別のブランチにコミットをコピーします。この機能の典型的な使用例は、あるリリースブランチから別のリリースブランチにバグ修正をコピーすることです。このコマンドは、古い(そして今は廃止された)hg transplant
拡張子を置き換えます。
hg record
およびhg qrecord
は、git add --patch
と同様です。それらは、対話的にコミットのためにハンクを選択することを可能にします。したがって、1つのファイルのいくつかの異なる領域を変更した場合は、実際にコミットしたい領域(つまり、ハンク)を選択し、ローカルの変更として残したい領域を選択できます。
qrecord
は、mq
が有効な場合にのみ利用できます。それは標準コミットではなくmq
パッチにコミットします。
hg shelve
は、git stash
と同様です。これにより、一時的にファイル(またはファイルのハンク)のローカル変更を脇に置くことができます。これらの変更は、準備ができたらunshelved
になります。
dirstate
は、Mercurialソースコードの内部クラスです。ユーザーには公開されません。
Mercurial Queues
(mq
としても知られています)はおそらく、Mercurialのステージング領域に最も近いでしょう。以下はMercurial wikiの説明です:
変更はMercurialにコミットされるパッチとして維持されます。 コミットを削除または並べ替えることができ、作業ディレクトリの変更に基づいて、基礎となるパッチを に更新することができます。パッチ ディレクトリもリビジョン管理下に置くことができるので、パッチに加えられた変更の履歴を個別に にすることができます。
mq
は、ローカルでテストしているがパブリックな場所にプッシュしていないコミット/リワークによく使用されます。また、サードパーティ製のコードを変更するために、それを使用する人もいます。
- 1. RailwayJS対Geddy対Express vs Socket.IO
- 2. 対pymssql対pyodbc対adodbapi対...
- 3. CGL対AGL対OpenGL対NSOpenGL対CoreAnimation(CALayer)
- 4. ID対UniqueID対ClientID対UniqueClientID対StaticClientID?
- 5. control.BeginInvoke()対ディスパッチャー対SynchronizationContext Vs .. - 信頼性
- 6. EF ICollection対リストVs IEnumerable対IQueryable
- 7. Stackpanel:高さ対ActualHeight対ExtentHeight対ViewportHeight対DesiredSize対RenderSize
- 8. gruntjs対yeoman対ガード
- 9. クリスタルスペース対イルリヒト対.....?
- 10. 流星ランダムパッケージ対randomSeed
- 11. apc_define_constants対hidef対定義
- 12. 移行のt.references対モデルのbelongs_to?
- 13. PHP mySQL 1対多対多対多
- 14. ビルドバイナリソケット.NETサーバー:カスタム対SignalR対XSockets対WebSocket4Net?
- 15. Django-nonrel対Django-mongodb対Mongokit対pymongoネイティブ
- 16. IS_NUMERIC()対is_float()対is_int()
- 17. SendGrid対ActionMailer対メールサーバ
- 18. red5対wowza対FMS
- 19. OrderedDict対defaultdict対dict
- 20. array_walk対array_map対foreach
- 21. Icesfaces対Myfaces対Primefaces
- 22. attachEvent対addEventListener対none
- 23. メタフォン対soundex対NYSIIS
- 24. migrator.net対fluentmigrator対migsharp
- 25. アクカ殺し対ストップ対ポイズンピル?
- 26. Eclipse対VS IDEユニット
- 27. Rubyで移植可能な絶対パスを構築するには?
- 28. ドーザ片道マッピング絶対値
- 29. は対称行列の非対角要素で最大の絶対値を
- 30. CRC16チェックサム:HCS08対Kermit対XMODEM
移植は概念ではなく、コンセプトよりもはるかに遠くに記録する –
**「混乱リスト」に** shelve **を追加することもできます –
ありがとう私は質問を "コマンド"と "概念"を区別するように更新し、さらに2つをリストに追加しました。 – Iodnas