http://eswow2.start-zone.net/./viewtopic.php?f=4&t=126&p=542#p542
-----------------------------------
Mrbytes
Jue 22 Dic, 2011 18:37

CREA TU PROPIO REPOSITORIO [MERCURIAL]
-----------------------------------
[align=center][size=16][color=red][b]CREA TU PROPIO REPOSITORIO [MERCURIAL][/b][/color][/size][/align]

[align=center][size=16][b][color=black]Prólogo[/color][/b][/size][/align]

[align=justify]    Tengo la total certeza, de que la mayoría de la gente que pulula por aquí, o son DEV’s o son admin de server con emuladores, y casi seguro que muchos tienen sus repos en server ajenos por no saber como hacerse uno, o cuando menos les gustaría tener uno donde guardar de manera privada sus desarrollos.[/align]
[align=justify]    Que hubiese dado yo, por haber encontrado en mis búsquedas a los largo y ancho de esta red, con alguien que me hubiese explicado como hacerlo, pero no, solo he encontrado un montón de especialistas en el “copy/paste”, que no son capaces de responder a las dudas o problemas que le surge a la gente, cuando llevan a cabo sus “copy/paste”, con ello solo demuestran su arrogancia, y en la ignorarían en la que se columpian.[/align]
[align=justify]    Que suerte vas tener “mamón” que has dado con el sitio y la persona que te va a enseñar como hacerlo, (ya me hubiese gustado tener esa suerte).[/align]

[align=center][size=16][b][color=black]Introducción[/color][/b][/size][/align]

