Вопрос

Я использую git-svn в нескольких рабочих проектах и ​​заметил, что практически при каждом действии мне запрашивают пароль Svn.Для некоторых действий мне предлагается несколько раз (предположительно, потому что за кулисами происходит несколько действий).Например, при клонировании репозитория мне предлагается 5 раз, прежде чем клонирование действительно начнется.

Проекты, для которых я напрямую использую Svn, этого не делают.Ожидается ли это?Могу ли я что-нибудь сделать, чтобы кэшировать свои учетные данные?

Спасибо.

Это было полезно?

Решение

В итоге мне пришлось полностью удалить каталог аутентификации и позволить Subversion восстановить его за меня.Больше ничего не помогало.Для тех, кто не знает, каталог аутентификации находится в ~/.subversion (Mac/Linux).

Другие советы

У меня была похожая проблема в Сьерре. svn работал нормально с сохраненными учетными данными, но git svn не использовал сохраненные учетные данные и продолжал запрашивать их повторный ввод.

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

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

Вам следует попросить SVN кэшировать ваши учетные данные:

# $ svn update --username 'user2' --password 'password'
# user1@domain.com's password:

Однако, как упоминалось в вопросе SO Subversion игнорирует параметры «—пароль» и «—имя пользователя», проверьте, что именно запрашивает пароль.

Возможно глупая идея, но я нашел git-svn повторно запрашивал пароль даже после сброса записи связки ключей.Поэтому я изменил контроль доступа для этого элемента, чтобы «все приложения» могли получить к нему доступ.Кажется, работает?

Keychain item Access Control

У меня была похожая проблема.Первоначально я находился на удаленном сервере Centos и пытался захватить все удаленные ветки svn, чтобы переместить их в чистый источник как настоящие ветки git для жесткого переключения с svn на git через:

for remote in `git branch -r` ; do git checkout $remote; git pull; done

где было около 240 удаленных филиалов.(Я ни за что не собирался вводить свой пароль для каждого из этих запросов)

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

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

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

https://stackoverflow.com/a/55706141/580672

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top