2009-03-03 23 views
29

Estoy usando git-svn con un par de proyectos de trabajo y me he dado cuenta de que para cada acción que tomo, me solicitan mi contraseña de Svn. Para algunas acciones, me preguntan varias veces (presumiblemente b/c hay varias acciones sucediendo detrás de escena). Por ejemplo, al clonar un repositorio, me preguntan 5 veces antes de que comience realmente la clonación.¿Tiene Git-Svn Store Svn contraseñas?

Los proyectos para los que estoy utilizando Svn directamente no hacen esto. Es esto esperado? ¿Hay algo que pueda hacer para almacenar mis credenciales?

Gracias.

Respuesta

33

Terminé teniendo que eliminar el directorio de autenticación todos juntos y permitir que Subversion lo reconstruya por mí. Nada más parecía funcionar. Para cualquiera que no lo sepa, el directorio de autenticación está en ~/.subversion (Mac/Linux).

+0

Gracias! En mi caso, en Windows, esto funcionó porque en mi archivo de contraseña, passtype = wincrypt (y tenía una contraseña cifrada) que migré desde la configuración de TortoiseSVN.Al eliminarlo, funcionó como usted dijo, pero ahora está guardando la contraseña en texto plano (passtype = simple). Presumiblemente no era compatible con Wincrypt o cualquier otra cosa ... – Dan

3

Debe preguntar SVN para almacenar en caché sus credenciales:

# $ svn update --username 'user2' --password 'password' 
# [email protected]'s password: 

Sin embargo, como mencionado en el Subversion ignoring “—password” and “—username” options SO cuestionar, comprobar lo que exactamente que se pida la contraseña.

+2

Todo indica que tengo (o entender, por lo menos) es que Svn reconoce la contraseña bien. Solo cuando uso git-svn me pregunto. Puedo hacer operaciones svn todo el día sin tener que ingresar mi contraseña. –

0

Tuve un problema similar. Al principio, estaba en un servidor CentOS remota tratando de agarrar todas las ramas svn remoto para empujarlos a un origen limpio como verdaderas ramas git para un corte y cambio dura de SVN a GIT a través de:

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

donde había ~ 240-ish ramas remotas. (No había forma de que ingresara mi contraseña para cada uno de estos pull)

Lo que terminé haciendo fue guardar el repositorio en mi máquina local (un mac) y habilitar el llavero para manejar la contraseña almacenamiento en caché Saqué todos los commit de svn locales y luego copié mi repo nuevamente en la máquina remota.

3

Tuve un problema similar en Sierra. svn funcionó bien con la credencial almacenada, pero git svn no usaría la credencial almacenada, y siguió pidiéndole que se vuelva a ingresar.

La solución para mí fue eliminar la clave almacenada en el llavero, y luego usar git svn antes que cualquier otro programa. Si git svn fue el programa para almacenar la contraseña en el llavero, entonces los permisos se establecieron correctamente. Una vez que se usó git svn para crear la entrada en el llavero, se podía usar el svn normal y se podía acceder a la clave creada por git svn, en este punto ambos usarían el repositorio sin problemas y sin que se me pidiera la contraseña todo el tiempo.

Si cualquier otro programa estableció la contraseña en el llavero, entonces ese programa no tuvo problemas, pero git svn no recibió permiso.

+2

¡Gracias, Paul! Esto me estaba volviendo loco. Eliminar el elemento del llavero correspondiente al mensaje mostrado por git-svn ('Authentication realm: Introduzca su nombre de usuario y contraseña para zzz SVN') y luego configurar usando git-svn works como describes: – Nuthatch

2

Quizás una idea estúpida, pero encontré que git-svn estaba volviendo a pedir la contraseña incluso después de restablecer la entrada de la llave. Así que cambié el control de acceso para ese artículo para que "todas las aplicaciones" puedan acceder a él. ¿Parece funcionar?

Keychain item Access Control