Wie mache ich Mercurials 'hg remove' für alle fehlenden Dateien?


224

Ich benutze dies, um eine Datei aus dem Repo zu entfernen:

hg remove <full file path> 

Welchen Befehl können Sie hg removefür alle lokal gelöschten Dateien ausführen?

Mit lokal gelöscht meine ich diejenigen, die mit einem angezeigt werden, !wenn Sie dies tun hg status.

Zum hg addHinzufügen können Sie einfach alle neuen Dateien hinzufügen (die mit dem Präfix ?).

Antworten:


364

Dadurch werden alle neuen Dateien hinzugefügt, die nicht ignoriert werden, und alle lokal fehlenden Dateien entfernt

hg addremove

In beiden Fällen werden alle lokal fehlenden Dateien entfernt (es handelt sich um denselben Befehl).

hg remove --after
hg remove -A

7
es gibt auch hg vergessen, was hg rm -Af
jk entspricht.

37
Das jk für einen Benutzernamen ist bedrohlich, ich fühle mich wie immer, wenn ich einen Ihrer Kommentare oder Beiträge lese, die Sie am Ende als "nur ein Scherz" bezeichnen :( Davon abgesehen hat dies geholfen, Prost!
Lester Peabody

6
ein Wort der Warnung ... nicht ausflippen, wenn es eine ganze Menge Mist auf den Bildschirm wirft ... (wie ich)
Richard B

1
Beeindruckend! Vielen Dank! Das hat sehr geholfen! Beeindruckend! +1 :) hg rm -A
Cullub

32

Wenn Sie addremove und commit festlegen möchten, können Sie die Option '-A' wie hier gezeigt hinzufügen :

hg commit -A -m 'Commit with addremove'

5

In der ursprünglichen Frage wurde gefragt, wie Dateien entfernt (dh vergessen) werden sollen, die "!"bei der Verwendung angezeigt werden hg st. Ein direkter Ansatz, der den Vorteil der Transparenz hat, ist die Verwendung hg stmit der -nOption:

hg -v forget $(hg st -nd)

(Natürlich werden die Dateien erst beim nächsten Commit vergessen .)

Die Flags sind an anderer Stelle gut dokumentiert (z. B. durch den Befehl hg selbst), aber in Kürze:

  • -n bedeutet "nur Dateiname"
  • -d bedeutet "Dateien auswählen, die gelöscht wurden"

Können Sie jede dieser Flaggen erklären?
Cullub

1

Wenn Sie entfernen und festschreiben möchten, aber nicht bereit sind, den Rest Ihrer Änderungen festzuschreiben, müssen Sie sie meiner Meinung nach noch aufzählen:

$ 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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.