Черепаха СВН: Возврат - PullRequest
       20

Черепаха СВН: Возврат

2 голосов
/ 07 октября 2011

Я только что вернулся на сервер с 511 до 510;однако, несмотря на то, что сервер явно работает с 510, 511 все еще где-то и Tortoise SVN рассматривает 511 как головную версию, таким образом думая, что нечего коммитить.Что я могу сделать?

Ответы [ 5 ]

7 голосов
/ 07 октября 2011

Мое чтение вашего вопроса заключается в том, что вы хотите уничтожить версию 511 и выполнить откат до 510. Однако, как намекают другие, Subversion никогда не забывает - нет способа стереть ревизию. Но вы можете добиться того же эффекта довольно легко, и я думаю, что простая картина может четко проиллюстрировать это.

Вот пример графика ревизии, где вы начинаете с ревизии 105 в качестве заголовка. Цель здесь состоит в том, чтобы сбросить не только 105, но и 104 (показывая, что вы можете применить эту технику не только к предпоследней голове), что делает 103 новой головой:

  1. Начните с чистой, обновленной рабочей копии в ревизии заголовка (105 в этом примере):
  2. Используйте для возврата к ревизии , чтобы выполнить откат к ревизии процентов (в данном случае 103).
  3. Используйте commit , чтобы зарегистрировать вашу теперь измененную рабочую копию и сделать ее новой головкой (в данном случае 106).

Теперь вы эффективно откатились до 103, продублировав его как 106. (Или с другой точки зрения вы могли бы сказать, что 103 перевоплотился в 106: -).

how to erase a revision

0 голосов
/ 07 октября 2011

Что вы хотите сделать?

Отмена отменяет локальные изменения (в рабочей копии): http://svnbook.red -bean.com / ru / 1.1 / re25.html

Если вы хотите отменить изменения, уже внесенные в репозиторий, вы должны выполнить обратное слияние.В вашем конкретном случае вы должны сделать:.basicmerging.html

0 голосов
/ 07 октября 2011

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

Итак, создайте новый WC (в вашем случае это будет 510), и объедините с одним из изменений слияния GUI (или просто скопируйте файлы)из вашего текущего WC в новый и зафиксируйте изменения в новом WC (все, как вы делали, когда зафиксировали rev. 511), затем переключитесь на работу с новым WC и удалите старый.

0 голосов
/ 07 октября 2011

Обновление до определенной ревизии - это редко то, что вы хотите сделать. Вместо этого вы хотите выбрать набор ревизий в диалоговом окне журнала и вернуть эти ревизии (в вашем случае ревизия 511). Используйте чистую рабочую копию для этого, чтобы избежать путаницы. Черепаха SVN теперь реверс-сливает изменения в вашу рабочую копию. До этого момента данные на сервере все еще остаются нетронутыми. Теперь вам нужно зафиксировать эти изменения на сервере. Появится новая ревизия (в данном случае 512). Хорошей практикой является не изменять какие-либо файлы и выбирать правильное сообщение в журнале, например «отмененные изменения из версии 511».

Subversion (и никакой системы управления версиями, о которой я знаю) не позволяет удалять ревизии, так что это путь.

0 голосов
/ 07 октября 2011
  • Невозможно вернуть сервер .Вы работаете (всегда, за некоторыми исключениями) с WorkingCopy , изменения в котором высвобождаются с фиксацией в Repo
  • Revert (svn help revert) отменяют ваши локальные изменения и производят "нетронутый WC" и ничего не делать с репо
  • Обновление WC до любой предыдущей ревизии не меняет историю хранилища - история неизменна

Переосмыслите и переформулируйте свою задачу и проблемы.Вы хотите "отменить последнюю подтвержденную ревизию"?

...