2010-05-21 3 views
6

У меня есть несколько файлов, которые я хочу добавить в subversion. Вместо того, чтобы мое время и при добавлении каждого отдельного один, я решил быть умным задницу и сделать:Subversion 'unadd'?

svn add * 

.. который был ошибкой. Есть ли способ, которым я могу «унижать» все? Там около 7 файлов, которые я хотел добавить ... теперь выделены дополнительные 500+ автоматически сгенерированных файлов, которые я не хотел добавлять!

Я еще не сказал об этом, поэтому надеюсь, что есть способ отменить это!

ответ

12

У вас есть какие-либо другие изменения, чем файлы добавлены? (svn status расскажет вам - измененные файлы будут отображаться как M, добавлены файлы A - и svn diff покажут вам детали любых изменений). Если нет, то вы можете просто сделать:

svn revert * 

Но если вы сделать другие, чем добавляет изменения, , что отменят их!

(Возможно, стоит поэкспериментировать на несколько файлов первых :-)

+0

Я думаю, вы имеете в виду статус svn, а не svn diff. – Aif

+0

@Aif: Я хотел упомянуть обоим, но каким-то образом удалось объединить объяснения в один. Спасибо, что указали! – psmears

0

Вы можете использовать
svn revert -depth = infinity.

Это также отменяет все локальные изменения в ваших файлах, поэтому используйте его внимательно.

0

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

svn revert 
8
svn st |grep ^A |cut -c 9- |xargs svn revert 

сначала проверить, какие файлы будут восстановлены без изменения ничего исключить последнюю команду:

svn st |grep ^A |cut -c 9- 

команды Трубопроводом мощный:

  • svn st будет указывать все
  • grep ^A даст только строки, начинающиеся с буквы A для добавления.
  • cut -c 9- получит имя файла из этих строк.
  • xargs svn revert будет работать svn revert для каждого имени файла.

Если вы работаете в Windows, вам придется загрузить пакет UnxUtils или аналогичный, но это того стоит, так как он вносит множество мощных команд оболочки.

+0

-1 для решения 'install Unix' – jwg

1

До тех пор, как вы только добавили новые вещи, просто сделать

svn revert * 

Чтобы обезопасить себя, сделать локальную копию ваших файлов в первую очередь.

8

Вы можете использовать

svn rm --keep-local * 

Все файлы будут сохранены как есть, без Revert.И unadd для шага фиксации.

+0

Не совершишь ли это после того, как это означает, что файл удален из удаленного репозитория? – jwg

+0

Это удалило все мои файлы при выполнении этой команды (не зафиксировано) –

Смежные вопросы