[align=justify]    En este tutorial voy ha explicar como crear un repositorio de Mercurial HG con soporte SSL en un servidor privado, direccionado a la misma raíz del servidor WEB que tengamos del tipo Apache o similares (con el mod_ssl instalado), ejemplo:
[color=blue](https://www.tuwebsite.com/[color=red]hg[/color]/tu_repositorio)[/color]
Y no en uno virtual del tipo
[color=blue](https://www.[color=red]hg[/color].tuwebsite.com/tu_repositorio)[/color]
Ya que este ultimo es más complicado direccionar si tienes IP dinámica y lo quieres hacer público con un servicio del tipo Dyndns, pues dichos servicios, cuando son gratuitos, no te permiten direccionar subdominios a no ser que pases por caja. Aclarado esto, he de decir que si lo quieres en uno virtual (subdominio), la mayoría de los “tutos” que hay en la red explican llegado al apartado de la configuración de Apache, como hacerlo, (y a lo demás no le prestes caso si no quieres liarte) no difiere mucho de lo que vamos a hacer. Dicho esto, verás que en este tutorial explico como hacerlo en un CentOS 5.5, pero hacerlo en un Debían o en un Open Suse lleva el mismo proceso, solo tienes que cambiar ciertos comandos por los correspondientes a tu "distro".[/align]

Para levantarlo he usado los siguientes paquetes:
[cell class=spoiler][color=blue]Python 2.7.2
SQLite3
PyPi Setup Tools 0.6c11
mod_wsgi 3.3
Docutils 0.8.1
Mercurial 2.0[/color][/cell]

En primer lugar descargar todos los archivos mencionados anteriormente en la carpeta [color=black][b][i]/usr/local/src[/i][/b][/color]

[code linenumbers=false]cd /usr/local/src
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz
wget http://www.sqlite.org/sqlite-autoconf-3070800.tar.gz
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz
wget http://prdownloads.sourceforge.net/docutils/docutils-0.8.1.tar.gz
wget http://mercurial.selenic.com/release/mercurial-2.0.tar.gz
[/code]

Los descomprimimos u_n_o por u_n_o:

[code linenumbers=false]tar zxf Python-2.7.2.tgz
tar zxf sqlite-autoconf-3070800.tar.gz
tar zxf mod_wsgi-3.3.tar.gz
tar zxf docutils-0.8.1.tar.gz
tar zxf mercurial-2.0.tar.gz
[/code]

[size=14][b][color=black]Instalamos dependencias:[/color][/b][/size]

[align=justify]Es posible que necesites algunas dependencias, y otras ya las tengas, así que no te preocupes, si ya las tienes, no las instalará, pero por si acaso…[/align]

[code linenumbers=false]yum -y install gcc gdbm-devel readline-devel ncurses-devel zlib-devel bzip2-devel sqlite-devel db4-devel openssl-devel tk-devel bluez-libs-devel make
[/code]

[align=center][size=16][b][color=black]Instalación de los paquetes[/color][/b][/size][/align]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[align=center][cell class=spoiler]Recuerda que las fuentes las tenemos en [color=black][b][i]/usr/local/src[/i][/b][/color][/cell][/align]

[size=14][b][color=red]SQLite3:[/color][/b][/size]

Montar e instalar:

[code linenumbers=false]cd sqlite-autoconf-3070800
./configure
make
make install
cd ..
[/code]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]Python:[/color][/b][/size]

[align=justify]CentOS 5.5 viene con Python 2.4, que va bien con antiguas revisiones de Mercurial, pero no para la 2.0, con esta, hay que usar Python 2.7.[/align]
[align=justify]Ahora explicaré cómo instalar Python 2.7 junto al 2,4 existente (seria un lio desinstalar este ultimo debido a la enorme cantidad de dependencias que tiene - yum, por ejemplo). En cualquiera de las otras “distro” es posible que lo tengas así que te aconsejo si es así, que siguas estas instrucciones y no lo desinstales si no quieres verte en un lio de dependencias como te he dicho.[/align]

Montar e instalar:

[code linenumbers=false]cd Python-2.7.2
./configure --prefix=/opt/python2.7.2 --with-threads --enable-shared
make
make install
cd ..
[/code]

[align=justify]Dependiendo de tu “distro” (en mi caso me ocurrió), casi al final de la instalación es posible que leas este mensaje:[/align]

[cell class=spoiler]Python build finished, but the necessary bits to build these modules were not found:
bsddb185 dl imageop
sunaudiodev
[/cell]

[align=justify]No te preocupes, Python ha sido montado con éxito, ese mensaje dice que esos módulos no serán soportados (porque no los tienes), pero para nuestros propósitos (y además de que no corrompa nada por tenerlos), son innecesarios e obsoletos.[/align]
[align=justify]Seguidamente necesitamos decirle al [b][i]ld[/i] [/b]donde encontrar nuestras librerias compartidas de Python 2.7:[/align]

[code linenumbers=false]touch /etc/ld.so.conf.d/opt-python2.7.2.conf
echo "/opt/python2.7.2/lib/" >> /etc/ld.so.conf.d/opt-python2.7.2.conf
ldconfig
[/code]

Ahora creamos un enlace a Python 2.7 en [b][i]/usr/bin[/i][/b] y arreglarmos nuestro [b][i]bash_profile[/i][/b] para usar Python 2.7:

[code linenumbers=false]ln -sf /opt/python2.7.2/bin/python /usr/bin/python2.7
echo "alias python=/opt/python2.7.2/bin/python" >> ~/.bash_profile
echo "alias python2.7=/opt/python2.7.2/bin/python" >> ~/.bash_profile
echo "PATH=$PATH:/opt/python2.7.2/bin" >> ~/.bash_profile
source ~/.bash_profile
[/code]

Si todo ha salido bien, deberías ver lo siguiente al lanzar Python:

[cell class=spoiler]Python 2.7.2 (default, Oct 21 2011, 10:46:56)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
[/cell]

Pulsa Ctrl + D para salir hacia el interprete de comandos.
[align=justify]Seguidamente cambiaremos la codificación que python trae por defecto (ascii) para así no tener problemas con la representación de acentos y la “ñ”, se puede comprobar la te tiene de la siguiente forma al lanzar python:[/align]

[cell class=spoiler]python
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
[/cell]

Pulsa Ctrl + D para salir hacia el interprete de comandos.
[align=justify]Para modificar la codificación, simplemente crea un fichero llamado [i][b]“sitecustomize.py”[/b][/i] dentro de la carpeta [i][b]“site-packages”[/b][/i] de python 2.7 (en mi instalación estaba en [i][b]/opt/python2.7.2/lib/python2.7/site-packages[/b][/i],) y añadimos al fichero el siguiente contenido:[/align]

[code linenumbers=false]import sys
sys.setdefaultencoding('iso-8859-15')
[/code]

Con esto hemos terminado con Python

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]PyPi, pip, virtualenv (opcional):[/color][/b][/size]

