nike - mercurial svn
Cómo clonar el repositorio a un servidor/repositorio remoto con Mercurial (3)
Me encontré bastante confundido hoy sobre esto.
Creo un repositorio en blanco localmente (hg init), lo cloné a una copia de trabajo, agregué un código, lo comprometí y lo empujé (a un repositorio local, obviamente).
Ahora necesito compartir ese repositorio con otros. Hay un servidor que tiene mercurio en él, ¿cómo puedo clonar mi repositorio a uno remoto para que otros desarrolladores puedan acceder a él y extraer / empujar el código desde / hacia él?
Para aquellos que vengan más tarde y no quieran preocuparse por las molestias de ssh por enviar cambios a un servidor creado para los repositorios del host, puede simplemente iniciar en el servidor y luego presionar como lo hace con cualquier otro repositorio.
# on server:
cd repos/
mkdir myrepo
cd myrepo
hg init
cd ..
chown -R apache:apache myrepo
cd ..
vim hgweb.config
# change [paths]
[paths]
myrepo = /path/to/myrepo
# on your machine
# make sure you''ve configured hgrc correctly
[paths]
default = http://server/hg/repos/myrepo
hg push
# ???
# profit
Querrá consultar la página wiki de los repositorios de publicación para acceder a las interfaces web y los controles de acceso, pero en lo más básico puede hacer algo como esto:
hg clone yourlocalrepo ssh://you@server//home/you/repo
Eso clona su repositorio local a una ubicación remota de su elección. Tenga en cuenta que hay dos barras dobles en esa URL.
No puede crear un repositorio remoto como ese usando http: //, solo ssh: //. Si todo lo que tienes es http a hgweb.cgi, puedes ''hg init'' un repositorio vacío en el servidor y luego hg.
Si sus repositorios "oficiales" son atendidos por un servidor HTTP, y desea crear un repositorio en la ubicación central basado en el repositorio de una máquina local, aquí hay una manera. Necesitas derechos de administrador en el servidor central para hacer esto.
por ejemplo, estoy desarrollando en Windows, y mi repositorio central se ejecuta en Linux y está servido por lighttpd según la guía oficial . El directorio central del servidor es /var/hg/repos/
, propiedad del usuario / grupo www-data
. La IP de mi máquina local es 10.1.10.100, y el repositorio que quiero clonar se llama foo.
- En la máquina local, abra un símbolo del sistema en el directorio del repositorio y escriba
hg serve
. Esto ejecuta el servidor web hg local, que permitirá que el servidor extraiga de él. - ssh en el servidor de repositorio central, iniciando sesión como usuario con derechos sudo para www-data.
-
cd /var/hg/repos
-
sudo -u www-data hg clone http://10.1.10.100 foo