domingo 20 de noviembre de 2011

GIT Guia básica de Git en Windows - Git y Bitbucket



Hoy me tome un tiempo libre para hacerles esta miniguia de como empezar a usar GIT en windows y configurar una cuenta en Bitbucket.

¿Por que GIT y Bitbucket?

Personalmente pienso GIT es el mejor sistema de control de versiones que existe, es distribuido, no necesita de un servidor (El repositorio central es una simple carpeta que puede estar ubicado en cualquier lugar), la facilidad de instalar y usar.

Bitbucket por que es gratuito, tiene dos métodos de conectar con el cliente por SSH y por HTPPS con lo cual no necesitamos crear ninguna clave SSH publica obligatoriamente como así sucede con Github que nos obliga a hacerlo.

Vamos a lo nuestro, acá voy a tratar de explicar algunos puntos mas importantes de como empezar, no voy a explicar como instalar un programa(Asumimos de que ya lo sabes hacer)

Descargamos GIT Extensions 
Instalamos, instalen todo por default, nos instala la consola, Git y Kdiff (En algun momento lo van a necesitar)

Una vez instalado nos deja un terminal en el escitorio(GIT Bash), desde este terminal vamos a ejecutar GIT, la ventaja que tenemos es que instala algunas extensiones de Cygwin, bastante útil ya que disponemos de algunos comandos básicos de UNIX en nuestro terminal.
Podemos usar ls, mkdir, vi, ln (No voy a explicar sobre los comandos, eso lo pueden buscar fácilmente en google, y les pido que lo hagan si nunca han usado Linux por que les va a ser muy útil y en el caso de GIT necesario)

Haciendo un ls

Cambiando de directorio(cd), mostrando la ubicación actual(pwd) y listando los archivos(ls) Noten que para hacer un cambio de directorio lo hacemos de la manera en que lo hacemos en UNIX. GENIAL!!


Usando vi $vi ejemplo.txt

Maravilloso!! Ahora vamos a lo nuestro. Pasamos a crear ua cuenta en Bitbucket, sí en ese orden, primero la cuenta luego vamos a usar GIT.
¿Por que uso Bitbucket y no GitHub? es GRATIS! para proyectos privados, ilimitado y fácil. ¿Suficiente para elegirlo o no?

Se registran, no creo que quieran una captura de como hacerlo.. ¬¬
Una vez registrados y validado el email, vamos a crear un nuevo repositorio:


Una vez creado nuestro repositorio nos da unas instrucciones básicas de como empezar

Quick start
$ git clone git@bitbucket.org:nucklearproject/tecnovita.git
...
$ git pull                  # to fetch changes
$ git push -u origin master # to push changes for the first time

Con eso tenemos suficiente para empezar, vamos a nuestro terminal y hacemos lo que nos indica: Pero ah! no vamos a usar ninguna clave SSH por que de momento no nos interesa(Aunque es recomendable hacerlo) Esto en otro post les indico como hacerlo. Asi que vamos a clonar y usar nuestro repositorio por htpps.


Estos nos crea una carpeta con el nombre del repositorio, podemos renombrarlo sin problema, lo que nos importa es lo que esta adentro. Note que nos crea una carpeta oculta .git acá se va a guardar los cambios y registros que hagamos a nuestro repositorio local.

Antes de empezar a usar un  repositorio para hacer commit y push debemos identificarnos, para esto debemos configurar por primera vez a GIT:


Los datos son solo para identificar al usuario que hace los cambios al repositorio.

Ahora si vamos a hacer un add y commit, agregamos unos cuantos archivos a nuestra carpeta.
Hacemos un  $git add . 
Con esto agregamos todos los archivos pero estan en "Stage" quiere decir que estan agregados a la cola o cache (lo prepara para hacer un commit, lee los cambios y solo los prepara) Si quisieramos solo agregar un archivo le indicamos $git add archivo.txt
Para ver el estado de nuestras acciones hacemos un $git status


Como vemos al hacer un status nos indica el estado en que se encuentra, en nuestro caso que se agregaron archivos nuevos.
Ahora hacemos un commit, lo dejamos listo para enviarlo a nuestro repositorio remoto. Note que hacemos un status y nos dice que ya no hay nada para hacer commit, por que ya lo hicimos y el cache stage esta vacío.


Lo enviamos a nuestro repositorio remoto


Vemos los cambios en bitbucket.


Editamos un archivo (reset.css) hacemos un add y status (Fijense que al hacer $git add . solo agrega el archivo que tiene cambios y si agregamos nuevos archivos o carpetas)


El commit y push.


Vamos a nuestro repositorio y vamos a ver los cambios. Con eso es mas que suficiente para empezar :D

Al instalar Git extensions nos instala una herramienta visual para administrar nuestros repositorios, si le tenés miedo a la consola usa esta herramienta.



