Travailler en case-sensitive sous Mac
Publié le 25 juillet 2010 à 00:00 - Quick Tips
Plus moins vite tu codes, moins plus vite ça plante
Publié le 25 juillet 2010 à 00:00 - Quick Tips
Publié le 10 juillet 2010 à 00:00 - Quick Tips
Depuis la version 1.5 de Subversion, la résolution des conflits se fait de façon interactive lorsque l’on utilise svn update.
svn update
Conflict discovered in 'some/file/located/somewhere.rb'.
Select: (p) postpone, (df) diff-full, (e) edit,
(h) help for more options:
Personnellement, je ne supporte pas ce nouveau mode. Je préfère de loin faire un update complet et corriger les conflits à posteriori.
Pour le faire de manière ponctuelle l’option –non-interactive permet d’obtenir ce comportement.
svn update --non-interactive
Pour le faire de manière permanente, éditez votre ~/.subversion/config et ajoutez la ligne suivante dans la section miscellany :
[miscellany]
...
interactive-conflicts = no
Publié le 14 novembre 2009 à 15:03 - Quick Tips
Lorsque l’on édite un fichier, il peut arriver qu’en plus de simples modifications, certaines portions, voire le fichier entier, soient re-indentées. Malheureusement, Subversion étant bête et discipliné, un svn diff montrera les lignes modifiées mais également les lignes simplement indentées.
Cela peut devenir gênant lorsque, par exemple, tout le fichier s’en retrouve changé.
Pour ignorer ces différences d’espaces lors d’un diff, la commande à utiliser est la suivante :
svn diff --extensions -bu
Publié le 14 novembre 2009 à 13:48 - Quick Tips
Si vous utilisez des fichiers dont le nom contient des accents sur un dépôt SVN, vous avez de grandes chances de rencontrer quelques soucis sous Mac, si vous avez installé Subversion avec MacPorts. Le problème vient de la différence de stockage des caractères unicode entre les plateformes Unix et OS X.
Voici comment résoudre ce problème. C’est très simple, il suffit d’installer une variante du port subversion.
port install subversion +unicode_path
Si tout s’est bien passé, vous ne devriez plus avoir de problèmes.
NOTE: j’ai ajouté cette option dans la Formula subversion de Homebrew mais c’est toujours en attente de merge de leur part…
Publié le 27 septembre 2009 à 16:06 - Quick Tips
Lorsque l’on utilise un éditeur de texte particulier, on apprécie de pouvoir l’utiliser comme éditeur par défaut pour peu tout. Cela comprend également les messages de commit des outils tels que SVN ou Git.
Malheureusement, utiliser un éditeur graphique pour cela n’est pas toujours trivial.
La commande mate propose l’option -w qui permet de signifier que l’on veut attendre que TextMate en ait fini avec le fichier pour reprendre la main.
Il est vrai que TextMate intègre les fonctionnalités SVN et Git. Personnellement j'ai toujours préféré m'occuper de ces choses là en ligne de commande... chacun son truc...
Il y a plusieurs façons de dire à subversion d’utiliser tel ou tel éditeur, le plus simple est de donner une valeur à la variable SVN_EDITOR :
export SVN_EDITOR="mate -w"
Pour rester dans l’utilisation habituelle de Git, on utilisera la commande suivante :
git config --global core.editor "mate -w"Publié le 13 mars 2009 à 14:51 - Général
Comme de nombreux développeurs, je suis très souvent amené à utiliser SVN (Subversion). Comme de nombreux développeurs toujours, je suis amené à partir en mission chez différents clients qui ont chacun leur proxy. Pour peu qu’on en ait déjà un au boulot ou chez soi, ça devient vite fatiguant de jongler entre ces différentes configurations.
Voici donc une petite astuce toute bête pour se rendre la vie facile.
Première étape, savoir où se configure les proxies dans subversion. Tout cela se passe dans le fichier ~/.subversion/servers où l’on peut trouver les lignes suivantes :
# http-proxy-host =
# http-proxy-port = 3128
# http-proxy-username =
# http-proxy-password =
Comme on peut le voir, il est facile de configurer un proxy selon le serveur svn que l’on veut atteindre. C’est très bien, seulement ça ne nous aide pas. Nous ce n’est pas le serveur qui change mais l’environnement de travail !
Tout d’abord il faut créer un fichier servers par environnement. Idéalement on les place dans le dossier ~/.subversion avec un nom comme env1_servers, env2_servers (en ce qui me concerne je prends 3 lettres représentatives de l’environnement).
Pensez à renommer le fichier servers existant, en def_servers par exemple car servers va devenir un lien symbolique vers le fichier qui nous intéresse.
On pourrait se contenter ce ça et s’amuser à appeler ln -s à tout bout de champ, voir même créer un alias comme “ln -s ~/.subversion/env1_servers ~/.subversion/servers” mais honnêtement, une solution pérenne (quel horrible mot) serait bien plus agréable.
Voici donc une petite fonction shell qui va nous faciliter grandement la vie !
# switch de profile svn
svnpro() {
if [ -f ~/.subversion/$1_servers ]; then
ln -nfs $1_servers ~/.subversion/servers
else
echo "$1\_servers n'existe pas."
fi
}
Et voila, il nous suffit maintenant de l’appeler de la manière suivante et notre configuration de proxy changera.
svnpro env1
svnpro env2
Publié le 16 février 2009 à 20:35 - Général
Les diffs SVN peuvent parfois être longs et souvent pénibles à lire. Oui il y a des + et des - mais ça ne fait pas tout. Un bon moyen de simplifier cette lecture est l’utilisation de couleurs.
Un utilitaire bien sympathique, colordiff, permet justement de coloriser l’affichage des diffs. Packagé sous Debian ou disponible via MacPort.
Voici comment l’utiliser pour les diffs SVN.
Pour une utilisation occasionnelle :
svn diff --diff-cmd colordiff
ou
svn diff | colordiff
Pour l’établir de manière globale, il suffit d’éditer le fichier ~/.subversion/config et d’ajouter dans la section helpers :
diff-cmd = colordiff
EDIT: Pour afficher la sortie de colordiff dans less, il faut utiliser l’option -R de ce dernier :
svn diff | less -R
Pour aller plus loin, un autre utilitaire permet de coloriser bien plus de choses, il s’agit de colorsvn.
Publié le 16 février 2009 à 15:21 - Général
Il peut arriver que, sur un projet, chacun utilise son propre IDE. Le petit problème c’est que chaque IDE crée des fichiers qui lui sont spécifiques. Lorsque l’on utilise Subversion, gérer les svn:ignore devient vite lourd. Mais une solution existe ! Ignorer localement certains fichiers.
Je prendrai NetBeans comme exemple pour cet article.
Voici ce que l’on peut voir lors d’un svn status après la création d’un projet sous NetBeans depuis des sources existantes:
svn status
? nbproject
M some\_file
Dans le dossier ~/.subversion, il existe un fichier config. Dans ce fichier, sous le groupe miscellany, vous trouverez les lignes suivantes :
## Debian
# global-ignores = \*.o \*.lo \*.la \*.al .libs \*.so
# \*.so.[0-9]\* \*.a \*.pyc \*.pyo \*.rej \*~ #\*# .#\* .\*.swp .DS\_Store
## Mac
# global-ignores = \*.o \*.lo \*.la #\*# .\*.rej \*.rej
# .\*~ \*~ .#\* .DS\_Store
Il vous suffit de décommenter ces lignes et de rajouter les fichiers que vous souhaitez ignorer :
global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS\_Store nbproject
Voilà le résultat :
svn status
M some\_file
Publié le 04 juin 2008 à 01:08 - Général