¿Cómo puedo hacer que Subversion restablezca las contraseñas / usuarios almacenados y recuerde mis credenciales de autenticación?

14

Antecedentes: solía tener todo funcionando bien en mi nueva instalación:

$ svn co https://domain:443/ test1
Error validating server certificate for 'https://domain:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: **REMOVED**
 - Valid: **REMOVED**
 - Issuer: **REMOVED**
 - Fingerprint: **checked with issuer and REMOVED**
(R)eject, accept (t)emporarily or accept (p)ermanently? p
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz-machine-hostname':
Authentication realm: <https://domain:443> Subversion repository
Username: nicdumz
Password for 'nicdumz':

# proceeds to checkout correctly

$ svn co https://domain:443/ test2

# checkouts nicely, without asking for my password.

En algún momento necesitaba comprometer cosas usando una cuenta diferente. Entonces hice eso

$ svn ci --username other.user
Authentication realm: <https://domain:443> Subversion repository
Password for 'other.user':

# works fine

Pero desde entonces, cada vez que quiero comprometerme como 'nicdumz' (usuario predeterminado, todos los repos se han verificado con ese usuario), me pide mi contraseña:

$ svn ci
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz':

Hey, vamos, por qué :) Lo mismo sucede si quiero un nuevo pago, ya que el acceso de lectura también está protegido.

Así que intenté solucionar el problema yo solo. Leí que ~ / .subversion / auth estaba almacenando credenciales, así que lo eliminé de la manera:

$ cd ~/.subversion
$ mv auth oldauth
$ mkdir auth

Al principio pareció funcionar, porque svn se había olvidado de la validación del certificado:

$ svn co https://domain:443/ test3
Error validating server certificate for 'https://domain:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: **REMOVED**
 - Valid: **REMOVED**
 - Issuer: **REMOVED**
 - Fingerprint: **checked with issuer and REMOVED**
(R)eject, accept (t)emporarily or accept (p)ermanently? p
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz-machine-hostname':
Authentication realm: <https://domain:443> Subversion repository
Username: nicdumz
Password for 'nicdumz':

# proceeds to checkout correctly

$ svn up
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz':

¿Qué? ¿Cómo está pasando esto?

Si tiene sugerencias para investigar más sobre el comportamiento, estoy muy interesado. Si estoy en lo correcto, no hay forma de hacer un trabajo detallado svn upni nada por el estilo, por lo que no estoy seguro de si debo investigar. Ah, y por lo que vale:

$ svn --version
svn, version 1.6.6 (r40053)
   compiled Oct 26 2009, 06:19:08

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme
Nicolas Dumazet
fuente

Respuestas:

14

Bueno, tuve el mismo problema y eliminé el directorio de autenticación. Entonces hice:

svn --username xxx update

que me pidió mi contraseña, pero eso fue todo. Todo lo que puedo decir es que eliminar el directorio de autenticación funcionó para mí. ¿Tiene las opciones adecuadas en el archivo de su servidor? A saber (creo):

store-passwords = yes
store-plaintext-passwords = yes

en la [global]seccion. No estoy 100% seguro, pero puede ayudar.

Max Tardiveau
fuente