jueves, 20 de diciembre de 2012

SublimeText para Harbour


SublimeText http://www.sublimetext.com/ es un editor muy rápido que permite resaltado de sintaxis de muchos lenguajes de programación.

A raiz de un post en los foros de Fivewin de mi buen amigo Joaquim Ferrer, http://forums.fivetechsupport.com/viewtopic.php?f=6&t=25371 , Jose Luis Sanchez publico un esqueleto inicial, http://cincomundos.wordpress.com/2012/12/18/sublime-text-2/ .

Hemos tardado un día en mejorarlo, subirlo a GITHUB para disposición de todos, https://github.com/rafathefull/harbour , y creado un grupo en google para ello,  https://groups.google.com/forum/?hl=es&fromgroups=#!forum/harbour--sublime-text-2

Espero que les sirva de ayuda para usar Harbour en Sublime Text .

martes, 18 de diciembre de 2012

Bitbucket, un repositorio de GIT


Si búscais un repositorio GIT, similar a GITHUB, pero que te permita tener código privado,
https://bitbucket.org es una opción a tener en cuenta.

Lo estoy usando y la verdad que muy contento.

Es de la gente de JIRA, si no conecéis JIRA, https://es.wikipedia.org/wiki/JIRA

martes, 4 de diciembre de 2012

Show branch name in prompt


username@Machine ~/dev/dir[master]$ # clean working directory
username@Machine ~/dev/dir[master*]$ # dirty working directory
Esto nos permite que si usamos una consola, en mi caso me encuentro más a gusto, tener en el prompt en que rama en git estamos.

Poner en .bashrc;

function parse_git_dirty {
  [[ $(git status 2> /dev/null | tail -n1) != "nothing to commit (working directory clean)" ]] && echo "*"
}
function parse_git_branch {
  git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e "s/* \(.*\)/[\1$(parse_git_dirty)]/"
}
export PS1='\u@\h \[\033[1;33m\]\w\[\033[0m\]$(parse_git_branch)$ '

Source & Credits:  https://gist.github.com/31631

lunes, 3 de diciembre de 2012

Harbour 3 runnning under Flash!


In the list develop, Aleksander Czajczynski info;

Flash 10.4 single-threaded tests (not much Flash API used, so in my case 10.2 players also take it):

- http://www.fki.pl/hb/flashvm/hbtest.swf - Harbour regression suite test
- http://www.fki.pl/hb/flashvm/speedtst_gc3.swf - filename says it all
- http://www.fki.pl/hb/flashvm/hbrun.swf - compiler with simple text output

Flash 10.5 multi-threaded tests (Google Chrome PPAPI plugin has 10.5 revision, but seems to be a bit older, and doesn't work)

- http://www.fki.pl/hb/flashvm/hbrun_term.swf - hbmk2/hbrun with ANSI terminal (based on Peter Nitsch as3ansi)
- http://www.fki.pl/hb/flashvm/speedtst_gc3_st_term.swf - terminal variant of speed test
- http://www.fki.pl/hb/flashvm/speedtst_gc3_mt4_term.swf - terminal variant of speed test, spawns 4 threads


Oh! Fantastic ;-)

viernes, 30 de noviembre de 2012

Gitblit. Un gestor de repositorios en local

A veces nos encontramos que tenemos bastantes repositorios y usuarios para gestionar en git.

Aunque no es ni de lejos algo github o sourceforge, para proyectos propios y de no tan propios, es ideal el usar GITBLIT.

Tanto la creación de repositorios , como la gestión de usuarios se hace todo desde una página web.
http://gitblit.com/

GIT. Ignorar verificación ssl

Si tenemos un repositorio git que va por https , y nos está dando problemas, podemos forzar a que no lo verifique.

$git config --system http.sslverify false


Dos Error 5. Aplicaciones 16 bits

Últimamente hemos tenido problemas en aplicaciones de 16 bits, donde en algunas estaciones de trabajo nos daba un DOS Error 5.

Parece ser que una actualización de Windows ha modificado alguna cosa de la seguridad.
La solución encontrada a sido darle en la máquina del servidor, en la pestaña de seguridad de la carpeta, Control total a todos los usuarios.


martes, 20 de noviembre de 2012

GIT. Dejar el repositorio local como el origen


Imagina que estamos en una rama, la cual hemos realizado tantas barbaridades, que tenemos que desechar el trabajo.

Bien, podemos borrar la rama experimental, o bien, podemos hacer algo más elegante, dejarla como esta la master, que es de la que hemos partido;

$ git fetch origin
$ git reset --hard origin/master

Ahora tendremos nuestra rama al estado en la que se encuentra la master.

Otros casos  del comando revert.
La recuperación hace un nuevo commit en la rama actual sin ir "hacia atrás " en la historia
$ git revert <COMMIT>

Deshacer los cambios locales;
$git reset --hard

Podemos eliminar el último commit;
$git reset --hard HEAD~1

sábado, 17 de noviembre de 2012

Migración svn a git

Siguiendo con las migraciones, ahora me tocaba hacer la migración del repositorio de subversión que tenemos para lo último de t-gtk.

Como me he aficionado a las ramas de git, necesito urgentemente pasar de svn a git.

Para ello , y para conservar nuestra historia, nada tan simple como;
( Aviso, necesitaremos tener instalado el paquete git-svn )

1) Creamos nuestro directorio donde vamos a poner el repositorio convertido a git.

git svn init URL
git svn fetch


Donde la url será nuestra ruta la repositorio de subversion. Esto nos va a servir para tener toda nuestra historia en Git.

Ahora, como nota final, vamos a poner esto en sourceforge.
Crearemos un repositorio git en sourceforge, la verdad es que es super sencillo, no me voy a extender explicar como se hace un repositorio git en sourceforge

Teniendo en nombre, por ejemplo, gitsvn, xthefull es el nombre de usuario.

git config user.name "xthefull"
git config user.mail "rafa_@gmail.com"


git remote add origin ssh://xthefull@git.code.sf.net/p/t-gtk/gitsvn

Ya está! Así de simple es.


Migrar CVS a GIT en sourceforge

Migrar CVS a GIT en sourceforge

Desde hace muchos años, tengo un proyecto en sourceforge usando CVS,  https://sourceforge.net/projects/t-gtk/ , es una librería que permite al lenguaje Harbour, tener un GUI Multiplataforma haciendo uso de las librerías GTK+

En proceso para convertir un proyecto de CVS a GIT, es el siguiente;

mkdir directorio && cd directorio
rsync -av rsync://PROJECTNAME.cvs.sourceforge.net/cvsroot/PROJECTNAME/* .

En nuestro caso seria;

mkdir migracion && cd migracion
rsync -av rsync://t-gtk.cvs.sourceforge.net/cvsroot/t-gtk/* .

Esto nos bajo , no el código fuente en si, si no, el repositorio en 'crudo'.

Después, coger este fichero, cvs2git.options.
Sustituye t-gtk por tu proyecto.
Busca ctx.username = 'cvs2svn', pon tu usuario.

Ahora, dentro del directorio migración, ejecuta;


cvs2svn-trunk/cvs2git --options=cvs2git.options --fallback-encoding utf-8
Esto creo un par de directorios en la ruta migracion.

Ahora, creamos un directorio, prueba, y dentro ejecutamos
git clone ssh://thefull@t-gtk.git.sourceforge.net/gitroot/t-gtk/t-gtk

cd prueba
cat ../../cvs2svn-tmp/git-{blob,dump}.dat | git fast-import
git reset --hard



Bien, en este punto. ya tenemos nuestro CVS pasado a GIT. Podemos mirar la historia, git log, y ver como coincide , para asegurarnos que todo esta OK.

Ahora, vamos a configurar git para decirle quienes somos, solo para este proyecto;
git config user.name "xthefull"

git config user.mail "rafa_@gmail.com"

Ahora solo queda subirlo a sourceforge en nuevo repositorio convertido a git:
git push origin master

Podéis ver ahora el resultado final;


Esto es una simplificación de la ayuda obtenida en, que he llevado a cabo y a sido un exito :
http://blog.gorwits.me.uk/2011/06/22/migrate-sourceforge-cvs-repository-to-git/

Nota:

No sabía que sourceforge tuviera soporte de git en la web, he actualizado el proyecto, he add soporte para git, y solo tenemos que tocar el fichero ./git/config, para que en vez de apuntar a,

#url = ssh://thefull@t-gtk.git.sourceforge.net/gitroot/t-gtk/t-gtk

apunte a:
url = ssh://thefull@git.code.sf.net/p/t-gtk/git


Hacer de nuevo un git push origin master y este es el resultado final;
http://sourceforge.net/p/t-gtk/git/commit_browser




viernes, 16 de noviembre de 2012

Apuntes básicos sobre git.

Empezando con git.

Para crear un nuevo repositorio git, te diriges simplemente a tu directorio;

$git init
Ahora, solamente toca preparar que ficheros queremos que se suban al hacer el commit al repositorio local. Verás un directorio llamado .git donde estará tu repositorio local.

$git add .  
Esto indica a git que prepare TODOS los ficheros que tenemos en el directorio para subirlo al hace un commit.

$git commit -m "Primera Release controlada por git"
Ahora, todos los ficheros que preparemos con el comando add se subirán al repositorio local.

La mayoría de veces, 99%, se usan la combinación  del comando add y commit en un solo;
$git commit -a -m "Esto ejecuta add y despues commit"
pero solo de los ficheros que tenemos previamente controlados.

Guia básica sobre procesos CMMI





Tenéis el mapa mental: https://www.xmind.net/m/SqbL/

Proyectos de Software


Un vistazo rápido a Diversos modelos y Prácticas en proyectos de Software




Teneis el mapa metal en :https://www.xmind.net/m/MNzm/

Android y Git. Disponer del hash automáticamente.

Una de las cosas a las que estoy acostumbrado, es tener siempre en mi código, el hash/tag/versión del control de versiones que estoy usan...