Manchmal entwickeln Sie sich und entscheiden sich für ein Commit, wobei Sie vergessen, dass Sie einige Dateien in Ihrem Projekt erstellt haben. Dann, ein paar Tage später, bekommt Ihr Kumpel Ihren Build aus Subversion und beschwert sich, dass einige Dateien fehlen. Sie erkennen, ah Mist, ich habe vergessen, diese Dateien hinzuzufügen!
Wie kann ich von Subversion eine Liste der Dateien erhalten, die nicht der Versionskontrolle unterliegen, damit ich sicher bin, dass ich alles zum Repository hinzugefügt habe?
quelle
svn st | grep ^? | awk '{print $2} | xargs svn add
Dies findet zuerst nicht versionierte Dateien, awk druckt nur das zweite Element in der Zeile (dh den Dateipfad) und xargs macht diesen Pfad zu einem Argument von svn hinzufügen.svn st | grep ^? | awk '{print $2}' | xargs svn add
Wenn einige Dateien
ignore
zu ihrem Status hinzugefügt wurden, werden sie nicht in angezeigtsvn status
. Du brauchst:quelle
Wenn Sie unter Windows arbeiten, können Sie mit PowerShell etwas Ähnliches wie Greg Hewgills Antwort tun .
Dies kann ziemlich einfach erweitert werden, um alle nicht versionierten und ignorierten Dateien zu finden und zu löschen.
Hoffe das ist hilfreich für jemanden!
quelle
() -math
?Oder über die Windows-Befehlszeile:
quelle
Mit diesem Befehl können Sie alle Pfade für nicht versionierte Dateien auflisten:
Der erste Teil führt eine aus
svn status
und leitet dann die Ausgabe an AWK um, wodurch ein einfacher Filter "Das erste Zeichen sollte '?'" Ausgeführt wird. Anschließend wird der zweite Parameter "Der Dateipfad" gedruckt.svn status
ignoriert immer keine ignorierten Dateien. Sie können eine Datei oder einen Pfad hinzufügen, indem Sie diesen Pfad mit hinzufügenquelle
svn status
, nicht nur nicht versionierte Dateien. Ich glaube, der Befehl sollte sein, demsvn status | awk '/^\?/ {print $2}'
zu entkommen?
, da der Filter ein regulärer Ausdruck ist.