Posts tagged Programación

git-logo

Montar un servidor de git

1

La configuración que vamos a usar para configurar el servidor de git es de las mas básicas y no repara en la configuración de usuarios -cualquier usuario con acceso SSH nos sirve-. Mas bien esta configuración es para montar un servidor que podamos usar en nuestra casa o en un grupo de usuarios de confianza.

SERVIDOR:

Primero lo primero, instalar git y la gui de git (es opcional la gui, pero si estas usando una distro con interfaz gráfica te va a venir bien tenerla).

sudo apt-get install git-core git-gui

Bien, ahora que tenemos git instalado, necesitamos decidir donde vamos a almacenar todos los repositorios que creemos. En mi caso me hice una carpeta llamada git en mi home:

cd /home/capy
mkdir git

Listo, de momento terminamos con el servidor. Vamos al cliente:

CLIENTE:

Mi cliente es un Windows, pero los pasos de la configuración son igualmente validos sobre cualquier linux o mac.

primero te vas a crear una carpeta donde vas a tener tu proyecto., o si ya la tenes partimos de ahí. En mi caso es una pagina web y voy a crear en mi windows la carpeta “e-capy.com

Cuando tengas la carpeta creada o localizada entramos, hacemos clic derecho y seleccionamos del menú contextual “Git Bash”. Con la consola ya abierta vamos a tirar el siguiente comando para indicarle a git que cree un repositorio con estos archivos (los de tu proyecto):

git init && git add * && git commit -m "Primer commit"

Ya tenemos un repositorio de git en nuestro cliente y vamos a copiarlo al servidor en dos pasos.

Paso 1: le decimos a git que haga una copia limpia de nuestro repositorio:

git clone --bare e-capy.com e-capy.com.git

lo anterior habrá creado una carpeta nueva llamada “e-capy.com.git” en nuestro repositorio local.

Paso 2: copiemos nuestro repositorio al servidor:

scp -r e-capy.com.git capy@192.168.1.38:/home/capy/git/

Hemos terminado con esta parte. Ya podemos borrar la carpeta “e-capy.com.git“.

 

SERVIDOR:

Vamos al servidor que tenemos que configurar un par de cosas mas.

Entramos en la carpeta que copiamos hace un instante y aplicamos un poco de configuración:

cd /home/capy/git/e-capy.com
git config core.sharedrepository 1 && git config receive.denyNonFastforwards true && find objects -type d -exec chmod 02770 {} \;

Volvamos al cliente:

Ya tenes un repositorio remoto que funciona correctamente. ya podes clonarte de el.

 

NOTA 1: la carpeta que usaste en el cliente para crear el repositorio en el servidor no tiene configurado cual es su origin, por lo que deberías lanzar por consola:

git remote add origin capy@192.168.1.38:/home/capy/git/e-capy.com.git

O simplemente borra esa carpeta y clonate una nueva que ya tiene configurado el origin:

git clone capy@192.168.1.38:/home/capy/git/e-capy.com.git

 

NOTA 2: Muchísimo cuidado con lo siguiente: después de seguir estas instrucciones vas a ver que estas trabajando en la rama principal de tu repositorio… crea urgente una rama y cámbiate a ella.

Que frase! y que cierta!

0

“La mayoría de los programadores no programa porque espera el sueldo o la adulación del público, si no porque es divertido programar”
- Linus Torvalds

Drupal!

Como ver las variables disponibles en una plantilla .tpl.php (PHPTemplate)

0

Otro de esos TIP que nos vienen sorprendente mente bien :) .

Si estas haciendo debug sobre una plantilla y necesitas saber cuales son las variables de las que dispones sobre la misma, te habras dado con el problema de que no se pueden ver. Osea, las variables existen, y si las mandas a imprimir con un echo() seguro que ahi está, pero hasta que no lo haces no podes saber siquiera que existe.

Bueno basta de intro, vamos a un ejemplo rapido y claro:

Si pones esta función en la plantilla que querés investigar, vas a poder ver un array ($variablesDisponibles para este ejemplo) de los nombres de todas las variables de las que dispone (y de sus contenidos también):

$variablesDisponibles = get_defined_vars();

Chau!

Drupal!

Drupal 6: Módulos y templates con acentos, “¿” y “ñ” mal codificados [solución]

2

Un problema con el que me suelo dar de tanto en tanto son las codificaciones de caracteres. En especial la de acentos, la ñ y el signo de pregunta de apertura (¿).

El problema mas común que me encontré en mis primeros tiempos como desarrollador de módulos de Drupal fue que de tanto en tanto abría un modulo, y este tenia los caracteres especiales hechos pedazos, mal codificados.

Probé con todo tipo de yerbas raras. Desde usar funciones de todo tipo de encoding de PHP hasta cambiar la collation de la DB…

Pero la solución estaba tan al alcance de la mano que me llegue a sentir un autentico boludo cuando me cayeron las fichas: ¡La codificación de los archivos!. Si señor/a, no me había fijado en la codificación de los archivos (*.module, *.php, *.install, *.inc, etc).

Lo único que hay que hacer para que todo funcione como la seda son unas pocas cosas:

Que el archivo esté codificado en UTF-8. Podés saber que codificación tiene abriéndolo con Notepad++ y yendo al menú “Formato” como se ve en la imagen:

Y si ven que no está seteado en “UTF-8 sin BOM” o “UTF-8”, pueden convertirlo a cualquiera de estos formatos en el mismo menú:
(Para nosotros usar “UTF-8 sin BOM” o “UTF-8” nos es indistinto :) )

En el caso de los IDE deben saber que Netbeans y Zend Studio de serie vienen configurados para crear y tratar a los archivos bajo UTF-8, mientras que Eclipse NO.

Entonces, si usas Eclipse solo tenes que tocar un detalle en la configuración general para despreocuparte de este asunto:
Vayan al menú “Window -> preferences” y en el menú de preferencias deben ir a “General -> Workspace”. Cambien la codificación que haya puesta por la de UTF-8 como se ve en la imagen.


Otra cosa mas. Si trabajan con GIT sepan que tampoco codifica los archivos en UTF-8, y se soluciona yendo a sus opciones y cambiándolo.

Con lo anterior podes olvidarte de tener problemas de codificación De hecho podes dejar de usar entidades HTML y demases, y solo con usar t(“áéíóúñ”) que no vas a tener mas problemas.

Lo ultimo que quiero comentar es que si trabajan con mas gente sobre estos módulos, asegurate que todos tengan bien configurado su IDE o editor para evitar que los codifique mal (con solo abrir un archivo UTF-8 con un editor que no esté en ese formato es muy posible que al editarle una letra y guardarlo lo haga pedazos!).

1263055237_start-here-ubuntuoriginal

Cambié los permisos de un directorio y Git me muestra “old mode 100644 new mode 100755″

0

Me pasó que me cloné de un repo y como no tenía los permisos adecuados fui con sudo y le metí un 777 a todo el repositorio. Que boludo que fui. Por no leer un poco antes de hacer esa perrada, me di con que a la hora de comitear todos los archivos presentaban cambios, puntualmente todos decían:

old mode 100644
new mode 100755

Solucionando el problema:
primero reviertan la situación cambiándole nuevamente los permisos a todos los archivos con:

sudo chmod 644 -R ./mi-proyecto/

En el paso anterior estoy asumiendo que los permisos originales eran 644 para todos lo archivos del proyecto.

Lo segundo es hacer las cosas bien. Para ello basta con cambiar el owner y grupo al directorio:

sudo chown nobody:nogroup mi-proyecto

y listo. Ahora cualquier usuario tiene privilegios sobre este proyecto por lo que no hace falta cambiarle permisos :)

Go to Top