[align=justify]Aunque no es de obligada instalación, estos son para darle más “consistencia” al entorno de desarrollo Python, seguimos en  [i][b]/usr/local/src[/b][/i], si no es así cambiamos.[/align]

[code linenumbers=false]cd /usr/local/src
sh setuptools-0.6c11-py2.7.egg --prefix=/opt/python2.7.2
/opt/python2.7.2/bin/easy_install pip
ln -sf /opt/python2.7.2/bin/pip /usr/bin/pip
pip install virtualenv
ln -sf /opt/python2.7.2/bin/virtualenv /usr/bin/virtualenv
[/code]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]Docutils:[/color][/b][/size]

[align=justify]Mercurial necesita Docutils. Cuando se instale por primera vez tenemos que llamar explícitamente a python 2.7 para asegurarnos de que Docutils se instala en [color=red][i][b]/opt/python2.7.2[/b][/i][/color], y no en el directorio por defecto de Python 2.4, que teníamos.[/align]

[code linenumbers=false]cd docutils-0.8.1
python2.7 setup.py install
cd ..
[/code]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]Mercurial:[/color][/b][/size]

Nos metemos en el directorio donde descomprimimos Mercurial, y lo montamos e instalamos

[code linenumbers=false]cd mercurial-2.0
make PYTHON=/opt/python2.7.2/bin/python PREFIX=/opt/python2.7.2 all
make PYTHON=/opt/python2.7.2/bin/python PREFIX=/opt/python2.7.2 install
cd ..
[/code]

[align=justify]Observa que con make, he puesto los argumentos [i][b]PYTHON=/opt/python2.7.2/bin/python y PREFIX=/opt/python2.7.2[/b][/i] para asegurarme de que mercurial será montado con Python 2.7 y se instala en el sitio correcto, en la carpeta “[i][b]site-packages[/b][/i]”.[/align]
Ahora teclea [i][b]hg versión[/b][/i] y pulsa intro, si todo ha salido bien veremos el siguiente mensaje:

[cell class=spoiler]Mercurial Distributed SCM (version 2.0) 
(see http://mercurial.selenic.com for more information)

Copyright (C) 2005-2011 Matt Mackall and others
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[/cell]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]mod_wsgi:[/color][/b][/size]

[align=justify]Para montar el mod_wsgi es necesario asegurarse de que el paquete [i][b]httpd-devel[/b][/i] está instalado, (asumiendo de que tienes apache instalado), este seria el comando para instalarlo:[/align]

[code linenumbers=false]yum install httpd-devel
[/code]

[align=justify]A continuación montamos el mod y nos aseguramos de que se haga con python 2.7 (recuerda que seguimos en [i][b]/usr/local/src[/b][/i])[/align]

[code linenumbers=false]cd mod_wsgi-3.3
./configure --with-python=/opt/python2.7.2/bin/python
make
make install
[/code]

[align=justify]Tras esto, si todo está correcto, deberíamos ver el mod_wsgi.so en la carpeta de módulos de apache, con el siguiente comando:[/align]

[code linenumbers=false]ll /usr/lib/httpd/modules/mod_wsgi.so
[/code]

Nos responderá lo siguiente:

[cell class=spoiler]-rwxr-xr-x 1 root root 303801 nov 12 15:15 [color=darkgreen]/usr/lib/httpd/modules/mod_wsgi.so[/color][/cell]

[align=justify]Bueno, ya tenemos instaladas todas las herramientas necesarias para que Mercurial pueda funcionar de forma correcta, ahora pasaremos a la configuración de estas para crear un repositorio operativo.[/align]

