Как мне откатить все или часть коммита в svn? - PullRequest
12 голосов
/ 04 марта 2009

Как мне вернуть полностью или частично SVN-коммит, используя TortoiseSVN?

Ответы [ 4 ]

15 голосов
/ 04 марта 2009

Во-первых, вам нужно определить, что вы хотите вернуть обратно «все изменения» ревизии или просто один файл. TortoiseSVN имеет только подход «1 или все»; Это означает, что вы можете вернуть обратно весь набор регистрации или отдельные файлы: не частичные проверки.

Полная ревизия

Итак, если вы возвращаете назад конкретную ревизию (и вы хотите, чтобы все файлы в этом наборе изменений были изменены), вам нужно щелкнуть правой кнопкой мыши -> TortoiseSVN -> Показать журнал. Найдите ревизию / набор изменений, к которым вы хотите выполнить откат, щелкните правой кнопкой мыши на этой ревизии «Вернуть к этой ревизии».

Есть еще одна опция, которая может вас заинтересовать, а именно: «Отменить изменения из этой ревизии», которая выполнит слияние различий между этой ревизией и текущей версией и объединит только различия. Я нахожу это более привлекательным время от времени; поэтому я могу сохранить все изменения между наборами изменений.

Один файл

Другой вариант - вернуть один файл обратно. Вы бы снова сделали Правый клик -> TortoiseSVN -> Показать журнал; но на этот раз вы можете выбрать один файл.

TortoiseSVN не позволяет вам выбрать несколько файлов в наборе изменений, чтобы вернуться к ним. Это либо все, либо только 1.

Набор изменений чеков

Для всех остальных читателей, убедитесь, что в «checkins» включены только файлы, связанные с этим изменением. Это должно быть обычной практикой в ​​наши дни; но я все еще нахожу разработчиков «бросающими выстрел» в проверки в конце дня, объединяя все изменения за день в одну проверку.

Я сияю в этих разработчиках с зажмуриванием. -_ ^

5 голосов
/ 04 марта 2009

Если вы хотите отменить ранее сделанный коммит (ревизию):

С проводником:

  1. Щелкните правой кнопкой мыши файл / папку, которую вы хотите восстановить,
  2. TortoiseSVN-> показать журнал,
  3. щелкните правой кнопкой мыши по нежелательной ревизии,
  4. "отменить изменения из этой ревизии",
  5. за направления> OK.

Если вы хотите отменить внесенные локально изменения (без изменений)

С помощью проводника: щелкните правой кнопкой мыши файл (ы), TortoiseSVN-> Вернуть.

2 голосов
/ 07 мая 2009

Обратите внимание, что вы можете "отменить" только в том случае, если вы зарегистрировали новую ревизию, которая больше не содержит изменений, которые вы хотели отменить. Это описано в других ответах.

Вы можете не на самом деле отменить регистрацию (как в случае "этого никогда не было"), старое состояние все еще будет в истории хранилища.

Действительно удаление / удаление материала - это давний запрос функции:

http://subversion.tigris.org/issues/show_bug.cgi?id=516

2 голосов
/ 04 марта 2009

В дополнение к тому, что сказал Бартек, вы можете получить ревизию конкретного экземпляра в локальной рабочей копии и отправить ее обратно в голову.

...