Frage Wie bekomme ich eine Liste aller unversionierten Dateien von SVN?


Manchmal entwickelst du dich und du entscheidest, dich zu verpflichten. Vergiss, dass du ein paar Dateien in deinem Projekt erstellt hast. Dann, ein paar Tage später, bekommt dein Kumpel deinen Build von Subversion und beschwert sich, dass einige Dateien fehlen. Du erkennst, Mist, ich habe vergessen, diese Dateien hinzuzufügen!

Wie kann ich eine Liste der Dateien erhalten, die nicht unter Versionskontrolle von Subversion stehen, also bin ich mir sicher, dass ich alles dem Repository hinzugefügt habe?


75
2017-10-19 05:25


Ursprung


Antworten:


Benutze die svn status Befehl:

svn status | grep ^?

Dateien, die nicht versioniert sind, werden mit einem? am Anfang der Zeile.

Wenn Sie feststellen, dass Sie immer bestimmte Dateien haben, die nicht zum Repository hinzugefügt werden sollen (z. B. generierte Binärdateien), sollten Sie die Datei " svn:ignore Eigenschaft auf dem enthaltenden Verzeichnis, damit diese Dateien bei der Verwendung nicht angezeigt werden svn status.


97
2017-10-19 05:26



Wenn einige Dateien zu ihrem Status 'ignorieren' hinzugefügt wurden, werden sie nicht im 'svn-Status' angezeigt. Du brauchst:

svn status --no-ignore

41
2017-08-29 14:05



Wenn Sie unter Windows laufen, könnten Sie etwas ähnliches tun Greg HewgillAntwort mit PowerShell.

(svn stat) -match '^\?'

Dies könnte ziemlich einfach erweitert werden, um alle nicht versionierten und ignorierten Dateien zu finden und sie zu löschen.

(svn stat "--no-ignore") -match '^[I?]' -replace '^.\s+','' | rm

Hoffe das ist hilfreich für jemanden!


15
2017-07-04 12:42



Oder über die Windows-Befehlszeile:

svn stat | find "?"

10
2017-11-26 17:05



Sie können diesen Befehl verwenden, um alle Pfade für nicht versionierte Dateien aufzulisten:

svn status | awk '/^?/ {print $2}'

Der erste Teil wird ein tun svn statusund dann leitet es die Ausgabe an AWK was wird einfacher Filter tun "erstes Zeichen sollte sein?" Dann wird es den zweiten Parameter drucken "das ist der Dateipfad".

svn status wird immer nicht drucke ignorierte Dateien. Sie können eine Datei oder einen Pfad hinzufügen, indem Sie diesen Pfad mit verwenden

svn propset svn:ignore "PATH OR PATERN"

0
2017-09-25 11:00