La authentication de control de versiones svn falla cuando se ejecuta desde emacs

Estoy usando en mi computadora de escritorio las windows nativas emacs 24.2 configurado para usar cygwin bash .

Cuando ejecuto SVN desde cygwin bash todo funciona bien. Restring mis cnetworkingenciales de autorización y se conecta a un repository. Pero cuando trato de ejecutar cualquier command de control de versiones desde emacs siempre obtengo el siguiente post:

svn: E170001: no se puede conectar a un repository en la URL ' https: //address.to.repo ' svn: E170001: OPCIONES de ' https: //address.to.repo ': autorización fallida: no se pudo autenticar en el server: rechazado desafío básico

Intenté también conectarme con la interfaz PSVN, que también termina con el mismo post de error. De alguna manera es extraño que no funcione de la misma manera desde cygwin terminal y emacs. Cualquier ayuda en esto sería apreciada.

Resuelto ahora. El problema era que Emacs NT cygwin integrated aún usaba la ruta de Windows HOME en lugar de utilizar el directory HOME de cygwinized.

Creo que la respuesta completa debería ser algo como esto:

  1. SVN depende de la ruta HOME para encontrar su configuration por usuario (como la mayoría de los progtwigs Unix).
  2. En cygwin esa variable tiene algo como "/ home / pablo".
  3. "/ home / pablo" se traduce realmente como "unidad: \ dir_cgwin \ home \ pablo"
  4. Emacs-nt toma su HOME del entorno de Windows, por lo que es un HOME diferente al de cygwin.
  5. El vc-svn de emac usa la ruta incorrecta para search su configuration.

Entonces hay dos soluciones (tal vez más):

  1. Haga que emacs-nt use el HOME de cygwin (¡entonces eso es lo que significa cygwinization!: O), necesita setup-cygwin para esto, pero especialmente necesita un script, depende de cygwin-mount. Entonces emacs-nt puede entender el "estilo" de ruta de Cygwin.
  2. (no recomendado) A la inversa, que es lo que hice, haga que cygwin use HOME de la window a través de un enlace suave de cygwin. ln -s /cygdrive/c/Users/pablo/Roaming/ /home/pablo
  3. Haga un enlace suave para que el directory de subversión del cygwin apunte a la window ln -s /cygdrive/c/users/pablo/AppData/Roaming/.subversion /home/pablo/.subversion

La segunda solución conducirá a que ".bashrc" de cygwin no se ejecute. Por lo tanto, las variables de entorno y los alias definidos allí no se definirán. Todavía creo que se puede hacer, pero no tengo el conocimiento adecuado de cygwin necesario para modificar esa solución. Así que ahora estoy usando la solución número 3.

    Intereting Posts