[align=center][size=16][b][color=black]Configuración del Servidor[/color][/b][/size][/align]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]Configurando Mercurial + mod_wsgi:[/color][/b][/size]

[align=justify]Vamos a crear los directorios donde almacenaremos el repositorio y los archivos de configuración de este. Estos directorios no los crearemos en la raíz del servidor web, sino en la carpeta [i][b]var[/b][/i], Apache, configurándolo para que haga uso de este mod, será el que se encargue en re-direccionarlos como si estuviesen en dicha raíz.[/align]

[code linenumbers=false]mkdir -p /var/hg/repositorios
mkdir -p /var/hg/cgi-bin
[/code]

[align=justify]Ahora copiamos el script de [i][b]hgwed[/b][/i] que más adelante usaremos con apache (ahora no lo tocamos), este se encuentra en donde descomprimimos los archivos de mercurial, dentro de la carpeta [i][b]/contrib/[/b][/i], nos lo copiamos en la carpeta de documentos del repositorio [i][b]/cgi-bin/[/b][/i] , con la siguiente orden:[/align]

[code linenumbers=false]cp /usr/local/src/mercurial-2.0/contrib/hgweb.wsgi /var/hg/cgi-bin
[/code]
Seguidamente creamos el archivo de configuración del repositorio llamándolo [i][b]hgweb.config[/b][/i]

[code linenumbers=false]touch /var/hg/hgweb.config
[/code]
[align=justify]Lo editamos, con el editor que usemos, en mi caso usé el que trae [color=red][b]WinSCP [/b][/color](doble click al archivo en cuestión), os recuerdo que con [color=red][b]wine[/b][/color], podemos ejecutar esta útil aplicación de Windows, en un Linux, lo editamos, e introducimos lo siguiente (incluidos los “tips” que he puesto):[/align]
[code linenumbers=false][web]
#Indicamos la codificación por defecto
encoding = ISO-8859-15
#Aquí deberemos poner los user que tienen permiso de escritura en nuestro repo,
#separados por comas [Cambia el asterisco por el nombre]
allow_push=*
#Si es necesario “pushear” con encriptación SSL, True, sino false
push_ssl=True

