[darcs-users] darcs patch: resolve issue525: canonize output of sort_coalesceFL i...

David Roundy droundy at darcs.net
Sun Nov 16 20:42:00 UTC 2008


On Sat, Nov 15, 2008 at 11:17:52PM +0000, Eric Kow wrote:
> Hi David,
> 
> On Sat, Nov 15, 2008 at 16:25:41 -0500, David Roundy wrote:
> > Here's a fix for issue525, which turned out to be trivial.
> 
> Applied, thanks!  But I confess that I don't fully understand this.
> 
> resolve issue525: canonize output of sort_coalesceFL in AmendRecord.
> --------------------------------------------------------------------
> > David Roundy <droundy at darcs.net>**20081115211925
> >  Ignore-this: cb7485c971d7d8d6f7ffce9f9ec40e98
> > ] hunk ./src/Darcs/Commands/AmendRecord.lhs 193
> > -    in n2pia $ infodepspatch new_pinf pdeps $ fromPrims $ sort_coalesceFL $
> > -       concatFL $
> > -       mapFL_FL canonize $ oldchs +>+ chs
> > +    in n2pia $ infodepspatch new_pinf pdeps $ fromPrims $ concatFL $ mapFL_FL canonize
> > +           $ sort_coalesceFL $ concatFL $ mapFL_FL canonize $ oldchs +>+ chs
> 
> Do you think you could provide some examples of what a realistic
> non-canonical representation of a patch would be (compared to the
> canonical one) and also an explanation of why running sort_coalesceFL
> on them can result in their decanonicalisation?

canonize is a very poor name for this function, which really just
simplifies the patches.

> Also, is there any reason to still canonize the patches before we
> sort_coalesce them?

I'm not sure, but I don't think it'll hurt.

> Is this snippet from issue525 an example of a non-canonical patch?
> 
> hunk ./ChangeLog 1
> -2007-08-29  Alexey Shchepin  <alexey at process-one.net>
> +2007-08-29  Mickael Remond  <mremond at process-one.net>
> +
> +       * doc/guide.tex: Documentation for XML based optimisation build
> +       time option (EJAB-298)
> hunk ./ChangeLog 6
> +2007-08-29  Alexey Shchepin  <alexey at process-one.net>
> +       

No, canonize only operates on single primitive patches, and neither of
these two primitive patches can be simplified.  This pair of patches can't
be simplified into the below unless you add some additional information
about the initial line 2.

> With its canonical representation being something like the below?
> 
> hunk ./ChangeLog 1
> +2007-08-29  Mickael Remond  <mremond at process-one.net>
> +
> +       * doc/guide.tex: Documentation for XML based optimisation build
> +       time option (EJAB-298)
> +       
>
> If so, that makes me a bit confused about the relationship between
> coalescing and canonizing...


More information about the darcs-users mailing list