Cipher Bliss

mercredi 1 juillet 2015

des tests plus rapides avec jasmine

Jasmine, framework de test en javascipt dispose de quatre fonctions intéressantes pour rendre l'exécution de vos nommmmmmbreux tests JS. Parce que bien sûr, vous testez votre javascript, nesspa?

Bien, donc, on développe des blocs de test avec describe() et it()

vous pouvez demander à jasmine de ne pas exécuter de bloc en utilisant xdescribe() et xit(). et vous pouvez lui demander de n'exécuter que certains blocs et assertions avec fdescribe() et fit()

ce qui devrait faire tourner le tout plus vite, notamment si vous avez dans les 500 assertions et que vous bossez seulement sur une certaine partie.

une astuce pour ensuite ne pas faire de push avec ces blocs spéciaux, c'est de se créer un hook sur git. parce que vous utilisez git, nesspa? Bien, donc, avec un terminal ouvert dans votre projet, dans le dossier .git.

touch .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

et mettez y de quoi vérifier que vous n'avez pas de fdescribe( , de fit( dans vos fichiers de tests.

#!/bin/sh
# A git pre-commit hook that verifies that the change does not introduce
# the use of a Jasmine exclusive test , which would
# prevent most other tests from being run without any clear indication thereof

 FILES_PATTERN='\.(js|coffee)(\..+)?$'
FORBIDDEN='fit('
git diff --cached --name-only | \
    grep -E $FILES_PATTERN | \
    GREP_COLOR='4;5;37;41' xargs grep --color --with-filename -n $FORBIDDEN && echo 'COMMIT REJECTED Found "$FORBIDDEN" references. Please remove them before commiting' && exit 1

jeudi 4 juin 2015

se créer un historique complet de git log

 mise à jour: j'ai fait un projet sur github nommé git all

Vous avez un projet et vous aimeriez savoir comment il a évolué à travers les commits que vous avez écrits avec assiduité durant de nombreux mois, voire de nombreuses années. Vous pourriez le compiler sous forme de log complet dans un fichier texte.

Par example pour voir sur quoi vous galérez le plus et comment améliorer vos projets, ou pourquoi pas en avoir ensuite une représentation graphique, l'enregistrer dans votre appli de calendrier favorite, ou bien pour remplir une fiche de suivi dans un logiciel spécialisé comme Works, Redmine, Pivotal tracker, ou ProjeQtOr.

Il suffit de lire un peu la doc de la commande git log et particulièrement la partie sur les pretty formats pour se bidouiller un log clair et concis. avec la date, l'auteur, le sha1, et le message du commit à chaque ligne.

git log --pretty=format:"%cd , %cn, %h, %s" --full-history > git-history.txt

Vous pouvez aussi filtrer par auteur du commit en rajoutant l'option

--author="tykayn"

et donc:

git log --author="tykayn" --pretty=format:"%cd , %cn, %h, %s" --full-history > git-history.txt

ce qui donnerait plein de lignes comme ceci: 

Sat May 30 11:30:11 2015 +0200 , tykayn-ubuntu, 463e52c, accessoires produits

Sat May 30 11:20:45 2015 +0200 , tykayn-ubuntu, 9efab6c, footer grille 

Sat May 30 10:29:26 2015 +0200 , tykayn-ubuntu, 96f25f6, insertion de grille bootstrap dans le tpl

et si vous avez comme moi la flemme de retaper tout, créez vous un alias dans votre fichier de .bash_aliases

gedit ~/.bash_aliases

rajoutez cette ligne pour créer la commande "gitall":

alias gitall='git log --pretty=format:"%cd , %cn, %h, %s" --full-history > git-history.txt';

sauvegardez, fermez le fichier, rechargez le fichier d'alias

gedit ~/.bash_aliases

et magie, vous pourrez vous servir de la commande gitall pour créer un fichier git-history.txt attention tout de même, si un fichier git-history.txt existait avant, il sera remplacé.

vous pourrez ensuite lui appliquer des traitements plus complexes pour conquérir le monde, changer l'affichage, ranger par journée, ou tout du moins comprendre comment vous améliorer. Enjoy!

Voir mon projet sur github nommé git all contribuez zy!

jeudi 30 janvier 2014

S'essayer à git pas à pas

Octocat un tutoriel en anglais vous propose pas à pas de comprendre les principales commandes de git avec le logo de github: l'octocat. Facile à comprendre grâce à sa représentation en fichiers et sans besoin d'installer git, il vous permettra de vous plonger dans git sans toucher à vos fichiers.

http://try.github.io/

Si vous avez un peu plus d'expérience et que vous aimeriez comprendre (en français) pourquoi la commande git checkout fait des tas de choses différentes, je vous conseille la lecture de ce tutoriel ci: http://www.miximum.fr/tutos/1546-enfin-comprendre-git

mardi 26 novembre 2013

alias symfony et git pour linux

Les alias c'est fort pratique quand on bouffe de la ligne de commande quotidiennement. voici donc mon fichier .bash_aliases actuel (se trouvant dans mon répertoire d'utilisateur) sur mon ubuntu maison. Enjoyez les commandes raccourcies!

