Ответ 1
Мне пришлось удалить всю директорию auth и разрешить Subversion перестроить ее для меня. Ничто другое не сработало. Для тех, кто не знает, каталог auth находится в ~/.subversion(Mac/Linux).
Я использую git -svn с несколькими рабочими проектами, и я заметил, что почти для каждого действия я беру запрос на мой пароль Svn. Для некоторых действий я получаю подсказку несколько раз (предположительно b/c происходит несколько действий за кулисами). Например, при клонировании репозитория я запрашиваю 5 раз до начала клонирования.
Проекты, для которых я напрямую использую Svn, не делают этого. Ожидается ли это? Есть ли что-то, что я могу сделать для кэширования моих учетных данных?
Спасибо.
Мне пришлось удалить всю директорию auth и разрешить Subversion перестроить ее для меня. Ничто другое не сработало. Для тех, кто не знает, каталог auth находится в ~/.subversion(Mac/Linux).
У меня была аналогичная проблема в Сьерре. svn
отлично работал с сохраненными учетными данными, но git svn
не использовал бы сохраненные учетные данные и продолжал запрашивать его повторное ввод.
Решение для меня состояло в том, чтобы удалить сохраненный ключ в цепочке ключей, а затем использовать git svn
перед любой другой программой. Если git svn
была программой для хранения пароля в цепочке ключей, то разрешения были правильно установлены. Как только git svn
был использован для создания записи в цепочке ключей, тогда можно было бы использовать обычный svn
и разрешить доступ к ключу, созданному git svn
, в этот момент они будут использовать репозиторий без каких-либо проблем и без мне все время предлагалось ввести пароль.
Если какая-либо другая программа установила пароль в цепочке ключей, тогда у этой программы не было проблем, но git svn
не будет разрешено.
Вы должны попросить SVN кэшировать ваши учетные данные:
# $ svn update --username 'user2' --password 'password'
# [email protected] password:
Однако, как упоминалось в вопросе SO Subversion, игнорирующем опции "-password" и "-ername" , проверьте, что именно запрашивает пароль.
Может быть, глупая идея, но я обнаружил, что git-svn
повторно запрашивал пароль даже после сброса записи в keychain. Поэтому я изменил элемент управления доступом для этого элемента, чтобы "все приложения" могли получить к нему доступ. Кажется, работает?
У меня была аналогичная проблема. Первоначально я был на удаленном сервере centos, пытаясь захватить все удаленные ветки svn, чтобы протолкнуть их в чистое начало как истинные ветки git для жесткого перехода с svn на git через:
for remote in `git branch -r` ; do git checkout $remote; git pull; done
где существовало ~ 240-ие удаленных ветвей. (Я не собирался вводить пароль для каждого из этих притяжений)
То, что я закончил, было scp'ing repo до моего локального компьютера (mac) и включение keychain для обработки кэширования паролей. Я вытащил все транзакции svn локально, а затем скопировал свое репо обратно на удаленную машину.
В OSX, если вы уже использовали svn, похоже, что svn создал запись пароля (в приложении OSX key key), которую git svn не может использовать или создать новый. Симптомом было то, что он спрашивал каждый раз, и SourceTree не работал с System git (и не работал со встроенным git по другой причине).
Моим решением было удалить эту запись, а затем использовать git svn один раз, и она создаст правильную запись. С этого момента также работал SourceTree.