О, ради Пита! . ответы до сих пор были - в лучшем случае - вводит в заблуждение
ваш вопрос, это звучит, как вы пытаетесь что-то вроде этого:
svn update -r8
# ok, I can see the deleted file now
svn commit -m "I want r8 to be newest"
Кроме того, что не будет работать Там нет никаких модификаций. commit. Вы можете обновить до более старых версий, но вы не можете вносить туда изменения. Вы не можете изменить прошлое. Вы можете только совершить новую ревизию, отменив повреждение.
Хорошо, давайте предположим, что ваш репозиторий находится в svn: // repo. Здесь приведен упрощенный пример, в котором соединительная линия папки содержит два файла: «a» и «b». Назовем эту ревизию 8 (r8).
trunk # working copy of svn://repo/trunk
a
b
J.R. Хакер, проскальзывает и случайно удаляет б:
svn rm b
svn commit -m "oops"
Давайте назовем получившийся фиксации R9.
Так, в следующий раз при обновлении из хранилища,
svn update
trunk
a
б исчезает! Паника? Нет. Это система контроля версий. Все, что было проверено, может быть восстановлено. Здесь возможны два варианта:
Просто копия файл из старой ревизии, т.е. последний пересмотр, где она по-прежнему существует: 8.
svn cp svn://repo/trunk/[email protected] .
svn commit -m "restored b from revision 8"
Более общее решение заключается в использовании слияния. вы можете использовать эту технику, чтобы отменить больше, чем просто случайное удаление.
svn merge -r9:8 . .
svn commit -m "reverted the changes made in revision 8"
Путь, чтобы прочитать это слияние является:
Первая цифра, какие изменения должны быть сделаны, чтобы получить от r9 (обратно) к r8 папки хранилища (SVN: // репо/магистральный) связанный с текущим каталогом (первый «.»). Теперь выполните эти изменения в рабочей копии в текущем каталоге (второй «.»).
Там есть более удобный синтаксис, если вы просто возвращаясь одно изменение:
svn merge -c-8 . . #note the minus sign before the 8
Если вы не используете SVN из командной строки, тыкать вокруг инструмента немного, вы уверены, найти что-то. Например, TortoiseSVN имеет удобные «отменить изменения из этой версии» при открытии журнала из рабочей копии.
Я не совсем понимаю ваш вопрос, но перед тем, как вы попытаетесь сделать что-нибудь, сделайте быструю резервную копию каталога с локальной ревизией. – Elijah
извините, исправил предложение. теперь должен иметь больше смысла. –