Как я могу восстановить «обновленные» рабочие каталоги Subversion?

StackOverflow https://stackoverflow.com/questions/135543

  •  02-07-2019
  •  | 
  •  

Вопрос

Возможно, это звучит глупо, но иногда я сталкиваюсь с конфликтами версий между двумя версиями Subversion.Я монтирую каталог на сервере разработки с помощью sshfs, а затем редактирую код с помощью своего локального Vim.Для подрывных действий, таких как обновление, фиксация и т. д.Я подключаюсь к серверу и делаю это там.Однако иногда я путаю свои оболочки и случайно выполняю обновление или фиксирую свою локальную оболочку в смонтированном каталоге.Subversion завершает работу с ошибкой, и это нормально.Однако, когда я пытаюсь сделать то же самое на сервере разработки в своем сеансе ssh, Subversion сообщает, что рабочий каталог/подверсия имеет неверную версию.Версия Subversion на сервере старше версии на моем ноутбуке, поэтому я предполагаю, что моя (более новая) версия каким-то образом обновляет рабочие каталоги, поэтому они становятся несовместимыми со старой версией на сервере разработки.Иногда удаление файлов .svn/lock помогает, но только если я делаю это сразу после того, как выполнил команду subversion на своем ноутбуке.Когда я впоследствии выполняю команду на сервере разработки, файлы блокировки исчезают, и я не вижу способа спасти проверку.Это было бы не так уж плохо, если бы репозиторий не был таким большим.Особенно, когда я внес много изменений и не могу их зафиксировать.

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

Есть ли лучшее решение для спасения сломанной проверки и/или моих изменений?

ОБНОВЛЯТЬОтвет на часто задаваемые вопросы, на который ссылается Микаэль Сундберг, содержится.Я записываю это здесь, потому что он не упоминает об этом явно.Есть скрипт, который может понизить версию обновленных репозиториев, если это безопасно:

http://svn.apache.org/repos/asf/subversion/trunk/tools/client-side/change-svn-wc-format.py

Это было полезно?

Решение

Возможно, эта запись в FAQ может быть полезна:http://subversion.tigris.org/faq.html#working-copy-format-change

Другие советы

Я не уверен, правильно ли я понимаю вашу проблему, но вот несколько советов:

Первый совет: пробовали ли вы SVN? Чистый команда?

Следующий, вероятно, для вас бесполезен :), но многие люди, использовавшие CVS, не осознают, что в SVN есть такая функция, поэтому я ее записываю.

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

В другом случае (не Windows и не Tortoise SVN) изучите документация для версии команд, описанной выше.

Следующий совет поможет вам избежать смешивания ракушек.

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

Это меня много раз спасает :).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top