Створення списку файлів, які змінювались між версіями hg


118

Я хочу сформувати список файлів, які змінилися між двома редакціями в заданому каталозі в Mercurial.

Зокрема, мене не цікавить, що змінилося, але які файли змінилися в цьому каталозі.

Наприклад, якщо припустимо, що між thenта otherthen, змінилися лише 2 файли:

>hg hypothetical-command -r then:otherthen
foo.baz
bar.baz
>

Що таке гіпотетична команда? Я спробував "diff" і "log", але не можу зрозуміти, як переконати їх зробити це: або я отримую "патч" (diff), або отримую весь репо (журнал).

Відповіді:


166
hg status --rev x:y

де xі yбажані номери редагування (або назви тегів або гілок).

Якщо ви використовуєте термінал у Windows, додайте, hg status --rev x:y> your-file.txtщоб зберегти список у файл.


3
Щоб побачити зміни лише в поточному каталозі:hg status --rev x:y .
Користувач

14
Щоб побачити зміни в останній редакції: hg status --rev .^
kunigami

8
Щоб отримати лише список імен файлів (і жодного символу префікса, що вказує на тип зміни), додайте -n, тобтоhg status --rev x:y -n
Гепард

1
hg status --change .перераховані змінені файли в .- той же список , як , hg status --rev .^але більш прямо
Metaxis

14

статус - це те, що вам потрібно.

Але, залежно від того, що ви маєте на увазі під "між двома редакціями", ви також можете скористатися діапазоном " x :: y " (DAG - направлений ациклічний графік).

З огляду на паралельні набори змін,

1--2---4 \---3

hg status --rev 1:4 повертається (1,2,3,4), тобто будь-що між кінцевими точками, включаючи кінцеві точки, відповідно до місцевих числових оборотів . Це може (і, швидше за все, буде) повертати різні результати в інших сховищах, хоча вони пов'язані!

hg status --rev 1::4повернеться (1,2,4), тобто кінцеві точки та всі набори змін, які є нащадками '1' та предків '4'.

Останній випадок, x :: y, як правило, більш корисний у реальних програмах. Це те, що ви отримуєте через TortoiseHg \ Visual Diff.


> hg help revsets:

"x :: y" Діапазон DAG, що означає всі набори змін, які є нащадками x та предками y, включаючи x та y. Якщо перша кінцева точка залишилася осторонь, це еквівалентно "предкам (у)", якщо друга не залишилася, це рівнозначно "нащадкам (х)".


1
Можливо, вам потрібно чітко включити команду, щоб ваша відповідь не залежала від інших і більш нерозумних. Щось на кшталт "Так, статус - це те, що вам потрібно. Наприклад hg status --rev x::y".
PhoneixS
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.