Как удалить файл "-" из SVN? - PullRequest
5 голосов
/ 28 мая 2010

Случайно я создал файл "-" (просто минус) в каталоге и зафиксировал его. Я должен удалить его, потому что это вызывает ошибку на других машинах: svn: Невозможно преобразовать строку из UTF-8 в собственную кодировку: svn:? \ 226? \ 128? \ 147

Я могу удалить его из локального каталога, используя "rm -i *" или с помощью python "os.remove ('\ xe2 \ x80 \ x93')", но эти методы не работают с "svn rm"

Как удалить такой файл из репозитория SVN?

Ответы [ 4 ]

8 голосов
/ 28 мая 2010

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

Попробуйте что-то вроде svn rm -- -.

То же самое, если вы хотите удалить каталог из файловой системы: rm -r -- -.

5 голосов
/ 28 мая 2010

Вы можете попробовать svn rm ./-

На самом деле это может быть и минус, но похожий персонаж.

2 голосов
/ 28 мая 2010

попробуй svn rm -- -

-- означает «остановить чтение параметров».

1 голос
/ 28 мая 2010

В некоторых случаях (например, в консоли) вы не сможете скопировать / вставить нечетный символ. В этой ситуации вы можете использовать подстановку файлов. Рекомендуется сделать ls перед rm, чтобы убедиться, что вы не включаете в удаление то, что хотите сохранить.

Любое односимвольное имя файла:

ls -l ?
rm ?

или любое односимвольное имя файла, которое не является буквенно-цифровым символом или дефисом:

ls -l [^a-zA-Z0-9-]
rm [^a-zA-Z0-9-]

Другая версия (с учетом локали) этого будет:

ls -l [^[:alnum:]-]
rm [^[:alnum:]-]

Вы можете комбинировать другие списки символов и классов в дополнение к более глобализирующим и определенным символам.

Удалите любой файл с трехсимвольным именем, который не начинается с «m», «s» или «y», имеет любой второй символ и заканчивается «1» или «9»:

rm [^msy]?[19]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...