TortoiseSVN 1.71 и VisualSVN 2.51 не будут подключаться после обновления - PullRequest
3 голосов
/ 09 ноября 2011

Я обновил VisualSVN до v2.51 и TortoiseSVN до 1.7.1 в то же время несколько дней назад. До обновления использование Subversion работало нормально много месяцев. С момента обновления я не смог подключиться к хранилищу.

Операционная система - Win7 Home Premium 64bit, установлена ​​Visual Studio Web Developer Express 2010, все обновления Windows были применены автоматически, и я использовал подключение к серверу apache с SSL, которое является таким же, как и раньше. Также просмотр репозитория из VisualSVN работает нормально.

Чтобы продемонстрировать проблему простым способом, я использовал сеанс командной строки, чтобы попытаться перечислить файлы в хранилище и получить ошибку, показанную ниже:

C:>svn ls "https://robert-pc/svn/Scedule/"  --username xxx --password yyy<br>
svn: E175002: Unable to connect to a repository at URL 'https://robert-pc/svn/Schedule'
svn: E175002: OPTIONS of 'https://robert-pc/svn': Could not resolve hostname 
`https://robert-pc/svn/': No such host is known.
(https://robert-pc)

Та же ошибка возникает, если я пытаюсь использовать TortoiseSVN из Windows Explorer. Основываясь на ответе на аналогичный вопрос в ноябре 2009 года, я безуспешно пытался сделать следующее:

  • Указан номер порта в имени компьютера, например, svn ls https://robert-pc:8443/svn/Schedule/
  • Разрешен SVN.exe (тот, который установлен с VisualSVN) через брандмауэр Windows.

Я удалил и переустановил VisualSVN и TortoiseSVN, пока они недоступны. Я не вижу, где кто-то еще имел проблемы с использованием VisualSVN v2.51 и TortoiseSVN v1.7.1. Интересно, проблема в том, как настроена сеть Windows? Сеть - это простая локальная сеть, настроенная как рабочая сеть под Windows 7 Home Premium. Любая помощь очень ценится.

Я могу успешно пропинговать robert-pc из сеанса командной строки. Я могу успешно просматривать репозиторий из IE следующим образом: https://robert -pc: 8443 / svn /
(Я получаю предупреждение сертификата от IE, через которое я продолжаю, и затем я ввожу имя пользователя и пароль.)

Ответы [ 4 ]

7 голосов
/ 09 ноября 2011

Ваша проблема не в VisualSVNServer или TSVN, и она написана на чистом английском языке

Не удалось разрешить имя хоста `https://robert -pc / svn / ': такой хост не существует известны.

Не удалось разрешить имя хоста означает, что вы должны получить в Windows по крайней мере ping robert-pc без ошибок, прежде чем пожаловаться на подключение

Я не знаю, из какого источника разрешен robert-pc и кто сейчас его сломал, но вам нужно восстановить старые настройки (хосты, локальный DNS-сервер)

5 голосов
/ 14 ноября 2011

Эта проблема стоила мне столько времени, что я опишу здесь, как я наконец-то заставил Subversion работать снова, на случай, если это кому-нибудь поможет. Я удалил VisualServer и TortoiseSVN. После удаления я также удалил некоторые остаточные ключи и файлы реестра конфигурации:

  • HKEY_CURRENT_USER \ Software \ Tigris.org \ Subversion Подключи в Server \ Global имели настройки, связанные с именем хоста.
  • HKEY_CURRENT_USER \ Программное обеспечение \ TortoiseSVN
  • C: \ Users \ Роберт \ AppData \ Roaming \ TortoiseSVN
  • C: \ Users \ Robert \ AppData \ Roaming \ Subversion

Я думаю, что действительно помогло избавиться от старых записей конфигурации перед установкой снова. После переустановки VisaulSVN и TortoiseSVN теперь можно использовать репозитории. Хотелось бы, чтобы я точно знал, в чем проблема, но я не знаю. Я подозреваю, что данные SVN для рабочих каталогов были повреждены, потому что я попытался переместить рабочие каталоги с помощью команды TortoiseSVN Relocate, чтобы определить имя хоста, когда я получил сообщение об ошибке из-за невозможности подключения к хост (БОЛЬШАЯ ОШИБКА).

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

