• # Autre outil : scm.py

    Posté par (site web personnel) . En réponse à la dépêche Gérer son espace de travail git avec "gws". Évalué à 4.

    Salut,

    J'ai écrit un outil scm.py dans un ancien boulot pour pouvoir mettre à jour une dizaine de dépôts Mercurial en une seule commande. Puis j'ai eu besoin de gérer des dépôts Git. Petit à petit, j'ai ajouté plein de commandes pour mes besoins. Je n'ai jamais trop fait de pub car je ne crois pas que ça intéresse beaucoup de monde.

    scm.py semble offrir les même fonctionnalités que gws. Il fonctionne sur Python (2 et 3, au choix).

    C'est une petite surcouche à hg/git pour améliorer un peu la sortie. Par exemple, "scm.py st" ignore de base les fichiers temporaire ".swp" de vim et le fichier "tags" (pour ctags), et adapte la sortie pour le dossier courant (alors que "hg st" affiche toujours le chemin depuis la racine du dépôt). De même, "scm.py grep PATTERN" ne recherche que dans le dossier courant (et les sous-dossiers), pas tout le dépôt.

    Pour limiter la casse en cas de conflit, les opérations qui modifient le dépôt (pull, histedit, ...) mettent les modifications locales de côté sous forme d'un patch (commande stash). Ca aide un peu quand y'a plein de conflits.

    J'ai ajouté des petits trucs comme "scm.py remove_untracked" pour supprimer les fichiers que j'ai crée pendant le dev, et que je veux supprimer pour revenir à un dépôt propre. Ou encore "scm.py info" qui affiche l'URL du dépôt. Je préfère cette sortie à aller chercher dans .hg/hgrc ou .git/config.

    En espérant que ça serve...

    PS: Vu que je passe très peu de temps à développer sur ce projet, ça ne m'intéresse pas trop à contribuer à des projets similaires. De plus, j'ai un peu implémenté ma manière de développer (ex: pull utilise --rebase) et je ne cherche pas à l'imposer à d'autres. Je ne me suis jamais pris la peine d'extraire ce script dans un dépôt dédié pour faciliter les contributions.