Gibt es in mercurial einen Befehl, der alle Dateien auflistet, die derzeit der Quellcodeverwaltung unterliegen?
Ich kann dir /s
alle Dateien in meinem Ordner und meinen Unterordnern auflisten, habe aber keine Ahnung, welche zu meinem Repository hinzugefügt wurden. Ich habe eine Vielzahl von ausgeschlossenen Dateitypen und Ordnern und möchte überprüfen, ob keiner von ihnen hinzugefügt wurde, bevor ich sie in meiner .hgignore-Datei einrichte.
Antworten:
hg status --all
listet alle Dateien im Baum auf, wobei ein Buchstabe den Status angibt: M für geändert, C für sauber (im Besitz von hg) und I für ignoriert.Verwenden Sie für nur ignorierte Dateien
hg status -i
. Verwenden Sie nur Dateien, die beim nächsten Commit hinzugefügt werdenhg status -a
. Diese zeigen nur das, was Sie wissen müssen, und erfordern nicht das Scannen einer langen Dateiliste.quelle
hg st -A
ist die abgekürzte Version des oben genannten Befehls.hg status -c
Listet bei einem sauberen Arbeitszustand alle nachverfolgten Dateien und nur nachverfolgte Dateien auf. Mit anderen Änderungenhg status -carmd
wird der Trick tun. Hinzufügen-n
, um das Statusflag auszuschließen.Sie können den
hg locate
Befehl auch auschecken . Ich benutze es zusammen mit der-I
Option, wenn ich die Dateien auf ein bestimmtes Verzeichnis beschränken möchte.So listen Sie alle Dateien in Ihrem Repository auf:
Aus dem Repository-Verzeichnis ("root"):
Der an übergebene Pfad
-I
muss sich je nach Verzeichnis ändern, in dem Sie den Befehl ausführen. Wenn Sie den Befehldir
im obigen Beispiel aus dem Verzeichnis ausführen , müssen Sie Ihr Argument ändern, um Folgendes zu finden:Die Liste der Ausgabedateien bleibt unverändert und zeigt den vollständigen Pfad jeder Datei im Repository an.
Versuchen Sie es
hg help -v locate
für weitere Informationen.quelle
hg loc
ist die abgekürzte Version des oben genannten Befehls.hg locate
, können Sie das aktuelle Verzeichnis automatisch abrufen mit :hg locate -I `pwd`
.hg locate
.hg status -i
listet nur Dateien auf, die ignoriert werden.hg status -a
listet nur diejenigen auf, die durch ein Commit hinzugefügt werden. Beihg locate
besteht ein erhebliches Risiko von Benutzerfehlern beim Abgleichen der angezeigten Liste mit der erwarteten Liste. Washg locate
erstaunlich nützlich ist, ist die Suche in bestimmten Revisionen nach bestimmten Dateinamen. In ähnlicher Weisehg grep
wird auch der gesamte Dateiinhalt über alle Revisionen durchsucht.hg manifest
listet nur die Dateien im Repository auf, währendhg status --all
alle Dateien in der Repository-Struktur aufgelistet werden und eine Markierung enthalten ist, für die verfolgt wird und für welche nicht.quelle
Nur ignorierte oder hinzugefügte Dateien auflisten
Um nur die ignorierten Dateien aufzulisten, gehen Sie wie folgt vor :
hg status -i
.Führen Sie für gerade hinzugefügte Dateien Folgendes aus
hg status -a
.Wenn Sie nicht gerne tippen, können Sie diese auf
hg sta -i
und kürzenhg sta -a
.Diese beiden Verwendungen von
status
sind einfacher alslocate
und geben Ihnen die spezifischen Dateizustände, um die Sie sich Sorgen machen, sodass sie wesentlich weniger fehleranfällig sind.Mehr über
hg status
Um alle Dateien in einem Mercurial Repo aufzulisten, gehen Sie wie folgt vor :
hg status --all
.Die Dateien erhalten ein Präfix, wenn sie aufgelistet werden:
Wenn Sie nur die Dateien in einem Ordner auflisten möchten , können Sie einen Pfad angeben:
hg st --all MyFolder
- Alle Dateien in MyFolderhg sta -i MyFolder
- Nur ignorierte Dateien in MyFolder.Neben den Flags
-i
"Ignoriert" und-a
"Hinzugefügt" stehen weitere Flags zur Verfügung, um nur die Dateien mit einem bestimmten Status aufzulisten.Bekommen
help
Lesen Sie hier die andere sehr nützliche Antwort, um eine umfassende Erläuterung des
status
Befehls zu erhalten. Es hat Abstimmungen, weil der Autor versucht hat zu zeigen, dass Sie all das entdecken können, indem Sie Mercurial nach demstatus
Befehl wie folgt fragen :Sie können Mercurial bitten, Ihnen einen der folgenden Befehle mitzuteilen. Wenn Sie eine Liste der Mercurial-Befehle wünschen, geben Sie Folgendes ein
hg help
.quelle
quelle
--help
//?
/man
und andere Dokumentationen zu verwenden, weil es schneller ist, nach dem Stapelüberlauf zu fragen, als zu lesen? Ich weigere mich, meine Antwort zu entfernen :)status
, da einer derhg
Befehle dies tatsächlich an erster Stelle tut. Ich benutze Mercurial jeden Tag und wusste nicht, dass man aufgefordert werden kann, ignorierte Dateien anzuzeigen.--all
) ist nicht einmal auf dem Bildschirm (Sie müssen scrollen, um es zu sehen). und nirgends geben Sie tatsächlich das eigentliche Wort, um das Ziel zu erreichen. Insgesamt nicht sehr hilfreich. Zum Vergleich gibt Benjohn zuerst den gewünschten Befehl und bietet dann eine Erklärung an.