Czasami programujesz i decydujesz się zatwierdzić, zapominając, że utworzyłeś kilka plików w swoim projekcie. Kilka dni później twój kumpel wyciąga twoją kompilację z Subversion i skarży się, że brakuje niektórych plików. Zdajesz sobie sprawę, ach, zapomniałem dodać te pliki!
Jak mogę uzyskać listę plików, które nie są pod kontrolą wersji od Subversion, więc jestem pewien, że dodałem wszystko do repozytorium?
źródło
svn st | grep ^? | awk '{print $2} | xargs svn add
to najpierw znajdzie niewersjonowane pliki, awk wydrukuje tylko drugi element w linii (tj. Ścieżkę pliku), a xargs uczyni tę ścieżkę argumentem svn Dodaj.svn st | grep ^? | awk '{print $2}' | xargs svn add
Jeśli niektóre pliki zostały
ignore
dodane do ich statusu, nie pojawią się wsvn status
. Będziesz potrzebował:źródło
Jeśli pracujesz w systemie Windows, możesz zrobić coś podobnego do odpowiedzi Grega Hewgilla za pomocą PowerShell.
Można to dość łatwo rozszerzyć, aby znaleźć wszystkie niewersjonowane i zignorowane pliki i je usunąć.
Mam nadzieję, że to komuś pomoże!
źródło
() -math
nazywa?Lub z wiersza poleceń systemu Windows:
źródło
Możesz użyć tego polecenia, aby wyświetlić listę wszystkich ścieżek dla plików bez wersji:
Pierwsza część wykona an
svn status
, a następnie przekieruje wyjście do AWK, który wykona prosty filtr „pierwszy znak powinien być '?'”, A następnie wypisze drugi parametr „który jest ścieżką do pliku”.svn status
zawsze nie drukuje ignorowanych plików. Możesz dodać plik lub ścieżkę, dodając tę ścieżkę za pomocąźródło
svn status
, a nie tylko pliki bez wersji. Uważam, że polecenie powinno polegaćsvn status | awk '/^\?/ {print $2}'
na ucieczce z znaku?
, ponieważ filtr jest wyrażeniem regularnym.