[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: patcher en mode conservateur ?



François Meyer, au 2019-03-22 :
> Je cherche à patcher un fichier sans rien lui retirer.
>
> Autrement dit, ajouter à un fichier  les lignes d'un autre
> fichier mais seulement celles qui n'y sont pas déjà.
>
> Il doit y avoir une option dans diff ou patch, mais je ne
> trouve pas, et la seule solution (sale) que j'ai trouvée
> consiste à effacer les lignes commençant par "-" dans le
> fichier patch puis à appliquer le patch normalement sur le
> fichier à incrémenter.

Bonjour François,

Les programmes diff et patch ont été écrit dans une optique de
génie logiciel, où retirer des lignes a autant d'importance que
d'en ajouter.  Filtrer le résultat du diff pour votre cas
d'usage comme vous le faite n'a rien de bien choquant, tant que
ce n'est pas pour mettre à jour du code source.  :)

Si vraiment vous voulez minimiser le nombre de commandes lancées
par votre script, jetez un œil au manuel de diff(1), à partir de
l'option -D, il semble qu'il y ait des options de formatage qui
permette des manipulations intéressantes sur la sortie de diff.
Notez toutefois que manipuler le formatage n'est pas compatible
avec les options -u et -U.  Je crains cependant que la
lisibilité de votre script n'en pâtisse.

Mais si vraiment les performances sont un problème, une
réimplémentation en langage compilé (C, Rust, ...) du problème
que vous voulez résoudre peut être une solution plus appropriée.

À vous de voir...

Amicalement,
-- 
Étienne Mollier <etienne.mollier@mailoo.org>

All opinions are my own.



Reply to: