Git: Modifier un message d’une soumission

Suite à une migration de Subversion vers Git, je me suis retrouvé avec des messages qui contiennent un « git-svn-id ». Oui, je sais, il suffisait d’ajouter le paramètre ‘–-no-metadata’ à la commande ‘git svn’.

Voici un exemple de message que j’obtiens:

libpng updated to 1.4.5

git-svn-id: https://wii-tac-toe.googlecode.com/svn/trunk@104 bba1cac1-252d-79fd-420d-80adb1f9fa09

Heureusement il existe un moyen de changer le message. C’est l’utilisation du paramètre ‘filter-branch‘ qui nous aidera à effectuer cette tâche. La commande suivante va effacer la ligne du message.

git filter-branch --msg-filter '
	sed -e "/^git-svn-id:/d"
'

L’application sed va servir à faire la modification. On utilise le paramètre -e pour lui spécifier une expression. Le ‘/^’ veut dire que la ligne débute par « git-svn-id: ». Le ‘/d’ à fin signifie que la ligne sera supprimée si elle correspond à l’expression.

La migration a aussi ajouté un saut de ligne avant d’insérer le « git-svn-id ». Si vous êtes dans la même situation que moi et que vous n’avez pas vous-mêmes ajouté des sauts de ligne dans vos messages, alors c’est facile de supprimer tous les sauts de lignes en plus des lignes qui contiennent le « git-svn-id ». Voici la commande que j’ai utilisée.

git filter-branch --msg-filter '
	sed -e "/^$/d;/^git-svn-id:/d"
'

L’expression ‘/^$/d’ supprime toutes les lignes vides.

Lorsque que vous devrez pousser les changements, il va falloir utiliser l’option ‘–force’ sinon ça ne fonctionnera pas.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*