2011-08-30 15 views
22

Estoy usando git sobre sshfs (bajo Mac OS X 10,5, 10.7) pero es demasiado lento.Usar git sobre sshfs es demasiado lento

Cada vez que ha iniciado sesión en el servidor remoto direcly, utilizar el comando git.

Probé este post, http://kerneltrap.org/mailarchive/git/2008/10/23/3768494 sin embargo, no funciona.

¿Alguien sabe alguna buena idea?

+3

¿Por qué no simplemente clona el repositorio en su máquina local? –

+1

¡Gracias! Sí, por supuesto, es posible clonar en mi máquina local. Pero el servidor remoto tiene un entorno muy complicado, y es muy difícil hacerlo en todas las máquinas locales. entonces sshfs está todo bien, pero el único 'comando git' es un problema. – banyan

+0

tengo un problema similar, pero traté de usar appletalk (también de un mac). pero tengo muchos problemas extraños, con esta configuración ... :(. También pensé en la sincronización rsync ... ¿Has encontrado una solución para tu problema? De ser así, estaría más que feliz si la compartieras . – aurora

Respuesta

1

Si lo entendí correctamente, está accediendo directamente al repositorio de git sobre sshfs.

El punto de Git se distribuye y ser capaz de empujar/tirar alrededor, así que ¿por qué no acaba de clonar el repositorio para los locales fs? Recuerde que git clone también funciona desde un sistema de archivos, no necesita clonar desde un repositorio "en red" (ssh, http, git, etc ...).

$ git clone /my_sshfs_mountpoint/repo 

y listo para rockear. Simplemente recuerde que git push respalda su trabajo cuando haya terminado.

+0

Como dije anteriormente, es posible clonar en mi máquina local. Pero el servidor remoto tiene un entorno muy complicado, y es muy difícil hacerlo en todas las máquinas locales. entonces sshfs está todo bien, pero la única velocidad de comando git es un problema. Gracias. – banyan

+0

Si puede montar sshfs, también puede ejecutar git clone; no puedo entender dónde está el problema. De todos modos, esa es la solución a sus problemas de velocidad, por lo que debe usar uno de los dos: clonar o paciencia. – Luke404

+0

@kyanny Sigo pensando que estás haciendo un uso indebido de git. Es un sistema distribuido e insiste en usarlo "localmente" (montando los archivos fs remotos con sshfs y luego ejecutando git sobre eso): no es de extrañar que no funcione bien. Cuando/donde aparecen sus ediciones es otra historia, git es solo relacionado con el control de versiones. Si desea "ediciones remotas instantáneas", edite sobre sshfs y luego ejecute git en el sistema remoto (no localmente en sshfs). – Luke404

19

Puede elegir otro sistema de archivos. SSHFS es principalmente una herramienta de conveniencia. MacOS admite montajes NFS, por ejemplo, y eso es rápido.

Otra forma de seguir adelante sería el uso de rsync o al unísono ('bidireccional rsync' de la herramienta). Estos hacen una sincronización realmente rápida entre el sistema de archivos remoto y local. Junto con algunos alias de shell rápidos para compilar/ejecutar de forma remota, es una buena solución.

Otra forma sería la de ejecutar su entorno de desarrollo de forma remota a través de VNC/X11. Esto hace que el IDE sea algo más lento, pero no es necesario sincronizar el código.

Una mezcla de lo anterior es para hacer un clon de la máquina virtual del servidor remoto, ejecutarlo en su local de la caja, y compartir carpetas a través de la máquina virtual o algún NFS local entre los dos.

También podría ajustar sshfs. Hay algunas opciones de ajuste de montaje, y también puede desactivar el cifrado. Da aproximadamente 2 veces la aceleración general, así que no esperes maravillas.

Siendo en los mismos zapatos que el cartel, he buscado soluciones durante años, pero al no hacerlo, me he conformado infelizmente con sshfs afinados, junto con rsyncs ocasionales y paciencia.

+0

Gracias user493759 que me da una respuesta bastante convincente. Nunca he conocido una herramienta rsync bidireccional y la encriptación de sshfs. Intentaré ambos. – banyan

+2

¿Alguna idea en particular por qué git es tan lento? Todo lo demás parece estar bien, pero el "estado de git" es insoportable. –

+6

Ceasar: porque el estado de git compara todos los archivos retirados con el repositorio para ver si hubo cambios. Eso es MUCHO de IO pequeño, que es en lo que sshfs es realmente malo debido a la alta latencia. –

7

Sé que esto es muy antiguo, pero me encuentro con este problema todos los días. Tengo un entorno muy complicado que sería prácticamente imposible de recrear localmente. Tenemos cosas en todas partes y trabajando con APIs de terceros APIs de cPanel, etc.

La única solución que funciona para mí es montar y trabajar en los archivos localmente sobre sshfs, pero cuando es hora de hacer git tengo una ventana de terminal abierta que es solo ssh'd in y esto funciona para mí. ¿Hay alguna razón por la que no puede/no quiere tener una terminal abierta? De lo contrario, parece ser la solución más rápida y más confiable para mí.

+0

Así es también como lo hago. Lo único que hago en el punto de montaje 'sshfs' es' pull'. Todo lo demás lo hago en una sesión 'ssh' separada, para que el git local de destino ejecute el comando, no el git del host local en el sistema de archivos del objetivo. – Gauthier

Cuestiones relacionadas