Recomiendo mucho para adentrar mas en el tema estos tres videos del maestro Jesus Conde de Illasaron.

GIT Fundamental

Comandos GIT

Comandos GIT II

Recursos:

1. Referencia básica de comandos GIT (Ingles)
2. El mejor libro que he leido sobre GIT (Español traducido
a medias)
3. Cheat-sheet resumido 
4. Cheat-sheet en PDF bastante completo (ingles)

Aclaración: Soy usuario de GNU/Linux pero por cuestiones laborales me vi casi obligado a usar Windows como sistema operativo. No es un mal sistema, hay que saber entenderlo. ñ.ñ

viernes 11 de marzo de 2011

update-apt-xapian excesivo consumo de recursos, como detenerlo o aplazarlo.

Los usuarios de alguna distribución de derivada de Ubuntu nos vemos todos los días "en el momento menos oportuno" con este proceso: update-apt-xapian

¿Que rayos es?  Es un sistema de indexación de paquetes de APT. La explicación técnica de esto sale de mis conocimientos, pero una simple búsqueda en Google ayudara.

Intentando aplazarlo para que no corra todos los días, encontré la solución definitiva y lo expongo por si a alguien le puede ser útil, ya que hay muy poca o nula información exacta y precisa.

En todos lados recomiendan mover el archivo

sudo mv /etc/cron.weekly/apt-xapian-index /etc/cron.monthly/apt-xapian-index

En otros casos hacer un purge del apt-xapian-index (Grave error ya que dejara de funcionarnos synaptic)

Lamento decirles que no es la solución, ya que a pesar de hacer esto el proceso sigue ejecutándose todos los días. Si!,  a pesar de que tendría que correr cada semana.... ¬¬

investigando llegue a la conclusión de que el proceso lo arrancaba

/etc/cron.daily/apt

Buscando y urgando logre dar con la solución:

Primero cambian la ejecución de Cron :

sudo mv /etc/cron.weekly/apt-xapian-index /etc/cron.monthly/apt-xapian-index

Segundo editan el archivo  /etc/cron.daily/apt

      ##### reempazar esto por lo otro
  
      #if [ -x /usr/sbin/update-apt-xapian-index ]; then
  
      #  nice ionice -c3 update-apt-xapian-index -q
  
      #fi
  
      if [ -x /usr/sbin/update-apt-xapian-index ]; then
  
       nice -n 19 ionice -c3 update-apt-xapian-index --update -q
  
     fi  


Listo, Asunto resuelto. La ejecución se hará cada mes(supongo, por que aun no pasa un mes del cambio que hice, ya les cuento de acá a 25 días que paso ;) )

domingo 16 de enero de 2011

Como eliminar los accesos al menu de Wine

Si hemos desinstalado programas y aun permanece los molestos accesos al programa en el  menú de nuestro gnome. Simplemente vamos a esta dirección y eliminamos las carpetas.

~/.local/share/applications/wine/Programas 

Listo fácil.

domingo 5 de septiembre de 2010

Invocar al formulario de contacto en cualquier lugar de tu web Drupal

Puede ser en cualquier template.tpl dentro de un nodo o bloque.
<?php
  
 require_once drupal_get_path('module', 'contact') .'/contact.pages.inc';
  
 print drupal_get_form('contact_mail_page');
  
  ?>  

viernes 3 de septiembre de 2010

Usar plantillas de otro theme dependiendo de la ruta en drupal (user)

Caso: Tenemos un bonito theme creado en drupal, el cual consiste en varios templates distintos(page.tpl) bloques al por mayor, cada tpl tiene un conjunto de bloques distintos.
Problema: necesitamos un theme de administración simple y eficaz http://drupal.org/project/seven Un menú apara el administrador http://drupal.org/project/admin_menu y un menu para el editor(que se pueda personalizar y sea muy pero muy simple) http://drupal.org/project/simplemenu

Bien queremos que todo lo relacionado con los usuarios y el administrador del site lo gestione el theme de administracion. Este es un pequeño ejemplo de como podemos "desviar" el uso del theme admin por varias condiciones, por ejemplo yo quiero que me muestre el theme si alguien quiere hacer login(de lo contrario se mostrara el theme principal). Esto lo agregamos en el settings.php de nuestro site. Simple práctico.

  $args = explode('/', $_GET['q']);
  if($args[0]=='user'){
  $conf = array(
  'site_name' => 'Admin Panel',
  'theme_default' => 'seven',
  'anonymous' => 'Visitor',
   );
    }  

En un próximo Drupal tip como administrar los bloques del sitio principal desde el theme admin, hasta ahora lo he logrado hackeando el core, aun estoy buscando la manera de hacerlo limpiamente pero hasta ahora no he dado con el clavo.
Related Posts Plugin for WordPress, Blogger...