Ludovic Courtès (2014-11-02 20:59 +0300) wrote: > Alex Kost skribis: > >> In short, now (with this patch) after marking 2 generations (by pressing >> "m" in a “generation-list” buffer), you can perform diff/ediff on >> generation packages or manifests. Thanks to Ludovic for the idea. > > I just tried it, and I like it! > > There are cases where the output of ‘=’ is slightly confusing: the > buffers being compared don’t include the directory name of the packages, > so, when packages have been upgraded (different directory names, but > same version), it just says “no differences.” > > Perhaps the fix would be to add the directory names in the buffers being > diffed, in a format similar to that of ‘guix package -I’? Indeed, I added the store paths, thanks (the modified patch is attached). > I have another case where C-u = shows that the only difference is the > addition of one package, but = shows a diff with only minuses, as if > everything had been removed. Any idea what could be wrong? No idea, sorry (unless you manually erased "*Guix : generation *" buffer). Make sure that the following works in Guix REPL: (generation-package-specifications "/your/profile" gen-number) Also, kill "*Guix : generation *" buffer and try again. Or maybe: did you experiment with different profiles with the same name? I mean "/some/path/to/foo-profile" and "/another/path/to/foo-profile". >> +++ b/doc/emacs.texi >> @@ -239,6 +239,21 @@ Mark the current generation for deletion (with prefix, mark all >> generations). >> @item x >> Execute actions on the marked generations---i.e., delete generations. >> +@item e >> +Run Ediff (@pxref{Top,,, ediff, Ediff}) on package outputs installed in >> +the 2 marked generations. With prefix argument, run Ediff on manifests >> +of the marked generations. >> +@item D >> +@itemx = >> +Run Diff (@pxref{Diff Mode,,, emacs, The Emacs Editor}) on package >> +outputs installed in the 2 marked generations. With prefix argument, >> +run Diff on manifests of the marked generations. >> +@item + >> +List package outputs added to the latest marked generation comparing >> +with another marked generation. >> +@item - >> +List package outputs removed from the latest marked generation comparing >> +with another marked generation. > > Likewise, ‘u’ (for ‘upgraded’) could be added (possibly in a future > patch.) Probably in the future, as that "upgraded" thing has a different nature comparing with "added" and "removed". > Also, s/The Emacs Editor/GNU Emacs Manual/, which is the real title of > the Emacs manual as it appears in the texi source. Oh, I thought it should be the title which appears in the info (I mean the first line in the Top node). Perhaps "s/The Emacs Editor/The GNU Emacs Manual/"? As it's the most common (but not the one) variant in the Emacs Lisp manual, for example here: Also I used "The Emacs Editor" several times in “emacs.texi”. Should I replace all instances in this patch or make a separate commit for that? Just out of curiosity. Do you usually prefer "diff" over "ediff"? (I find the latter much convenient)