################ git ################ 
	alias ci='commit';
	alias co='checkout';
	alias st='status';
	alias br='branch';
	alias gci='git commit';
	alias gco='git checkout';
	alias gst='git status';
	alias gbr='git branch';
	alias gpull='git pull origin master';
	alias gpush='git push origin master';
	alias glg='git log --pretty=oneline';
	alias myglg='git log --pretty=oneline --author=baptiste.lemoine';
	alias gaci='git add . && git commit -m ';

################ symfony2 ######################
	alias sf='php app/console';
	alias sfdsu='php app/console doctrine:schema:update --dump-sql';
	alias sfdsuf='php app/console doctrine:schema:update --force';
	alias sfcc='rm -rf app/cache/* && rm -rf app/logs/*';
	alias sfdcc='sf doctrine:cache:clear-metadata && sf doctrine:cache:clear-query && sf doctrine:cache:clear-result ';
	alias sfdge='php app/console doctrine:generate:entities Tykayn';
	alias sfdsv='php app/console doctrine:schema:validate';
	alias sfdges='php app/console doctrine:generate:entities Tykayn';
	alias c7='sudo chmod 777 -R';
	alias ptest='phpunit -c app';
	alias composer='/usr/local/bin/composer.phar';
	alias sfad='sf assetic:dump';
	alias sfai='sf assets:install';

################ system - command line ################
	alias bashare='source ~/.bash_aliases';
	alias basha='nano ~/.bash_aliases';
	alias ainstall='sudo apt-get install';
	alias apacheconf='sudo nano /etc/apache2/apache2.conf';
	alias tfa='tail -f /var/log/apache2/error.log';
	alias aupg='sudo apt-get update && sudo apt-get upgrade';
	alias toshop='wine "/media/tykayn/567A958C7A956A0F/Program Files (x86)/Adobe/Adobe Photoshop CS5/Photoshop.exe"';
	alias phpini='sudo nano /etc/php5/apache2/php.ini';
afin que les alias fonctionnent, n'oubliez pas de resourcer votre bash avec la commande suivante:
source ~/.bashrc 
enjoyez!

dimanche 12 mai 2013

git it, git it, no one wants to be defeated

Parfois je rangerai bien des tas de choses, du style mes fringues, avec un git stash. git pro book Si ça ne vous parle pas du tout mais que vous vous intéressez a git tout en étant un parfait noob, je vous recommande la lecture de ce superbe livre intégral et en français sur l'utilisation de git, Git pro. Vous pouvez aussi le trouver au format papier.

Au programme:

1. Démarrage rapide

1.1 À propos de la gestion de version 1.2 Une rapide histoire de Git 1.3 Rudiments de Git 1.4 Installation de Git 1.5 Paramétrage à la première utilisation de Git 1.6 Obtenir de l'aide 1.7 Résumé

2. Les bases de Git

2.1 Démarrer un dépôt Git 2.2 Enregistrer des modifications dans le dépôt 2.3 Visualiser l'historique des validations 2.4 Annuler des actions 2.5 Travailler avec des dépôts distants 2.6 Étiquetage 2.7 Trucs et astuces 2.8 Résumé

3. Les branches avec Git

3.1 Ce qu'est une branche 3.2 Brancher et fusionner : les bases 3.3 Gestion de branches 3.4 Travailler avec les branches 3.5 Les branches distantes 3.6 Rebaser 3.7 Résumé

4. Git sur le serveur

4.1 Protocoles 4.2 Installation de Git sur un serveur 4.3 Génération des clés publiques SSH 4.4 Mise en place du serveur 4.5 Accès public 4.6 GitWeb 4.7 Gitosis 4.8 Gitolite 4.9 Le daemon Git 4.10 Git hébergé 4.11 Résumé

5. Git distribué

5.1 Développements distribués 5.2 Contribution à un projet 5.3 Maintenance d'un projet 5.4 Résumé

6. Utilitaires Git

6.1 Sélection des versions 6.2 Indexation interactive 6.3 Le remisage 6.4 Réécrire l'historique 6.5 Deboguer avec Git 6.6 Sous-modules 6.7 Fusion de sous-arborescences 6.8 Résumé

7. Personnalisation de Git

7.1 Configuration de Git 7.2 Attributs Git 7.3 Crochets Git 7.4 Exemple de politique gérée par Git 7.5 Résumé

8. Git et les autres systèmes

8.1 Git et Subversion 8.2 Migrer sur Git 8.3 Résumé

9. Les tripes de Git

9.1 Plomberie et porcelaine 9.2 Les objets Git 9.3 Références Git 9.4 Fichiers groupés 9.5 Les références spécifiques 9.6 Protocoles de transfert 9.7 Maintenance et récupération de données 9.8 Résumé Index of Commands

De quoi tout savoir du plus puissant des gestionnaires de version. Have fun!

jeudi 2 mai 2013

Comment tuer git

Pour tuer git, entrez la commande suivante dans un terminal

$ git commit suicide

MUHOHOHO!