SVN: Что означает статус «переключен относительно своего родителя»? - PullRequest
19 голосов
/ 16 февраля 2010

Я пытаюсь обновить наш живой сайт из репозитория SVN.Насколько я знаю, в репо ничего нет.Сам, что должно конфликтовать с чем-либо в рабочей копии dir.Но когда я пытаюсь выполнить «svn up» в общем корневом каталоге, я получаю следующую ошибку:

svn: REPORT request failed on '/svn/oursite/!svn/vcc/default'
svn: Working copy path 'app' does not exist in repository

Когда я запускаю «svn status» в docroot, я вижу следующее:

docroot$ svn st -N
   +S  app
   +S  downloads
   +S  index.php
   (etc.)

Согласно документам, флаг S указывает whether the item is switched relative to its parent. Что это вообще значит , и что я могу сделать, чтобы это исправить?

РЕДАКТИРОВАТЬ: я должен упомянуть, что я единственный, кто работал с хранилищем SVN.Я работал с этим весь день, пытаясь победить одну проблему коррупции за другой, когда я перемещал вещи.

(SVN великолепен, но он конечно хрупок ... Кажется, сломается, еслиты просто неправильно на это смотришь!)

Ответы [ 4 ]

29 голосов
/ 16 февраля 2010

В той же папке, где вы запустили svn status, введите следующую команду:

svn info app

Это покажет вам, на какой URL указывают метаданные svn папки приложения. Вы, вероятно, увидите, что он указывает на другое местоположение по сравнению с тем, которое вы ожидаете, основываясь на URL-адресе родительской папки.

Затем можно либо использовать svn switch, чтобы направить каждую переключаемую папку обратно на правильный URL-адрес, либо просто удалить каждую переключенную папку с помощью rm -rf, а затем выполнить svn update.

обновление после перечитывания вопроса: Скотт прав, когда говорит, что переключенные папки не должны вызывать ошибки при выполнении svn update.

Причиной возникновения проблем с рабочей копией является то, что вы перемещаетесь или переименовываете папки без использования команды svn mv. Это классическая ошибка новичка SVN; Я принимал участие в обучении новых пользователей SVN, и я видел это много.

Трудно восстановить рабочую копию после таких ошибочных манипуляций. Лучший способ исправить это, как правило, просто сделать новую проверку. Будущие версии SVN будут централизованы В Subversion 1.7 централизовано метаданные .svn , что уменьшает вероятность таких ошибок.

8 голосов
/ 16 февраля 2010

Я думаю, что каталог как-то поврежден. Если нет ничего сложного в его уничтожении, я уверен, что удаление каталога и повторное обновление / извлечение устранит проблему.

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

Вот один парень, который решил эту проблему с помощью нюкинга (http://andychase.net/posts/2006/04/working-copy-path-foo-does-not-exist-repository), и несколько других подобных примеров, которые довольно легко найти.

1 голос
/ 28 ноября 2010

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

0 голосов
/ 22 ноября 2010

Я только что нашел одно решение, которое сработало здесь. Последовательность действий:

Открыть файл, который существует только в текущей ветви в текстовом редакторе.

  1. Переключиться на другую ветку.
  2. Сохраните файл в редакторе.
  3. Switch back - теперь он жалуется, что не может, потому что файл будет заменен переключателем.
  4. Удалить файл.
  5. Повторите переключатель. Теперь все файлы имеют статус "S".
  6. Еще раз переключите . Теперь это все счастье на земле устаревших ВК.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...