#svn
#svn
Вопрос:
Я работаю совместно над большим количеством кода, и несколько дней назад сотрудник изменил имя каталога в репозитории. Понимая это, я спросил человека, могут ли они изменить имя обратно на его исходное имя, чтобы избежать сложного разрешения с помощью svn (в моей рабочей копии было несколько изменений, которые еще не были зафиксированы, которые я хотел сохранить). Сотрудник изменил имя каталога обратно на то, что было, но теперь svn status -u
вызов сообщает мне, что каталог в моей рабочей копии больше не распознается как тот, который находится в репозитории. Он также предупреждает > local dir edit, incoming dir delete upon update
Вот упрощенное описание того, что произошло:
Изначально:
WC: /main/path/script/...
Repo: /main/path/script/...
Затем:
WC: /main/path/script/...
Repo: /main/path/python_scripts/...
Наконец:
WC: /main/path/script/...
Repo: /main/path/script/...
Где последний утверждает, что эти два местоположения больше не совпадают.
Может кто-нибудь объяснить мне, как я могу снова синхронизировать эти два пути, не передавая мою текущую рабочую копию в репозиторий? Пожалуйста, обратите внимание, что я не очень хорошо разбираюсь в рабочем цикле svn, поэтому буду признателен за подробное объяснение.
Комментарии:
1. Что такое корень вашего WC? Не могли бы вы попробовать —
svn info
и опубликовать вывод.
Ответ №1:
Похоже, вы выпустили обновление после первого переименования каталога вашего скрипта в репозитории, а затем переименовали его обратно. Теперь ваш каталог остается в состоянии неразрешенного конфликта. Попробуйте разрешить это следующим образом:
cd /main/path/script/
cp -pR . ../script.bak # !!!do not forget perform backup!!!
svn resolve
Tree conflict on '.'
> local dir add, incoming dir add upon update
Select: (r) mark resolved, (p) postpone, (q) quit resolution, (h) help: r
Resolved conflicted state of '.'
Теперь вы можете видеть, чем был заменен ваш локальный каталог. Вероятно, вы хотите зафиксировать только это изменение:
svn stat -qu --depth=empty
R - .
svn ci --depth=empty -m"renaming was resolved"
Replacing .
svn: The depth of this commit is 'empty', but copies are always performed recursively in the repository.
Committed revision 6532.
После этого все ваши файлы должны остаться нетронутыми.