Почему SVN не может найти местоположение репозитория для версии 0

#svn #tortoisesvn

#svn #tortoisesvn

Вопрос:

Я недавно обновил версии SVN и TortoiseSVN, которые я установил на своей рабочей станции, и всякий раз, когда я проверяю различия в файле без каких-либо изменений, я получаю следующую ошибку.

 Unable to find repository location for "<path>" in revision 0
  

Я проверил свежую копию одного из своих проектов (я пробовал его на нескольких), и он по-прежнему дает мне тот же результат.

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

Я также попытался полностью переустановить TortoiseSVN — опять же, без кубиков.

Единственная другая забавная вещь, которую я сделал, это переместить местоположение исходного репозитория (хранящегося в файловой системе, а не в БД). Но его путь совпадает с сообщением об ошибке, поэтому я считаю, что он находит репозиторий.

Что еще может быть причиной?

Комментарии:

1. Просто для ясности, я проверил проект с тех пор, как переместил его местоположение на свой сетевой диск.

2. Был ли изменен URL репозитория во время перемещения? После какой версии no вы переместили репозиторий? Можете ли вы получить доступ к любой ревизии , созданной до перемещения?

Ответ №1:

Похоже, это ожидаемый результат для проверки различий в файле без каких-либо изменений. Я ожидал результата типа «файл обновлен», но возврат к более старой версии TortoiseSVN на другой рабочей станции, которая, как я был уверен, все еще работала, дал мне тот же результат для неотредактированного файла.

Комментарии:

1. 1 для checking the diffs on a file without any changes . Это то, что вызывало у меня проблемы, когда я пытался diff with previous version , когда у файла фактически не было предыдущей версии. Это был файл, который был добавлен один раз, и в сотнях последующих ревизий он вообще не был изменен.

Ответ №2:

В вашей первой редакции (редакция 0), вероятно, нет каталогов «trunk», «branches» или «tags». Обычно они добавляются при первоначальной регистрации (редакция 1).

Таким образом, если у вас есть «svn switch» -ed в одном из этих каталогов (обычно это делается для каталога «trunk»), то запрос версии 0 в этом каталоге правильно выдаст вам сообщение об ошибке, в котором путь «<svnrepo> / trunk» не может быть найденредакция 0, поэтому она не может извлечь эту ревизию и по-прежнему выполнять предыдущую команду «svn switch».

Попробуйте «svn switch» для имени проекта, не заходя ни в какие подкаталоги, и я уверен, что вы сможете открыть версию 0.

Комментарии:

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

2. На самом деле нет. Если вы не проверите «корень» репозитория, вам не следует ожидать хорошей проверки версии 0. В версии 0 обычно существует только «корень» репозитория. Это все, что добавляется позже (в других версиях), которые добавляют некорневые пути и файлы.

3. Пожалуйста, помните, что «магистраль», «ветви», «теги» и т. Д. Не встроены в subversion, Это элементы, возвращенные в репозиторий после его создания. Обычно их нет в версии 0. Это означает, что вы не можете проверить их (любыми способами) в версии 0, даже с помощью проверки » myserver / myproject / trunk «. Для версии 0 имеет смысл только проверка » myserver / myproject «.

Ответ №3:

 $ svnadmin create /path/to/repos
  

Это создает новый репозиторий в каталоге /path/to/repos . Этот новый репозиторий начинает свою жизнь с версии 0, которая определяется как состоящая из ничего, кроме корневого каталога файловой системы верхнего уровня (/ ). Изначально версия 0 также имеет единственное свойство ревизии, svn:date, установленное на время создания репозитория.

Комментарии:

1. Вы хотите сказать, что сообщение об ошибке является ожидаемым результатом при выполнении diff для файла, который не изменился? (примечание: я переформулировал свой вопрос с тех пор, как вы ответили)

2. Ожидается разрешение 0, потому что это особый случай — вы можете увидеть, svn log filename когда файл действительно появился в репозитории (я думаю, это должен быть rev 1 или 2) — смотрите В моем примере истории репозиториев mayorat.ursinecorner.ru:8088/svn/Hello/trunk/Hello.en.txt