"unadd" файл для svn перед фиксацией
Я был в середине выполнения рекурсивного svn add/commit, и была включена папка, которая не имела надлежащих свойств игнорирования. Сейчас у меня около 100 загруженных бинарных файлов, но я еще не сделал этого.
Каков самый простой способ "отменить" это, не удаляя все документы?
Ответы
Ответ 1
Используйте svn revert --recursive folder_name
Внимание!
svn revert
по своей сути опасен, поскольку его цель состоит в том, чтобы выбросить данные — а именно, ваши незафиксированные изменения. Как только вы вернетесь, Subversion не сможет вернуть эти незафиксированные изменения.
http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.revert.html
Ответ 2
svn rm --keep-local folder_name
Примечание. В svn 1.5.4 svn rm удаляет неверсированные файлы, даже если указан -keep-local. Подробнее см. http://svn.haxx.se/users/archive-2009-11/0058.shtml.
Ответ 3
Попробуйте svn revert filename
для каждого файла, который вам не нужен и еще не совершил. Или, альтернативно, svn revert -R folder
для проблемной папки, а затем повторите операцию с правильным игнорированием конфигурации.
Из документации:
you can undo any scheduling operations:
$ svn add mistake.txt whoops
A mistake.txt
A whoops
A whoops/oopsie.c
$ svn revert mistake.txt whoops
Reverted mistake.txt
Reverted whoops
Ответ 4
Для файлов - svn revert filename
Для папок - svn revert -R folder
Ответ 5
Полный процесс (пакет Unix svn):
Проверить файлы не в SVN:
> svn st -u folder
? folder
Добавить все (включая проигнорированные файлы):
> svn add folder
A folder
A folder/file1.txt
A folder/folder2
A folder/folder2/file2.txt
A folder/folderToIgnore
A folder/folderToIgnore/fileToIgnore1.txt
A fileToIgnore2.txt
Удалить флажок "Добавить" для всех * Игнорировать * файлы:
> cd folder
> svn revert --recursive folderToIgnore
Reverted 'folderToIgnore'
Reverted 'folderToIgnore/fileToIgnore1.txt'
> svn revert fileToIgnore2.txt
Reverted 'fileToIgnore2.txt'
Изменить svn игнорировать в папке
svn propedit svn:ignore .
Добавьте две сингл-строки с помощью всего лишь:
folderToIgnore
fileToIgnore1.txt
Проверьте, какие файлы будут загружаться и совершать:
> cd ..
> svn st -u
A folder
A folder/file1.txt
A folder/folder2
A folder/folder2/file2.txt
> svn ci -m "Commit message here"