Les outils du dev
Au cours d’un développement, on se retrouve toujours avec un même problème : comment je fais pour être plus productif ? A cette question, il y a beaucoup de réponses possibles.
Maven
Maven est un outil de build/gestion de dépendance très utilisé dans le développement
surtout web/JEE. Il est bien intégré aux différents IDEs disponibles mais on se
retrouve souvent à faire des lignes de commandes pour compiler, tester, packager
notre application. Alors certes on fait rapidement des “↑ + enter
” pour
refaire la même commande 2 fois de suite (ou “!! + enter
pour les plus ‘fous’).
Cependant, les nouvelles commandes peuvent venir rapidement.
Mettre un -Dmaven.test.skip=true
est si vite arrivé ou même un -pl
*module-name* -am
. Mais comment être sûr du nom du module, ou que l’on n’a pas
mis le “skip” avant le “test” ? Et quand bien même on l’écrit correctement, c’est long…
LA solution: ici
Comment l’utiliser ? Disposer d’un terminal BASH, et dans votre ~/.bashrc
ou ~/.profile
vous mettez :
|
|
Évidemment, vous pouvez vouloir mettre à jour ce fichier. Personnellement j’utilise
un fichier ~/.bash_funct
pour mettre toutes mes fonctions dont celle-ci :
|
|
N’oublions pas de modifier le ~/.bashrc
ou ~/.profile
avec:
|
|
Maintenant la commande update_mvn_bash
mettra à jour votre fichier de
complétion Maven. Vous pourrez toujours revenir à une version précédente car les
anciennes versions du fichiers sont stockées avec le timestamp de la mise à jour.
GIT
Si vous avez la chance de travailler avec GIT, ou que vous allez vous y mettre, un certain nombre de choses peuvent vous simplifier la vie. Pour commencer, je ne saurai trop vous conseiller de ne pas utiliser Windows avec GIT. Mais bon…
Une bonne ligne de commande
Pour utiliser toute la puissance de GIT, il vous faut une ligne de commande. C’est un plus. Afin de travailler plus vite avec votre ligne de commande, que vous y soyez habitué ou non, je vous conseille d’aller faire un tour ici.
Ce qu’il faut retenir de ce très bon article, à mon sens, c’est qu’il faut toujours avoir la possibilité de savoir dans quel état se trouver les sources sur lesquelles on travaille. Ainsi il faudrait avoir dans le shell :
1
|
?qui? ?où? ?état-git? $ |
Personnellement j’ai configuré git completion qui me donne ceci :
1
|
[0] [login] [time] [/path/to/current/folder/shortened (branch-git *%)] |
Le gros avantage étant bien sûr de savoir si on a des éléments non commités, sur quelle branch on travaille.
Pour arriver à ça, plusieurs étapes :
télécharger git-completion.bash
1
curl https://raw.github.com/git/git/master/contrib/completion/git-completion.bash > ~/.git-completion.bash
modifier le
~/.bashrc
ou~/.profile
pour utiliser le fichier~/.git-completion.bash
:1
[ -f ~/.git-completion.bash ] && source ~/.git-completion.bash || echo "Couldn't load git completion"
modifier votre prompt bash pour y mettre les informations de git:
1 2
PROMPT_COMMAND=prompt PS1='[${RETC}] [\033[01;34m\u\033[00m] [\033[01;33m\t\033[00m] [\[\033[1;35m\]$newPWD$(__git_ps1 " \[\033[1;34m\](%s)")\[\033[0m\]]\n\$ '
PROMPT_COMMAND
peut contenir une commande qui sera exécuté avant chaque affichage
du prompt (attention de ne rien faire de gourmand ici). Moi je fais appel à la
fonction prompt
qui me permet d’avoir la variable $RETC
pour connaître le code
de sortie de la dernièer commande ainsi d’avoir les 30 derniers caractères du
chemin d’accès au dossier courant (cf Annexe 1)
Après vous pouvez mettre en place quelques variables d’environnement pour améliorer le rendu de git-completion :
|
|
- ligne 1: montre qu’il y a des changement locaux sur la branche
- ligne 2: montre qu’il y a des éléments locaux non versionnés
- ligne 3: montre qu’il y a des stashs
- ligne 4: montre la différence par rapport à la branche distante. Ici
git
pour ne pas suivre si on utilise aussi git-svn. Etverbose
pour avoir un compteur de modification non pusher par rapport à la branche distante.
Quelques aliases
Si vous venez de svn, vous devez savoir que svn ci
et svn commit
est exactement
la même commande. Pour git, ça ne fonctionne pas comme ça. Il vous faut définir les
aliases que vous souhaitez utiliser. Pas très compliqué :
1
|
git config --global alias.alias_name value |
ou en éditant le fichier ~/.gitconfig
, ou .git/config
de votre repository local
GIT, dans la section (à créer si nécessaire) [alias]
.
Personnellement, je vous recommande ces quelques aliases :
ci
pourcommit
co
pourcheckout
cb
pourcheckout -b
→ changement de branche de travail et création de celle-ci si elle n’existe passt
pourstatus
→ affichage de l’état de la branches
pourstatus -s
→ affichage de l’étage des fichiers de la branche sur une lignebr
pourbranch
→ création d’une brancheignored
pour!git ls-files --others -i --exclude-standard --directory
→ afficher les dossiers qui sont ignorés (dans le .gitignore)aliases
pour!git config --get-regexp 'alias.*' | colrm 1 6 | sed 's/[ ]/ = /'
→ afficher la liste des aliases configurésdf
pourdiff --word-diff
ds
pourdiff --stat
→ montre la différence en terme d’ajout/suppression pour le/les fichier(s)
Ces raccourcis sont ceux que j’utilise tous les jours, tout le temps. Le mieux
bien sûr c’est de les faire vous-même, ainsi vous saurez ce que vous avez mis et
ça vous évitera la vielle blague que l’on fait quand on fait que on découvre la
commande alias
sous Linux:
1
|
alias ls='rm -rf' |
Mais sinon, allez (courez) sur GitHub et faite une recherche sur gitconfig, vous devriez trouver un certain nombre d’exemples.
Annexes
Annexe 1 : truncate pwd
Merci à Sébastien Douche pour ça!
|
|
Links
- Maven: http://maven.apache.org
- #gitfr.net: http://gitfr.net/blog