Як зробити "hg видалити" Mercurial для всіх відсутніх файлів?


224

Я використовую це для видалення файлу з репо:

hg remove <full file path> 

Яку команду ви можете використовувати , щоб виконати команду hg removeна всіх файлів , які були видалені на місцевому рівні?

Під локальними видаленими, я маю на увазі тих, хто відображається, !коли ви це робите hg status.

Для додавань ви можете просто hg addдодати всі нові файли (ті, що мають префікс ?).

Відповіді:


364

Це додасть усі нові файли, які не ігноруються, та видалить усі локально відсутні файли

hg addremove

Будь-який із них видалить усі локально відсутні файли (Це одна і та ж команда)

hg remove --after
hg remove -A

7
також є hg забудь, який еквівалентний hg rm -Af
jk.

37
jk для імені користувача грізний, я відчуваю, що ввечері я читаю один із ваших коментарів або дописів, про які ви говорите "просто жартую" наприкінці :( як сказано, це допомогло, ура!
Lester Peabody

6
одне слово попередження ... не вигадуйте, коли воно скидає на екран цілу купу лайна ... (як я)
Річард Б

1
Оце Так! Дякую! Це дуже допомогло! Оце Так! +1 :) hg rm -A
Cullub

32

Якщо ви маєте намір зробити addremove та obaveza, його можна з'єднати з опцією '-A', як показано тут :

hg commit -A -m 'Commit with addremove'

5

В оригінальному запитанні було задано питання про те, як видалити (тобто забути) файли, які відображаються як "!"під час використання hg st. Прямим підходом, який має перевагу прозорості, є використання hg stз -nможливістю:

hg -v forget $(hg st -nd)

(Звичайно, файли будуть забуті лише під час наступного фіксації .)

Прапори добре зафіксовані в інших місцях (наприклад, командою hg), але коротко:

  • -n означає "лише ім'я файлу"
  • -d означає "вибрати файли, які були видалені"

Чи можете ви пояснити кожен із цих прапорів?
Cullub

1

Якщо ви хочете відремонтуватись і скористатися, але не готові здійснити решту змін, я думаю, вам все одно доведеться їх перерахувати:

$ hg st
M modified-file
A added-file
R removed-file-1
R removed-file-2

$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-*
abort: removed-file-*: No such file or directory

$ hg commit -m"remove removed-file-1 and removed-file-2" removed-file-1 removed-file-2
committed changeset 185:628800a7af84
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.