Bug#842362: cme: Please add a subcommand to show the semantic differences of two files

Dominique Dumont dod at debian.org
Wed Nov 2 19:05:41 UTC 2016


On Wednesday, 26 October 2016 18:26:01 CET you wrote:
> it would be nice if I could do something like the following with cme:
> 
>   $ cme diff dpkg-control pkg1/debian/control pkg2/debian/control
> 
> This should show me the semantic differences between two files after
> they have been parsed, i.e. independently of statement orders (for
> formats where it doesn't matter) and comments.

Yes, I've had that feature on my mind for quite a while. 

There's 2 ways to handle such a diff.

Either run internally 'cme dump dpkg-control' on both package and run a diff 
on the result (you can try that on your side to see if this fits your need).
This may not produce the expected result when comparing lists like Build-
Depends: the same list of packages listed in different order will produce a 
diff even if the lists are the same for dpkg. 

Or I could design a class to scan both trees and produce a diff. This will 
raise some challenges:
- how to compare list ? (same problem as above). Should I enhance the model to 
mention that list order does not matter even if the order must be respected to 
avoid bothering user.
- how to show difference when ordered hash of node have a different order ? 
(e.g. same binary packages are listed in a different order)
- how to detect diff in a list of nodes (I've no example for Dpkg, but this 
case could arise for other models). How can I detect that list with object A B 
and C is different from list A, B and D where only the content of the object 
matter ? (note that there are similarities between this problem and the one 
above)

> cme probably has already most things it needs including a way to show
> differences. AFAIK currently differences are only shown as "what cme
> would change", not as differences between two configurations.

Yes. This is done by recording changes which is quite different from comparing 
2 existing trees.

Note that your idea is interesting, but there's still a lot of head scratching 
involved....

I'll welcome other ideas to solve this problem.

All the best

-- 
 https://github.com/dod38fr/   -o- http://search.cpan.org/~ddumont/
http://ddumont.wordpress.com/  -o-   irc: dod at irc.debian.org



More information about the pkg-perl-maintainers mailing list