2016-09-19 6 views
0

たとえば、891d791429ab,24797c841ee6の2つの変更セットIDを指定すると、より新しいチェンジセットを教えてくれるhgコマンドがあります。新しいものは「ヒントに近い」と定義されていますか?Hg:どのチェンジセットが新しいですか?

私は、リビジョン番号または日付を使用したくないです。

編集

これは私が直感的に '新しい' を定義する方法です。私は、hgがそのコンセプトの内部定義を持っている(おそらく間違っている)と仮定しました。

hg commits

IはDAGを横断することによって比較コミットのいずれかに到達する方法がない場合、それらのコミット順序を持つことができないと仮定し、そうBCの順序は未定義です。

マージコミットについては

、例えば、GH私は、水銀はを形成するためにいくつかの線形順序でGHを適用した場合、私は、おそらくGHは、Iにマージされた後に注文する必要があります。しかし、私はそれが何であるか分からない。それを新しいものと同じように扱う私の目的は確かに受け入れられます。

不明な点について私のお詫び申し上げます。

+0

最も近いチェンジで終わります。私はレイジー・バジャーがそれを理解したと思うので、グラフの中で最短距離を意味しますか?例えば。 'tip'がマージ結果であれば、両親はすべて同じ 'new'です。また、一方のチェンジセットが 'tip'の祖先であり、もう一方のチェンジセットが祖先でない場合、祖先は常に新しいでしょうか?例えば。 'A'→' 'C''-' 'tip''と' 'B'''D''の場合、' D'が 'A'、' B'、 '' C? –

+0

実際、問題の定義でいくつかのシナリオに取り組まなかったようです。私は編集で明確にしようとします。 – ForeverWintr

+0

さて、**あなたの質問は "祖先を誰であるかを特定する"と再定義できますか? –

答えて

2
    私は私が思う
  • が、それはかなり簡単に(書き込む必要が)延長
  • 高速かつ汚い方法で行うことができ、正確なタスクのために事前に定義されたコマンド(複数可)を思い出すことができない
  • から[alias]log -r $1::tip -T "。" `(長いドットの行 - より多くの距離)
+0

このコマンドは、 '$ 1'とtipの間にあるリビジョンごとに1つのドットを表示します。それでは、異なるリビジョンで生成されるドットの数を比較します。面白い。 – ForeverWintr

+0

@ForeverWintr - 良いOS(またはGOW in Win)のエイリアスは、より読みやすい結果のためにシェルエイリアスに変換することができます '$ HG log $ 1 :: tip -T" | wc -c'と出力*数値距離* –

+0

2つのリビジョンをお互いに比較できますか? 'log -r $ 1 :: $ 2 -T"。 "'。結果が得られれば、 '$ 1'は新しいもので、そうでなければ' $ 2'が新しいかチェンジセットは別のブランチにあります。 – ForeverWintr

1

どうすればhg id -r "(891d791429ab|24797c841ee6)-((891d791429ab:tip-24797c841ee6:tip)|(24797c841ee6:tip-891d791429ab:tip))"

revsetは((A:tip-B:tip)の一つ又は(B:tip-A:tip))が空になり(A|B)-((A:tip-B:tip)|(B:tip-A:tip))

に簡略化することができます。もう1つは、AまたはBのいずれか、さらにtip(加えて、ABの間の変更セット)のいずれかを含みます。

我々は組合A|Bから遠い-から先端チェンジが含まれています。このrevsetを引くとき、私たちは私が_newer_のあなたの定義を誤解に基づいて答えたかもしれない先端

+0

ブラケットに構文エラーがあります。この構文は新しいですか?私はubuntuでhg '3.7.3'を使っています。 – ForeverWintr

+0

Revsetの最初の(長い)フォームで、私は** farest ** changesetを得ました。 –

+1

@ForeverWintr私はこれをWindowsのtortoisehgでテストしました。編集した投稿ごとにrevset全体を引用符で囲むことはできますか? –

関連する問題