Ich möchte eine Liste der Dateien erstellen, die zwischen zwei Revisionen in einem bestimmten Verzeichnis in Mercurial geändert wurden.
Insbesondere interessiert mich nicht, was sich geändert hat, sondern welche Dateien sich in diesem Verzeichnis geändert haben.
Angenommen, zwischen then
und otherthen
haben sich nur 2 Dateien geändert:
>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>
Was ist der hypothetische Befehl? Ich habe Diff und Log ausprobiert, aber ich kann nicht sehen, wie ich sie davon überzeugen kann: Entweder bekomme ich den Patch (Diff) oder ich bekomme das gesamte Repo (Log).
quelle
hg status --rev x:y .
hg status --rev .^
-n
: dhhg status --rev x:y -n
hg status --change .
listet die geänderten Dateien in.
- gleiche Liste wie,hg status --rev .^
aber direkterStatus ist das, was Sie brauchen.
Abhängig davon, was Sie unter "zwischen zwei Revisionen" verstehen, können Sie auch den Bereich " x :: y " (DAG - Directed Acyclic Graph) verwenden.
Bei parallelen Änderungssätzen,
1--2---4 \---3
hg status --rev 1:4
würde zurückgeben (1,2,3,4), dh alles zwischen und einschließlich der Endpunkte, gemäß der lokalen, numerischen rev . Dies könnte (und wird höchstwahrscheinlich) andere Ergebnisse in anderen - wenn auch verwandten - Repositories zurückgeben!hg status --rev 1::4
würde (1,2,4) zurückgeben, dh die Endpunkte und alle Änderungssätze, die Nachkommen von '1' UND Vorfahren von '4' sind.Der letztere Fall, x :: y, ist normalerweise in realen Anwendungen nützlicher. Dies erhalten Sie über TortoiseHg \ Visual Diff.
> hg help revsets:
quelle
hg status --rev x::y
".