"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"