Удаление SVN до завершения фиксации - программирование

Удаление SVN до завершения фиксации

Если вы удалите каталог из рабочей копии SVN, но еще не зафиксировали его, неясно, как его вернуть. Google даже предлагает "удалить svn undo delete before commit" в качестве общего запроса при вводе "svn undo d", но результаты поиска бесполезны.

edit: Мне нужно решение, которое работает в subversion 1.4.4

4b9b3361

Ответ 1

svn revert deletedDirectory

Здесь документация для команды svn revert.


ИЗМЕНИТЬ

Если deletedDirectory был удален с помощью rmdir, а не svn rm, вам нужно будет сделать

svn update deletedDirectory

вместо.

Ответ 2

1) do

svn revert . --recursive

2) разобрать вывод для таких ошибок, как

"Failed to revert 'dir1/dir2' -- try updating instead."

3) вызовите svn up для каждого из каталогов ошибок:

svn up dir1/dir2

Ответ 3

Что для меня работало

svn revert --depth infinity deletedDir

Ответ 4

Сделайте (рекурсивную) операцию возврата с уровня выше удаленной директории.

Ответ 5

Чтобы сделать это в один лайнер, вы можете попробовать что-то вроде:

svn status | cut -d ' ' -f 8 | xargs svn revert

Ответ 6

Самое простое решение, которое я смог найти, - удалить родительский каталог из рабочей копии (с помощью rm -rf, not svn delete), а затем запустить svn update в grandparent. Например, если вы удалили a/b/c, rm -rf a/b, cd a, svn up. Это возвращает все. Конечно, это только хорошее решение, если у вас нет других незафиксированных изменений в родительском каталоге, который вы хотите сохранить.

Надеюсь, эта страница будет в верхней части результатов в следующий раз, когда я задам этот вопрос Google. Было бы даже лучше, если бы кто-то предложил более чистый метод, конечно.

Ответ 7

Вы можете удалить папку и обновить родительский каталог перед фиксацией:

rm -r some_dir

svn update some_dir_parent