Jak wykonać „usuwanie hg” Mercurial dla wszystkich brakujących plików?

224

Używam tego, aby usunąć plik z repozytorium:

hg remove <full file path> 

Jakiego polecenia możesz użyć do wykonania hg removena wszystkich plikach, które zostały usunięte lokalnie?

Przez usunięty lokalnie mam na myśli osoby, które pokazują się !kiedy hg status.

Aby dodać, możesz po prostu hg adddodać wszystkie nowe pliki (te z prefiksem ?).

Marcus Leon
źródło

Odpowiedzi:

364

Spowoduje to dodanie wszystkich nowych plików, które nie są ignorowane, i usunięcie wszystkich plików brakujących lokalnie

hg addremove

Każdy z nich usunie wszystkie lokalnie brakujące pliki (są to te same polecenia)

hg remove --after
hg remove -A
mfperzel
źródło
7
jest też hg zapomnieć, co jest równoważne z hg rm -Af
jk.
37
jk dla nazwy użytkownika jest groźne, czuję się jak za każdym razem czytam jeden z twoich komentarzy lub postów, które mówisz „tylko żartuję” na końcu :( to powiedziawszy, pomogło, na zdrowie!
Lester Peabody
6
jedno słowo ostrzeżenia ... nie denerwuj się, gdy zrzuci całą masę bzdur na ekran ... (tak jak ja)
Richard B
1
Łał! Dzięki! To bardzo pomogło! Łał! +1 :) hg rm -A
Cullub,
32

Jeśli masz zamiar zrobić addremove i zatwierdzić, możesz połączyć je z opcją „-A”, jak pokazano tutaj :

hg commit -A -m 'Commit with addremove'
tsenapatia
źródło
5

Pierwotne pytanie dotyczyło sposobu usuwania (tj. Zapominania) plików, które pojawiają się tak, jak "!"podczas ich używania hg st. Bezpośrednie podejście, które ma tę zaletę, że przejrzystość jest skorzystanie hg stz -nopcji:

hg -v forget $(hg st -nd)

(Oczywiście pliki zostaną zapomniane tylko przy następnym zatwierdzeniu .)

Flagi są dobrze udokumentowane gdzie indziej (np. Przez samą komendę hg), ale w skrócie:

  • -n oznacza „tylko nazwę pliku”
  • -d oznacza „wybierz pliki, które zostały usunięte”
szczyt
źródło
Czy potrafisz wyjaśnić każdą z tych flag?
Cullub,
1

Jeśli chcesz dodać i usunąć, ale nie jesteś gotowy, aby zatwierdzić resztę zmian, myślę, że nadal musisz je wymienić:

$ 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
Dan Ross
źródło