Странность SVN: возможно ли, что это не моя вина - PullRequest
3 голосов
/ 27 мая 2009

(Меня не волнует, если это моя вина, а, скорее, почему все происходит, конечно ...)

У меня есть сайт рельсов в SVN на удаленном сервере. На своей локальной копии я делаю переключатель (svn switch http://whatever/branch.), И тогда все становится совершенно странным, и сайт не работает. Я наконец выслеживаю его, и получается, что часть сборки (в частности, каталог app / config) указывает на неправильную ветвь. Пожалуйста, обратите внимание:

  • Я никогда не переключаюсь, используя что-либо кроме командной строки SVN
  • Я переключаю только в корне установки
  • Я всегда переключаюсь с правами суперпользователя (sudo -s) и уверен, что разрешения были установлены правильно для всего дерева (chmod -R 777)

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

Ответы [ 2 ]

7 голосов
/ 27 мая 2009

В официальном FAQ по Subversion есть целый раздел о проблемах с коммутатором . Там написано:

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

Их совет - переходить только с чистой рабочей копии.

Еще одна вещь - Рабочие копии смешанной редакции .

В основном это означает, что файлы в вашей рабочей копии могут быть (и обычно) из разные ревизии.

Вот что говорит об этом Красная книга SVN (выделено мной):

Например, предположим, у вас есть рабочая копия полностью в редакции 10. Вы редактируете файл foo.html, а затем выполнить SVN-коммит, который создает ревизия 15 в репозитории. После фиксация успешна, много новых пользователей будет ожидать, что рабочая копия будет полностью на пересмотре 15, но это не тот случай! любое количество изменений могло произойти в хранилище между редакциями 10 и 15. клиент ничего не знает об этих изменениях в хранилище, так как у вас нет пока что запускаю svn update, а svn commit не вносит новые изменения. Если на С другой стороны, SVN совершать были автоматически загружать новейшие изменения, то можно было бы установить всю рабочую копию в Редакция 15 - но тогда мы будем ломать Основное правило «толкать» и «Тянуть» оставшиеся отдельные действия. Поэтому единственная безопасная вещь Клиент Subversion может сделать это пометить один файл - foo.html - как находящийся в редакции 15. Остальная часть рабочей копии остается в редакции 10. Только работает svn update может самое последнее изменения будут загружены, и весь рабочая копия помечается как редакция 15.

0 голосов
/ 27 мая 2009

Извините, если вы знаете, что делаете, но похоже, что нет. (Или вопрос не ясен). Если вы включите результаты svn status из соответствующих каталогов, мы могли бы получить дальше.

svn switch

(svn help switch)

для переключения репозиториев, которые не должны быть частью общего рабочего процесса.

...