2011-06-30 20 views
5

Soy principiante en DVCS (soy del mundo SVN) y ahora que domino mi repositorio local, me gustaría configurar una computadora remota (Amazon EC2) para guardar mis archivos web para que pueda actualizar fácilmente la aplicación web sin FTP o algunas cosas sorta¿Cómo hacer que Hg/Git sea un repositorio remoto?

me gustaría terminar usando:

hg push http://hg.domain.com/webserver/hello 

o gIT

git push myAmazon master 

¿Qué tengo que configurar en mi servidor remoto (instalando Hg/Git) haga una carpeta como un repositorio usando init y ¿qué debería ser lo siguiente?


Tal vez no era 100% claro con la respuesta anterior, por lo que aquí hay una pregunta simple

quiero reemplazar FTP Subir mediante el uso de Git /Hgpush, ¿cómo puedo lograr esto?

Así, imaginemos el siguiente escenario:

C:\Inetpub\wwwroot\mybrandNewWebAppes la raíz de un sitio alojado en IIS (este es un equipo remoto, ejemplo: en Amazon EC2), en este directorio empecé una repositorio usando git init/hg init.

¿Cómo puedo configurar este repositorio que desde mi portátil puedo hacer un push remote para "Cargar mis cambios"?

¿Cómo puedo configurar este repositorio para que sea Alcanzable y Pushable?


Pregunta de leer todos los comentarios?

¿Debo crear otro directorio para ser el repositorio y usarlo con un buen empujón podría ejecutar un script que realmente actualice el directorio raíz del sitio web?

+0

es decir, desea utilizar su VCS para implementar su sitio web –

+0

¿Qué tipo de tecnología de sitio web está utilizando? ¿Necesitas construir el código, por ejemplo? ¿Tienes pruebas unitarias? –

+0

@Lasse V. Karlsen ** IIS ** significa Windows Server, puedo ejecutar fácilmente 'build.exe' y ejecutar pruebas de Unidad desde la línea de comandos, si es necesario, simplemente no entiendo cómo configurar todo para mi Repo actuar como un control remoto:/ – balexandre

Respuesta

1

Para Mercurial tendrá que configurar hgweb el servidor web que Mercurial incluye, al menos en la versión de origen.

Los pasos son (orden posiblemente incorrecta):

  1. Configurar IIS en su servidor
  2. descargar el código fuente mercurial, y seguir un tutorial sobre los archivos que desea poner a disposición de la aplicación IIS se configura
  3. Configurar IIS para ejecutar programas de Python (hgweb Mercurial es un script en Python CGI)
  4. Configurar hgweb para su necesidades de alojamiento

Existen numerosos tutoriales en la web, ninguno de ellos está 100% completo en el sentido de que si los sigue paso a paso todo funcionará, pero con una pequeña cantidad de retoques funcionará.

Aquí hay un par:


Editar: Mi respuesta le indica cómo configurar un servidor web Mercurial que puede empujar a. Dado que su objetivo es actualizar el servidor web empujando a cabo los cambios, hay otras opciones:

que tienen el mismo tipo de configuración, pero lo que he hecho es la siguiente:

  1. He creado una cuenta en línea en una de las compañías de hosting (yo uso Kiln, pero otras lo harán fácilmente)
  2. Luego configuré el repositorio que configuré allí para hacer ping a mi servidor web cada vez que lo ingresaba al repositorio. Básicamente, cuando presiono, el servidor de Kiln invocará una secuencia de comandos cgi en mi propio servidor con información
  3. Ese script cgi que se hace ping entonces ejecuta un comando normal hg pull -u en un clon local, y luego un ROBOCOPY a reflejar todo (excepto algunos archivos de depuración, y el directorio .hg) en la carpeta principal del sitio web

Esto significa que:

  1. no tengo para acoger mis propios repositorios
  2. hago No es necesario pasar por la molestia de configurar mi propio Mercurial/Git s erver
  3. No necesito para manejar (es decir: se preocupan por) la seguridad de que la instalación
  4. todavía consigo push-to-update-web funcionalidad
+0

Pregunta: ¿Sus pasos son para instalar y ejecutar Mercurial como Web? Todo lo que quería era hacer que un sitio web público que estaba alojando en ese servidor fuera un repositorio, así que desde mi computadora puedo 'enviar 'mis commits y actualizar la aplicación web ... como FTP, pero usando Hg/Git. – balexandre

+0

Sí, necesita instalar y ejecutar el script de la aplicación cgi del servidor web de Mercurial para hacer esto (para Mercurial). No sé qué haría por Git. –

+0

Editaré la respuesta con otra opción. –

1

Si su ssh se ejecutan en el servidor, puede usar mercurial y git con sus protocolos ssh.

Puede incluso crear repositorios en el servidor de esa manera:

hg clone ~/myrepo ssh://[email protected]/hg/clone 
+0

que podría ser la ruta, leeré más sobre los protocolos SSH y veré cómo puedo habilitar eso en mi servidor remoto. – balexandre

+0

@balexandre: configuré SSH (el servidor, sshd) en máquinas Windows con Cygwin anteriormente, así que funciona. Sin embargo, no tengo idea de si es adecuado para las máquinas Amazon EC2 Windows (que parece ser lo que estás buscando). Sin embargo, esa es una pregunta aparte. ;) – Macke

0

Se puede utilizar tanto Mercurial y Git para el propósito. Si extrae algo de su computadora, la herramienta copiará los datos nuevos en el servidor remoto.

El problema es que los datos solo se encuentran en el repositorio remoto pero lo quiere en un lugar donde el servidor web puede verlo, es decir, le falta el paso de "actualización" (copie los datos del repositorio en el Sistema de archivos del servidor web).

Para hacer más claro:

  • commit mueve los datos de su sistema de archivos local en su repositorio local.
  • push mueve datos entre repositorios (haciendo caso omiso de lo que hay en el sistema de archivos)
  • update/pull actualiza el sistema de archivos. Tienes que hacer esto en tu servidor web.

Mi sugerencia es escribir un pequeño script que se ejecuta hg update o git pull cada hora o así. Instale ese script como una tarea en Windows.

+0

Todavía estoy haciendo la lluvia de ideas primero, así que puedo verificar qué pasos hacer para que mi repositorio sea "Accesible y Pushable", pero es una buena idea para cuando esté en el punto de implementación. Thxs. – balexandre

Cuestiones relacionadas