Показывает переименования в статусе hg? - PullRequest
27 голосов
/ 21 апреля 2010

Я знаю, что Mercurial может отслеживать переименования файлов, но как мне сделать так, чтобы показывать меня переименовывает вместо добавления / удаления, когда я делаю hg status?Например, вместо:

A bin/extract-csv-column.pl
A bin/find-mirna-binding.pl
A bin/xls2csv-separate-sheets.pl
A lib/Text/CSV/Euclid.pm
R src/extract-csv-column.pl
R src/find-mirna-binding.pl
R src/modules/Text/CSV/Euclid.pm
R src/xls2csv-separate-sheets.pl

Я хочу указать, что четыре файла были перемещены.

Мне кажется, я где-то читал, что вывод такой, чтобы сохранить обратную совместимость с чем-либоили другое, но меня это не беспокоит.

Ответы [ 2 ]

33 голосов
/ 21 апреля 2010

Есть несколько способов сделать это.

Перед фиксацией вы можете использовать hg diff --git, чтобы показать, что было переименовано:

$ hg diff --git
diff --git a/theTest.txt b/aTest.txt
rename from theTest.txt
rename to aTest.txt

Обратите внимание, что это работает, только если вы использовали hg mv, hg rename или mv и hg addremove --similarity 100.

После фиксации вы все равно можете использовать hg diff, но вам нужно будет указать изменение, используя -r:

$ hg diff -r 0 -r 1 --git
diff --git a/test.txt b/theTest.txt
rename from test.txt
rename to theTest.txt

Для hg status и hg log используйте флаг командной строки -C, чтобы увидеть источник, из которого был скопирован файл.

$ hg status -C
A aTest.txt
  theTest.txt
R theTest.txt

Строка чуть ниже aTest.txt указывает источник, из которого он был скопирован (theTest.txt).

$ hg log -v -C
changeset:   1:4d7b42489d9f
tag:         tip
user:        jhurne
date:        Tue Apr 20 20:57:07 2010 -0400
files:       test.txt theTest.txt
copies:      theTest.txt (test.txt)
description:
Renamed test.txt

Вы можете увидеть файлы, которые были затронуты (test.txt и theTest.txt), и что "theTest.txt" был скопирован из test.txt.

14 голосов
/ 23 сентября 2011

Вы можете узнать, сколько файлов было переименовано с помощью hg summary. Если вы хотите увидеть реальные файлы, которые были переименованы, самый быстрый способ, который я нашел, это сделать:

hg st -a -C

Это выведет что-то вроде этого:

A <path\to\renamed\file>
  <path\copied\from>
A <path\to\added\file>
A <path\to\renamed\file>
  <path\copied\from>

Поскольку hg status считает переименование копией и удалением, ваши переименованные файлы будут содержать список скопированных файлов. Файлы, которые были добавлены, но не переименованы, не будут содержать список скопированных файлов.

...