[paths]
#Ruta de nuestro repositorio [Cambia los asteriscos por el nombre]
* = /var/hg/repositorios/*
[/code]
[align=justify]Guárdalo, recuerda que [color=red][b]este es el archivo de configuración de permisos de escritura en nuestro repo[/b][/color], que siempre tendremos que editarlo para añadir un usuario con acceso de escritura, si no lo hacemos, sólo podrá leerlo, aunque se halla autentificado, porque te recuerdo que el repo que estamos creando no es público, y [color=red][b]Mercurial lleva por defecto deshabilitada la opción de escritura[/b][/color].[/align]
[align=justify]Ahora debemos crear el archivo de credenciales del repositorio, en dicho archivo se guardarán las credenciales de todos los usuarios que demos de alta en el repositorio:[/align]
[code linenumbers=false]touch /var/hg/passwd.dav
[/code]
[align=justify]Damos permisos a las carpetas que hemos creado, y a su contenido, para que los usuarios que se acrediten en apache tengan permisos de acceso a dichas carpetas:[/align]
[code linenumbers=false]chown -R apache:apache /var/hg
[/code]
Ahora reiniciamos Apache para que tome los cambios que hemos hecho

[code linenumbers=false]service httpd restart
[/code]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]Configurando Apache + mod_wsgi + ssl:[/color][/b][/size]

[align=justify]Manos a la obra; editamos el archivo de configuración de apache  [i][b][color=red]httpd.conf[/color] [/b][/i]con el editor que usamos antes. El mencionado archivo en mi CentOS 5 se encuentra en [i][b]/etc/httpd/conf [/b][/i],y justo al final de las lista de módulos que carga añadimos:[/align]
[code linenumbers=false]#
#Config mod_wsgi
#
LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonHome /opt/python2.7.2
[/code]
[align=justify]Con la última línea nos aseguramos de que Apache usará para el mod_wsgi lo versión de Python correcta.[/align]
[align=justify]Seguidamente editamos el archivo de configuración del servidor ssl, [i][b][color=red]ssl.conf[/color] [/b][/i]este, en CentOS 5  se encuentra en [i][b]/etc/httpd/conf.d[/b][/i]  y justo antes del comando que habilita el servidor ssl insertamos las siguientes líneas:[/align]
[code linenumbers=false]WSGIScriptAlias /hg /var/hg/cgi-bin/hgweb.wsgi 
  
<Directory /var/hg/cgi-bin>  
                Options ExecCGI   
                AddHandler wsgi-script .wsgi  
                AllowOverride None  
                Order allow,deny  
                Allow from all
           DAV On
           AuthType Basic
           AuthName "Repositorio Mercurial"
           AuthUserFile /var/hg/passwd.dav
           Require valid-user  
</Directory>
[/code]
Como he dicho antes del siguiente comando que debemos activar:
[cell class=spoiler]#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine [color=red][b]on[/b][/color]
[/cell]
[align=center][cell class=spoiler][color=blue][b]Os recuerdo que nuestro router (si es que lo hacemos tras un router), debe tener direccionado el [color=red]puerto 443 tcp[/color], a la IP que tengamos en nuestro servidor ssl, ya que dicho puerto es el que por defecto [color=red]usará Apache para le protocolo https[/color].[/b][/color]
[/cell][/align]
Volvemos a reiniciar Apache para que acepte los cambios que hemos hecho
[code linenumbers=false]service httpd restart
[/code]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[size=14][b][color=red]Configurando el scritp del  mod_wsgi:[/color][/b][/size]

[align=justify]En el punto [[color=crimson]Configurando Mercurial + mod_wsgi[/color]] hicimos una copia del archivo de configuración hgweb.wsgi de dicho mod en /var/hg/cgi-bin, ahora toca editarlo para configurar el mod.[/align]
Cámbiate a dicho directorio si no estas en el
[code linenumbers=false]cd /var/hg
[/code]
Al edítalo, en dicho archivo por defecto se encuentran esto:
[cell class=spoiler]# An example WSGI for use with mod_wsgi, edit as necessary
# See http://mercurial.selenic.com/wiki/modwsgi for more information

# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/path/to/repo/or/config"

# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")

# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()

# enable demandloading to reduce startup time
from mercurial import demandimport; demandimport.enable()

from mercurial.hgweb import hgweb
application = hgweb(config)
[/cell]
Lo vamos a dejar de la siguiente forma:
[code linenumbers=false]# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "/var/hg/hgweb.config"

# Uncomment and adjust if Mercurial is not installed system-wide:
#import sys; sys.path.insert(0, "/path/to/python/lib")

# Uncomment to send python tracebacks to the browser if an error occurs:
#import cgitb; cgitb.enable()

# enable demandloading to reduce startup time
import os
os.environ["HGENCODING"] = "ISO-8859-15"
from mercurial import demandimport; demandimport.enable()

from mercurial.hgweb import hgweb
application = hgweb(config)
[/code]
Lo guardamos y cerramos

[align=center][size=16][b][color=black]CREANDO UN REPOSITORIO[/color][/b][/size][/align]

[align=center][color=brown]....oooO................. 
.....(....)... Oooo....... 
....\..(......(....)..... 
......\_)......)../....... 
..............(_/........[/color][/align]

[align=justify]Con todo lo hecho hasta ahora ya podemos publicar nuestro repositorio, solo nos queda crearlo, dar los permisos oportunos a la carpeta del repo, y dar de alta algún usuario para que podamos hacer un push para ver si funciona, así que manos a la obra.[/align]
Nos situamos en la carpeta raíz ce los repositorios:
[code linenumbers=false]cd /var/hg/repositorios
[/code]
Creamos la carpeta con el nombre del repositorio:
[code linenumbers=false]mkdir repo_test
[/code]
Nos metemos en ella
[code linenumbers=false]cd repo_test
[/code]
Iniciamos el repositorio con HG
[code linenumbers=false]hg init
[/code]
[align=justify]Editamos el archivo [i][b]/var/hg/hgweb.config[/b][/i] localizamos el enunciado donde ponemos el nombre del repo que hemos creado:[/align]
[cell class=spoiler][paths]
#Ruta de nuestro repositorio 
#[cambia los asteriscos por el nombre]
[color=red][b]*[/b][/color] = /var/hg/repositorios/[color=red][b]*[/b][/color]
[/cell]
Cambiamos los asteriscos por el repositorio de prueba que hemos hecho:
[cell class=spoiler][color=red][b]repo_test [/b][/color]= /var/hg/repositorios/[color=red][b]repo_test[/b][/color]
[/cell]
[align=justify]Ahora es necesario asegurarse de que los usuarios que se autentifiquen en el servidor Apache, puedan acceder al repositorio. En CentOS esto se hace del siguiente modo, creo que en las demás “distros” diferirá poco.[/align]
[code linenumbers=false]chown -R apache:apache /var/hg/repositorios
chmod -R g+rw /var/hg/repositorios
[/code]
Seguidamente, crearemos un usuario con acceso de lectura en el repo con el siguiente comando, [align=justify][color=red][b]recuerda que esto que te describo, es el método que hay que seguir para dar de alta a un usuario siempre[/b][/color]:[/align]
[code linenumbers=false]htpasswd /var/hg/passwd.dav nombre-usuario
[/code]Ahora nos pedirá el password…, y que lo repitas.

[align=justify]Bueno, pues ahora si en la barra de nuestro navegador, escribiéramos [color=blue][b]https://www.tuwebsite.com/hg/repo_test [/b][/color] nos saldrá, primero un aviso del navegador diciendo que el site no está autentificado, cosa que ya sabemos porque es nuestro, y que si queremos continuar, a lo cual contestamos que si, entonces nos saltará la ventana de credenciales, que es donde debemos escribir el nombre de usuario y contraseña que acabamos de crear, para a continuación ver nuestro repositorio de Mercurial en la carpeta que hemos creado, dentro como es lógico no habrá nada, aún.[/align]
[align=justify]Procedemos a crear un clon de nuestro flamante repo, usando por ejemplo el [color=red][b]TortoiseHG[/b][/color] que es el que suelo usar, creo que si te has metido en estos “berenjenales” ya sabes como se hace un clon.[/align]
TIPS:[cell class=spoiler]Si pones en TortoiseHG la dirección que tienes en el navegador precedida de tu nombre con un @ , o sea,  https://nombre-usuario@tuwebsite.com/hg/repo_test solo te pedirá el password cuando hagas push.[/cell]
[align=justify]Vamos a comprobar que funciona el push, claro está. Primero debemos autorizar el “pusheo” a este usuario, que si te acuerdas, te señalé donde teníamos que meter los usuarios con acceso de escritura al repo.[/align]
[align=justify]Editamos de nuevo [i][b]/var/hg/hgweb.config [/b][/i]y localizamos la línea donde dábamos permisos de escritura:[/align]
[cell class=spoiler]#Aquí deberemos poner los user que tienen permiso de escritura en nuestro repo, separados por comas
#[cambia el asterisco por el nombre]
allow_push=[color=red][b]*[/b][/color]
[/cell]
[align=justify]Pues eso cambia el asterisco por el nombre del usuario que le queremos dar permiso de escritura. Guárdalo, y ahora probemos hacer un commit en nuestro repo, metemos un archivo cualquiera dentro de la carpeta que hallamos creado para el clon y procedamos, (es solo para probar, así que crea un archivo de texto vacío y llámalo test.txt), ahora lanza el sincronizador y haces el push. TortoiseHG solo nos pedirá nuestro password y lo subirá al repo, si todo funciona correctamente, y nos dirigimos de nuevo a la dirección de repo, debemos ver nuestro commit.[/align]
[align=justify]Con esto ya tenemos funcional un Mercurial que ya quisieran las web’s de pago que pululan por la red tenerlo.[/align]

[center][color=black]█║▌│█│║▌║││█║▌│║║█║[/color]
® [color=blue]Mrbytes to Eswow2 2011[/color][/center]


