Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
CREA TU PROPIO REPOSITORIO [MERCURIAL]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje CREA TU PROPIO REPOSITORIO [MERCURIAL] 
 
CREA TU PROPIO REPOSITORIO [MERCURIAL]


Prólogo


    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.

    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.

    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).


Introducción


    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:
(https://www.tuwebsite.com/hg/tu_repositorio)
Y no en uno virtual del tipo
(https://www.hg.tuwebsite.com/tu_repositorio)
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".


Para levantarlo he usado los siguientes paquetes:
Python 2.7.2
SQLite3
PyPi Setup Tools 0.6c11
mod_wsgi 3.3
Docutils 0.8.1
Mercurial 2.0


En primer lugar descargar todos los archivos mencionados anteriormente en la carpeta /usr/local/src

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


Los descomprimimos u_n_o por u_n_o:

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


Instalamos dependencias:

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…


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


Instalación de los paquetes


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Recuerda que las fuentes las tenemos en /usr/local/src


SQLite3:

Montar e instalar:

cd sqlite-autoconf-3070800
./configure
make
make install
cd ..


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Python:

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.

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.


Montar e instalar:

cd Python-2.7.2
./configure --prefix=/opt/python2.7.2 --with-threads --enable-shared
make
make install
cd ..


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


Python build finished, but the necessary bits to build these modules were not found:
bsddb185 dl imageop
sunaudiodev


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.

Seguidamente necesitamos decirle al ld donde encontrar nuestras librerias compartidas de Python 2.7:


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


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

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


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

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.


Pulsa Ctrl + D para salir hacia el interprete de comandos.
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:


python
>>> import sys
>>> sys.getdefaultencoding()
'ascii'


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


import sys
sys.setdefaultencoding('iso-8859-15')


Con esto hemos terminado con Python

....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


PyPi, pip, virtualenv (opcional):

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


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


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Docutils:

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 /opt/python2.7.2, y no en el directorio por defecto de Python 2.4, que teníamos.


cd docutils-0.8.1
python2.7 setup.py install
cd ..


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Mercurial:

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

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 ..


Observa que con make, he puesto los argumentos PYTHON=/opt/python2.7.2/bin/python y PREFIX=/opt/python2.7.2 para asegurarme de que mercurial será montado con Python 2.7 y se instala en el sitio correcto, en la carpeta “site-packages”.

Ahora teclea hg versión y pulsa intro, si todo ha salido bien veremos el siguiente mensaje:

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.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


mod_wsgi:

Para montar el mod_wsgi es necesario asegurarse de que el paquete httpd-devel está instalado, (asumiendo de que tienes apache instalado), este seria el comando para instalarlo:


yum install httpd-devel


A continuación montamos el mod y nos aseguramos de que se haga con python 2.7 (recuerda que seguimos en /usr/local/src)


cd mod_wsgi-3.3
./configure --with-python=/opt/python2.7.2/bin/python
make
make install


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:


ll /usr/lib/httpd/modules/mod_wsgi.so


Nos responderá lo siguiente:

-rwxr-xr-x 1 root root 303801 nov 12 15:15 /usr/lib/httpd/modules/mod_wsgi.so


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.


Configuración del Servidor


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Configurando Mercurial + mod_wsgi:

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 var, 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.


mkdir -p /var/hg/repositorios
mkdir -p /var/hg/cgi-bin


Ahora copiamos el script de hgwed 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 /contrib/, nos lo copiamos en la carpeta de documentos del repositorio /cgi-bin/ , con la siguiente orden:


cp /usr/local/src/mercurial-2.0/contrib/hgweb.wsgi /var/hg/cgi-bin

Seguidamente creamos el archivo de configuración del repositorio llamándolo hgweb.config

touch /var/hg/hgweb.config

Lo editamos, con el editor que usemos, en mi caso usé el que trae WinSCP (doble click al archivo en cuestión), os recuerdo que con wine, podemos ejecutar esta útil aplicación de Windows, en un Linux, lo editamos, e introducimos lo siguiente (incluidos los “tips” que he puesto):

[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/*

Guárdalo, recuerda que este es el archivo de configuración de permisos de escritura en nuestro repo, 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 Mercurial lleva por defecto deshabilitada la opción de escritura.

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:

touch /var/hg/passwd.dav

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:

chown -R apache:apache /var/hg

Ahora reiniciamos Apache para que tome los cambios que hemos hecho

service httpd restart


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Configurando Apache + mod_wsgi + ssl:

Manos a la obra; editamos el archivo de configuración de apache  httpd.conf con el editor que usamos antes. El mencionado archivo en mi CentOS 5 se encuentra en /etc/httpd/conf ,y justo al final de las lista de módulos que carga añadimos:

#
#Config mod_wsgi
#
LoadModule wsgi_module modules/mod_wsgi.so
WSGIPythonHome /opt/python2.7.2

Con la última línea nos aseguramos de que Apache usará para el mod_wsgi lo versión de Python correcta.

Seguidamente editamos el archivo de configuración del servidor ssl, ssl.conf este, en CentOS 5  se encuentra en /etc/httpd/conf.d  y justo antes del comando que habilita el servidor ssl insertamos las siguientes líneas:

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>

Como he dicho antes del siguiente comando que debemos activar:
#   SSL Engine Switch:
#   Enable/Disable SSL for this virtual host.
SSLEngine on

Os recuerdo que nuestro router (si es que lo hacemos tras un router), debe tener direccionado el puerto 443 tcp, a la IP que tengamos en nuestro servidor ssl, ya que dicho puerto es el que por defecto usará Apache para le protocolo https.

Volvemos a reiniciar Apache para que acepte los cambios que hemos hecho
service httpd restart


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Configurando el scritp del  mod_wsgi:

En el punto [Configurando Mercurial + mod_wsgi] 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.

Cámbiate a dicho directorio si no estas en el
cd /var/hg

Al edítalo, en dicho archivo por defecto se encuentran esto:
# 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)

Lo vamos a dejar de la siguiente forma:
# 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)

Lo guardamos y cerramos

CREANDO UN REPOSITORIO


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


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.

Nos situamos en la carpeta raíz ce los repositorios:
cd /var/hg/repositorios

Creamos la carpeta con el nombre del repositorio:
mkdir repo_test

Nos metemos en ella
cd repo_test

Iniciamos el repositorio con HG
hg init

Editamos el archivo /var/hg/hgweb.config localizamos el enunciado donde ponemos el nombre del repo que hemos creado:

[paths]
#Ruta de nuestro repositorio
#[cambia los asteriscos por el nombre]
* = /var/hg/repositorios/*

Cambiamos los asteriscos por el repositorio de prueba que hemos hecho:
repo_test = /var/hg/repositorios/repo_test

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.

chown -R apache:apache /var/hg/repositorios
chmod -R g+rw /var/hg/repositorios

Seguidamente, crearemos un usuario con acceso de lectura en el repo con el siguiente comando,
recuerda que esto que te describo, es el método que hay que seguir para dar de alta a un usuario siempre:

htpasswd /var/hg/passwd.dav nombre-usuario
Ahora nos pedirá el password…, y que lo repitas.

Bueno, pues ahora si en la barra de nuestro navegador, escribiéramos https://www.tuwebsite.com/hg/repo_test 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.

Procedemos a crear un clon de nuestro flamante repo, usando por ejemplo el TortoiseHG que es el que suelo usar, creo que si te has metido en estos “berenjenales” ya sabes como se hace un clon.

TIPS:
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.

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.

Editamos de nuevo /var/hg/hgweb.config y localizamos la línea donde dábamos permisos de escritura:

#Aquí deberemos poner los user que tienen permiso de escritura en nuestro repo, separados por comas
#[cambia el asterisco por el nombre]
allow_push=*

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.

Con esto ya tenemos funcional un Mercurial que ya quisieran las web’s de pago que pululan por la red tenerlo.


█║▌│█│║▌║││█║▌│║║█║
® Mrbytes to Eswow2 2011

 





base_firma_1307660037_676725

¡Como no sabía que era imposible, lo hice!
 
última edición por Mrbytes el Mar 25 Sep, 2012 01:45; editado 8 veces 
Editado por Mrbytes, Vie 23 Dic, 2011 21:12: Eliminado del script hgweb.config>baseurl=/hg<es obsoleto
Mrbytes - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: CREA TU PROPIO REPOSITORIO [MERCURIAL] 
 
ADMINISTRADOR DE REPOSITORIOS [MERCURIAL]


Introducción


    Después de crear mi primer repo, me di cuenta de algo evidente, la forma tan antediluviana que tiene para configurarlo, a base de teclear en el terminal, o de telnet, así que me dispuse a buscar por la red, a ver si alguna criatura había tenido la maravillosa idea de crear una utilidad que hiciese menos tediosa la labor de administrar el servidor, y de crear repositorios.

    Pues la encontré, un “alma caritativa”  llamado Josh Carrier, la creó halla por el 2010, aquí teneis su repositorio, por si queréis “trastear” la utilidad, en su ingles nativo, desde aquí quiero volver a darle las gracias por esa manera tan desinteresada de regalarnos su tiempo y trabajo, ya que es totalmente gratuita, y el hombre no pide ni siquiera donaciones por su trabajo.

    ¿En ingles?, que menos que traducirla al Español, como no podía ser menos para un DEV de EsWoW2, y eso he hecho, así que la que yo os facilito, no es la misma que hay en su repo, pues aparte de la traducción, hay otras “cosillas” que he modificado, para adaptarlo al mercurial 2.

    De mis tribulaciones con ella, no os voy a contar porque llenaría otro post como el anterior. Es por ello que hay cosas del proceso de configuración que no entraré en detalle de porqué son así, ya que además, ni es el momento, ni esta WEB está dedicada a dar soporte de desarrollo WEB.

    Si quiero informaros, que el proceso de configuración que voy a explicar es para que dicha utilidad resida en la misma raíz del servidor Mercurial de nuestros repos (que no en la de Apache como  en el caso anterior), y que además soporte el protocolo SSL, para tener unas mínimas garantías de seguridad, como es lógico, como ya he apuntado, la configuración toma como referencia el tutorial anterior, así que si el vuestro reside en otro sistema de carpetas, debéis modificar todos aquellos enunciados que apunten a carpetas, como es evidente.

    Por cierto, que este es el único tutorial de la red que explica como hacer esto, ¡PRIMICIA!


Instalación de PHPHGADMIN


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Como siempre nuestras fuentes las vamos a descargar en /usr/local/src, así que procedemos a su descarga.

cd /usr/local/src
wget http://eswow2.start-zone.net/files/admin.tar.gz

Lo descomprimimos y lo movemos a la carpeta raíz del servidor Mercurial.

tar zxf admin.tar.gz
mv -r /usr/local/src/admin /var/hg


Configuración de PHPHGADMIN


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Aviso:
Es muy importante no lanzar la utilidad, hasta que no culmines el proceso de configuración

PHPHGADMIN, usa la carpeta /var/hg/admin/lock como cache de búsquedas, y de trabajo temporal, así que debemos dar permisos de escritura a esa carpeta, a Apache, y a su grupo, para que el usuario identificado pueda escribir en ella:

chown -R apache:apache /var/hg/admin/lock
chmod -R g+rw /var/hg/admin/lock

Ahora toca editar el archivo de configuración de la utilidad, con objeto de meter en el las rutas de archivos y carpetas relacionadas con esta utilidad, localizamos el archivo phphgadmin.php que se encontrará, en esta instalación, dentro de: /var/hg/admin/application/config. Localizamos en el los siguientes enunciados y en ellos pondremos los datos relativos a nuestra instalación:

Ruta completa que pondríamos en el explorador para lanzar la utilidad:
/*
 * Full URl to phpHgAdmin
 */
$config['base_url']    = "https://www.tuwebsite.com/hg/admin/";


Dentro de la sección [Mercurial Profiles], introduciremos:
Nombre que le daremos al Perfil por defecto:
$config['default_profile'] = 'default';
Te aviso de que si cambias 'default' por cualquier otro, en los enunciados de abajo debes sustituir también dicho nombre.


Localización del archivo de configuración de Repositorios dentro del servidor Mercurial, en nuestro caso es:
$config['profile']['default']['ini'] = '/var/hg/hgweb.config';

Ruta de la carpeta que contiene los Repositorios:
$config['profile']['default']['default_repo_dir'] = '/var/hg/repositorios/';

Dirección WED del servidor Mercurial:
$config['profile']['default']['hgserve_url'] = 'https://www.tuwebsite.com/hg/';
Guárdalo y ciérralo, con esto hemos terminado con este archivo.

....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........

    PHPHGADMIN, hace uso de un archivo .htaccess para configurar ciertas directivas especiales que tiene, y ya que lo tiene, nos vamos a servir de él, para que, además de introducir los parámetros oportunos a nuestra configuración de carpetas, introduzcamos en el, el usuario o usuarios que tienen permisos de administración, está localizado en la raíz de la carpeta /var/hg/admin, así que procedamos.

Lo Editamos y nos encontramos el siguiente contenido:
DirectoryIndex index.php
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ admin/index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ admin/index.php/$1 [L]

Lo dejaremos tal que así:
DirectoryIndex index.php
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ hg/admin/index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ hg/admin/index.php/$1 [L]
AuthType Basic
AuthName "Repositorio Mercurial"
AuthUserFile /var/hg/passwd.dav
Require user
nombre_del_administrador

Como he dicho en la introducción, no voy ha explicaros el porqué de esta configuración, solo quiero matizar dos cosas a tener presente con esta configuración.

  •     Es muy importante que el “realmd ó Zone” como la queráis llamar, [AuthName "Repositorio Mercurial"] coincida en nombre con el que pusimos en el tutorial anterior, con objeto de que no nos pida credenciales, cuando exploremos cualquier repositorio, haciéndolo así, con la primera identificación nos bastará.

  •     En la directiva [Requiere user] los administradores, si hubiese más de uno, deben estar separados por comas, y esta directiva es la única válida para dar permisos de administración en esta utilidad.

Repito:
esta directiva es la única válida para dar permisos de administración en esta utilidad

Como es lógico, no hace falta decir que los administradores, previamente deben haberse dado de alta en el servidor, con el procedimiento que vimos en el anterior tutorial. Esa será la única reminiscencia de configuración, que arrastraremos del anterior tutorial, que sería:

htpasswd /var/hg/passwd.dav nombre-usuario


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Configuración de Apache [SSL]:

Ahora le toca a Apache, editamos el archivo de configuración del servidor ssl, ssl.conf recuerda que en CentOS 5  se encuentra en /etc/httpd/conf.d , e inmediatamente antes de la directiva que lanza el mod_wsgi [WSGIScriptAlias /hg /var/hg/cgi-bin/hgweb.wsgi] introduciremos la siguiente directiva:


Alias /hg/admin /var/hg/admin

<Directory /var/hg/admin>
        AllowOverride All
        Order allow,deny
        Allow from all
</Directory>
Repito:
inmediatamente antes de la directiva que lanza el mod_wsgi [WSGIScriptAlias /hg /var/hg/cgi-bin/hgweb.wsgi]

Guardamos y cerramos el archivo de configuración ssl.conf.

Procedamos a reiniciar Apache, para que este coja todos los cambios que hemos hecho:
service httpd restart

....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Un, dos, tres, Probando...

    PHPHGADMIN, trae una pequeña utilidad, para comprobar que las rutas de carpetas y directorios que hemos introducido en el phphgadmin.php, són correctos cuando lo configuramos, así que procederemos a lanzarla, desde nuestro navegador introduciendo la siguiente dirección WEB: https://www.tuwebsite.com/hg/admin/checkinstall.php (nos pedirá credenciales, como es lógico) y si todo está correcto, debemos ver lo siguiente:

comprobaci_n
Si no es así revisa la configuración del mencionado archivo.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Breve descripción de PHPHGADMIN

Cuando tengamos todo correcto, procederemos a lanzar la utilidad, simplemente tecleando en nuestro explorador https://www.tuwebsite.com/hg/admin, entonces nos saldrá la pantalla de inicio del explorador de repositorios

indice_de_repos
Desde esta pantalla [Administrar] podemos ver los repositorios existentes y su estado, así como crear repositorios ó borrarlos, si pulsamos encima de uno de ellos (por ejemplo en eswow2) nos saldrá la pantalla de configuración de dicho repo.

configurar_repo
Como podéis ver ¡como ha cambiado la cosa! Ahora si que es fácil y “racional” configurar los parámetros más importantes del repo, si os colocáis encima de los símbolos de interrogación os saldrá un “pop-up” en español (… de nada), con una descripción del significado de dicho parámetro, os toca explorar, no os voy a hacer un cursillo, es muy fácil usarlo, y más cuando lo tienes en español.

Volviendo a la pantalla anterior a esta, (pulsa en [Administrar], donde vemos la lista de repos, al final de cada repo, donde figura su estado, hay un botón que dice [Explorar], al pulsarlo, nos saldrá, sin salir de la utilidad, la pantalla inicial de nuestro repo, en Mercurial, tal que así.

explorar_repo

Bueno, pues eso es todo, espero que exploréis todas las posibilidades que tiene, y para aquellos más avezados, que sean capaces de incluirle más opciones de configuración, ya que el HGRC contempla muchas más opciones, como podréis comprobar al pulsar los enunciados de [Ayuda], que os “linkearán” a la página oficial de selenic (desarrolladores de Mercurial).
Ahora no tienes escusa para decir que no tienes tu propio repo Mercurial porque no sabes, más bien porque no te da la gana, jajaja.


Saludos y suerte.

█║▌│█│║▌║││█║▌│║║█║
® Mrbytes to Eswow2 2011

 





base_firma_1307660037_676725

¡Como no sabía que era imposible, lo hice!
 
última edición por Mrbytes el Mie 28 Dic, 2011 00:20; editado 6 veces 
Mrbytes - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: CREA TU PROPIO REPOSITORIO [MERCURIAL] 
 
OMG!!! MrBytes esto esta de lujo... muchas gracias por este excelente tutorial.
Gran trabajo!!!
 



 
durotar - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario