Как получить список всех неверсированных файлов из SVN? - PullRequest
78 голосов
/ 19 октября 2008

Иногда вы разрабатываете и решаете совершить коммит, забыв, что создали несколько файлов в своем проекте. Через несколько дней ваш собеседник получает вашу сборку из Subversion и жалуется, что некоторые файлы отсутствуют. Вы понимаете, ах дерьмо, я забыл добавить эти файлы!

Как я могу получить список файлов, которые не находятся под контролем версий от Subversion, так что я уверен, что я все добавил в репозиторий?

Ответы [ 5 ]

102 голосов
/ 19 октября 2008

Используйте команду svn status:

svn status | grep ^?

Файлы без версии отмечены знаком? в начале строки.

Если вы обнаружите, что у вас всегда есть какие-то конкретные файлы, которые не следует добавлять в репозиторий (например, сгенерированные двоичные файлы), вам следует установить свойство svn:ignore в содержащем каталоге, чтобы файлы не будут отображаться при использовании svn status.

43 голосов
/ 29 августа 2011

Если к некоторым файлам добавлено ignore к их статусу, они не будут отображаться в svn status. Вам понадобится:

svn status --no-ignore
15 голосов
/ 04 июля 2009

Если вы работаете в Windows, вы можете сделать что-то похожее на Greg Hewgill , используя PowerShell.

(svn stat) -match '^\?'

Это можно довольно легко расширить, чтобы найти все неверсионные и игнорируемые файлы и удалить их.

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

Надеюсь, это кому-нибудь пригодится!

11 голосов
/ 26 ноября 2012

Или из командной строки Windows:

svn stat | find "?"
1 голос
/ 25 сентября 2015

Вы можете использовать эту команду для вывода списка всех путей для не версионных файлов:

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

Первая часть выполнит svn status, а затем перенаправит вывод в AWK , который выполнит простой фильтр «первый символ должен быть«? », Затем будет напечатан второй параметр» который является путем к файлу ".

svn status всегда будет не печатать игнорируемые файлы. Вы можете добавить файл или путь, добавив этот путь, используя

svn propset svn:ignore "PATH OR PATERN"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...