GIT GUI para proyecto en solitario: Windows PC para desarrollo, pero git + active, repository de proyecto en funcionamiento en un server linux LAN sin cabeza?

Acabo de instalar git por primera vez para un proyecto en solitario, y ahora no sé cómo he vivido sin control de versiones durante tanto time. Quería ver si tal vez una GUI sería útil, pero tengo un problema …

  • Mi máquina de desarrollo está ejecutando Windows
  • El proyecto está en un server linux sin cabeza en la LAN
  • Los directorys de proyectos se comparten a través de samba y se asignan como unidades de networking en la PC de Windows.
  • Soy el único que usa este server, por lo que no es necesario clonar el repository en la PC de Windows.
  • Si uso git a través de SSH, nada de esto es un problema en absoluto

Los clientes de git de GUI que he probado hasta ahora, todos asumen que estoy ejecutando git en la máquina en la que los instalé. Si trato de operar en el repository hospedado en Linux con git instalado en widnows, es (no inesperadamente) lento como melaza y parece tener problemas de compatibilidad.

¿Hay alguna manera de hacer que esto funcione para smartgit? ¿O cualquier otro cliente decente?

Instalé gitweb, que parece lo suficientemente bueno como para examinar el historial del proyecto, pero en realidad no puedo 'hacer' nada con él.

EDIT : si pudiera ampliar esta pregunta y solo pedir un consejo sobre cómo proceder, es decir: succionar y usar Putty con algo más para la visualización, clonar el repository y presionar / tirar, o hacer algo diferente como svick's Sugerencia de X Server

De acuerdo, marcaré mi propia respuesta para mayor claridad y no vanidad, para ayudar a alguien atrapado en una situación similar. Espero que nadie se ofenda.

Como una nota al margen, después de encontrar una solución de trabajo, aún terminé usando SSH y un directory de Linux compartido mapeado por unidad para el desarrollo, pero es útil tener un lugar local en la máquina de Windows para poner un repository de trabajo. GIT es lento como melaza en las windows, pase lo que pase, así que lo usaré de esa manera lo less posible, pero así soy yo.

Si tu bash-foo es débil como el mío, webmin puede ayudarte con lo siguiente. Así que esto es lo que terminé haciendo:

Resumen:

  • Proyecto basado en web (stack LAMP en mi caso)
  • Desarrollador solo
  • 1 PC con Windows utilizada para desarrollo
  • 1 server linux sin cabeza para alojar la stack y el proyecto

Propósito:

  • Configure un repository de trabajo localmente en la PC de Windows para permitir el uso eficiente de los clientes de GUI git, etc. sin tener que crear una stack de trabajo completa o comprometerse y presionar para ver qué diablos acaba de suceder. PHP en Windows es una mierda ( sí, sí, más de lo normal har har ), y también lo hacen muchas otras cosas.

Recurso de la solución:

  • No es necesario duplicar la stack LAMP en la máquina de Windows, o atornillar con la database para tener un repository local en funcionamiento
  • Obtenga una vista previa de sus cambios en time real sin tener que comprometerse o presionar

Desventaja de la solución:

  • Repo local (Windows) solo funcional si la computadora está en la networking
  • Es posible que vea un poco de latencia de la networking debido a la naturaleza de lo que está pasando aquí

Prerrequisitos:

  • IP estáticas o basadas en MAC para las máquinas de Windows y Linux
  • git, BIND, Samba, Apache (o similar) en la caja de linux
  • Cliente SSH (¿Putty?), Msysgit, git GUI de elección (gitextensions / smartgit / gitgui) en el cuadro de Windows

Qué hacer:

  1. Configure un directory compartido en el cuadro de Windows para el repository
  2. Monta este directory en el cuadro de linux
  3. Apunte BIND a la IP propia de la caja de linux para sus dos dominios (p. Ej .: myproject.lin y myproject.win) – (disculpas por la falsificación de tlds, pero use su propio criterio aquí)
  4. Convierta el linux box en su dns resolver para el recuadro de Windows o su enrutador de networking
  5. Configure dos serveres basados ​​en dominio en Apache (los de arriba) y diríjalos a las ubicaciones apropiadas (por ejemplo: '/ mnt / windows-pc / myproject' y '/ var / www / myproject')
  6. Asegúrese de que la configuration de su aplicación pueda asignar routes relativas por razones obvias
  7. Samba: comparte el repository de Linux y tal vez lo asigne como una unidad de networking de Windows para mayor comodidad.
  8. Clona el repository de tu linux box en el directory de Windows
  9. Empuje los cambios según sea necesario al directory de proyectos compartidos de Linux

Para complicar aún más lo que probablemente no necesitó ninguna explicación aquí, hay un diagtwig (simplificado): algo que ver con los pantalones que pienso

Soy el único que usa este server, por lo que no es necesario clonar el repository en la PC de Windows.

En realidad, parece que hay alguna necesidad. Si desea que el repository sea tan rápido como si fuera un repository local, la opción más fácil es crear un repository local.

Otra opción sería instalar X Server en la máquina de Windows y usar X tunneling sobre SSH para ejecutar la GUI de git en el server de Linux, pero mostrarla en Windows.

La belleza de DVCS es que obtiene una copy local completa del repository en su máquina local. En el caso de git, casi se supone que vas a clonar o (como mínimo) alojar el repository localmente.

Ahora, ha declarado que no es ideal que lo clone, pero el hecho es que para que la GUI sea efectiva, tendrá que ejecutarse donde el repository es local.

Dependiendo de su flujo de trabajo / configuration, esto puede o no ser factible. Aquí está mi sugerencia:

  1. Configure XAMPP en su estación de trabajo local, incluso si se trata de una gran inversión de time para ponerse en marcha.
  2. Traiga el repository y agregue su estación Linux como remota, o (idealmente) configure algo como gitolita
  3. Desarrollar localmente. Piénselo como una etapa "alfa". Aquí obtienes beneficios adicionales, básicamente puedes arruinar toda tu aplicación y no será en vivo. ¡Y tu GUI!
  4. git push al repository remoto, y ta-da, implementado.

Ahora, hay algunas maneras mejores de entrar realmente en esto si tienes los resources, y los he detallado en otras publicaciones . De nuevo, si tiene la flexibilidad para hacer algo como esto, lo recomiendo encarecidamente. Si eso es demasiado radical, es posible que tenga que mantener el rumbo con lo que está haciendo. Espero que esto ayude.

PD: también soy un desarrollador en solitario, y puse mucho time en la configuration de control de mi versión. ¡Ha valido la pena!

Tengo una configuration comparable y ejecuto un clon en el cuadro Linux de destino. Sin embargo, también desarrollo en la caja Linux sin cabeza usando ssh de Windows. Estoy ejecutando Xming en Win7 / 64. Entonces, para esta actividad, el cuadro de Windows es prácticamente una X-terminal.

He instalado gnome-terminal en la caja de Linux, porque no estoy contento con putty o xmingw bash que se ejecuta en una window de commands de Windows.

No es perfecto, pero está comprobado que es viable.