Как вернуться к предыдущей фиксации SVN?

Предположим, что я на пересмотре 50. Но я хочу вернуться к ревизии 45 и вернуть ее в качестве стабильной версии.

Как мне сделать это самым простым способом?

  • Что делать, если я хочу сделать это с одним файлом?
  • Что делать, если я хочу сделать это со всем хранилищем?

Ответ 1

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

svn update -r45
Это приведет к восстановлению вашей рабочей копии в версии 45.

или:

svn merge -c -50, -49, -48, -47, -46
Это будет обновлять (путем обратного слияния) вашу рабочую копию, удаляя все изменения между 45 и 50. Теперь, если вы вносите изменения и совершаете, это будет похоже на то, что вы удалили 46-50 из репозитория и внесли ревизию HEAD (51?), чтобы быть r45 + ваши изменения.

Ответ 2

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

Ответ 3

Вы можете просто обновить версию до версии с помощью

svn up -r 45

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

svn merge -r HEAD:45 yourFile
svn ci yourFile -m "Reverting back to rev 45"

Ответ 4

Я думаю, что один простой способ должен быть следующим:

  • ревизия ревизии 45 во временный каталог
  • скопируйте один или все файлы в рабочий каталог
  • commit