Сначала я переустановил только VisualSVN и настроил его на пустой корень в C: \ Repositories , сохранив предыдущую папку Repositories со всеми данными, переименовав ее. Я использовал команды SVN из командной сессии для создания единого тестового репозитория и успешно добавил тестовый файл в репозиторий, чтобы убедиться, что основы будут работать. Имя хоста было установлено на http://robert -pc: 81 / во время установки на случай, если https: вызовет у меня трудности (оказалось, https: проблема не была).

Затем я поместил реальные данные обратно в C: \ Repositories и успешно извлек репозиторий с большим количеством файлов с помощью клиента svn из Command Session. Эта проверка дала мне понять, что некоторые внешние ссылки на другие репозитории не могут быть извлечены, потому что имя хоста было https://robert -pc для внешних ссылок. Используя VisualSVN, я установил подключение к хосту для использования https с port 443 и извлек снова, как показано ниже:

  • В VisualSVN выберите «Свойства»> вкладка «Сеть».
  • Имя сервера: robert-pc (как и прежде)
  • Порт сервера: 443
  • Установите флажок Использовать безопасное соединение (https://) и нажмите Ok.
  • Используйте командную строку, чтобы снова оформить заказ.
  • Начать командный сеанс.
  • Изменить каталог на пустой каталог, в который будут скопированы файлы из репозитория.
  • svn checkout https://robert -pc / Schedule / branch / MySql (пример для моего случая, обратите внимание, что путь после имени хоста чувствителен к регистру).
  • Введите пароль для пользователя Windows при появлении запроса на аутентификацию области, только один раз.
  • Принять запрос сертификата постоянно.
  • Введите имя пользователя и пароль для пользователя, определенного в VisualSVN, поскольку используется аутентификация SVN. (Кстати, я думаю, что аутентификация Windows тоже подойдет.)
  • Все файлы были успешно проверены

Далее я установил TortoiseSVN и мог использовать его как обычно. Удивительно, но я мог использовать свою оригинальную рабочую копию вместо той, которую я извлек из хранилища. Это было здорово, поскольку в моей рабочей копии еще не было внесено изменений.

4 голосов
/ 12 ноября 2011

Я думаю, что ваша проблема связана с переходом на Subversion 1.7 на сервере и клиенте и проблемой с сертификатом. Поскольку вы можете получить доступ к своему серверу в браузере с помощью URL https://robert-pc:8443/svn/, он (в контексте или на вашем ПК) является действительным URL и должен использоваться клиентом Subversion и TortoiseSVN.

Попробуйте сделать следующие вещи, чтобы найти реальный источник проблемы:

  • Откройте браузер репозитория TortoiseSVN и введите в строке URL-адрес указанный выше URL.
  • Посмотрите на файл, который можно редактировать: TortoiseSVN > Settings > Network > Subversion server file > Edit и посмотрите на раздел global. Там вы можете указать, где хранить сертификаты SSL.
  • Проверьте ваши каталоги <username>\ApplicationData\Subversion\auth, некоторые данные аутентификации сохранены. Попробуйте удалить данные, а затем получите доступ к своему хранилищу (с действительным URL-адресом, как в браузере).
    1. Удалить содержимое каталога auth (аналогично TortoiseSVN > Settings > Saved Data > Authentication Data > Clear).
    2. Откройте командную оболочку и введите: svn log <a href="https://robert-pc:8443/svn" rel="nofollow">https://robert-pc:8443/svn</a>.
    3. Должно отображаться предупреждение (error validating server certificate) и некоторые опции, что делать сейчас.
    4. Примите там сертификат сервера.
  • Прочтите документацию в «Красной книге SVN» Как использовать SSL в клиенте, возможно, есть некоторая информация, которая вам поможет.
0 голосов
/ 28 декабря 2012

Поврежденный Winsock вызвал аналогичные симптомы на моем сервере (Windows Server 2008 R2 / VisualSVN v2.5.7).

Следующая команда, выполненная в командной строке, с исправленной перезагрузкой сервера.

netsh winsock reset

Мальчик был этой болью.Надеюсь, это спасет кого-то еще от потягивания волос: -)

...