Как я могу восстановить "модернизированные" рабочие каталоги Subversion? - PullRequest
1 голос
/ 25 сентября 2008

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

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

Есть ли лучшее решение, чтобы спасти сломанную кассу и / или мои изменения?

UPDATE В ответе на часто задаваемые вопросы Микаэль Сандберг содержал ответ Я пишу это здесь, потому что он явно не упоминает об этом. Существует скрипт, который может понизить версию обновленных репозиториев, когда это безопасно:

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

Ответы [ 2 ]

1 голос
/ 25 сентября 2008

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

0 голосов
/ 26 сентября 2008

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

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

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

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

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

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

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

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

...