Список всех версий файлов в Subversion?(Удалить файлы по имени) - PullRequest
6 голосов
/ 03 сентября 2010

Некоторому умному парню в офисе удалось передать целую кучу «резервных» файлов (они начинаются с ._) на наш сервер Subversion.

Желательно, чтобы я хотел удалить эти файлы с помощью некоторого базового скрипта bash вместо того, чтобы проходить через хранилище вручную.

Можно ли как-нибудь получить список всех версий файлов subversion в каталоге, чтобы я мог выполнить некоторые базовые операции удаления / svn?

редактирование:

'svn list' не является рекурсивным и, похоже, перечисляет каталоги, мне нужно такое поведение, как 'find'.

второе редактирование:

Хорошо, флаг -R может сделать 'svn list' рекурсивным ... но как мне удалить каталоги?

Ответы [ 3 ]

6 голосов
/ 03 сентября 2010
svn list -R

перечисляет все файлы и каталог рекурсивно

4 голосов
/ 03 сентября 2010

Если это только один коммит (или серия коммитов), используйте svn merge , чтобы отменить его.

Если пользователь делал это в течение нескольких коммитов и вы работаете в Linux:

Сначала убедитесь, что в списке правильно перечислены файлы, которые вы хотите удалить:

find . -name '._*'

Затем вызовите svn, чтобы удалить их:

find . -name '._*' -exec svn rm {} \;

Проверить статус SVN, зафиксировать, если хорошо.

Отказ от ответственности: я не проверял команды, поэтому будьте осторожны.

Я думаю, это файлы резервных копий Mac, которые он создает автоматически.

3 голосов
/ 04 марта 2012

как удалить каталоги?

Ключ в том, чтобы каталоги заканчивались косой чертой.

Затем можно использовать grep.

svn list -R my_svn_dir | grep -v '/$'
...