[darcs-users] [patch304] Reduce DarcsFlag usage in Darcs.Patch and Darcs.Repository
Petr Rockai
me at mornfall.net
Sat Jul 17 14:25:19 UTC 2010
Eric Kow <kowey at darcs.net> writes:
> On Fri, Jul 16, 2010 at 22:56:47 +0200, Petr Rockai wrote:
> Are you sure?
>
> While I agree with your characterisation of how the modified
> makeScriptsExecutable (optionally constrained by patch sequence), I was
> saying that the new approach is almost imperceptibly looser because it
> affects the shebang file whether or not the patches in question actually
> touch the shebang line whereas the old approach only fires on hunk line
> 1 patches that add a shebang. At least, that's how I understand the
> implications of the change. I'm personally happy either way and I think
> users won't even notice. Just checking that we have a shared understanding.
Oh, I see what you mean now. Interestingly enough, the code could be
fairly easily (although at a performance cost) adapted to do what was
the original intention (the "optimum" case below).
To enumerate the behaviours:
- old code (apply does the +x-ing): files that go through a shebang
stage end up +x regardless of the final state of the file
(i.e. non-shebang working files may be executable as a result)
- new code (we check every touched file for shebangs): files that are
touched that were previously non-executable but have a shebang become
executable (but we get rid of the above bug)
- optimum: files that get a shebang added by this patchset (i.e. they
have shebang at the end of the sequence, and not before the patchset)
and no other
I don't think it's worth losing any more sleep, though. :)
>> Right, we ought and I wanted to, but GHC gave me super-mysterious error
>> about constraints (even though I believe that with the about
>> non-irrelevant change to Patchy, the contexts all match up, GHC
>> disagrees and wants Conflict added to some contexts... I have no idea
>> why. I'll look into it in a bit...)
>
> Is it because of these instances?
>
> src/Darcs/Patch/Viewing.hs:instance (Conflict p, Patchy p) => Patchy (FL p)
> src/Darcs/Patch/Viewing.hs:instance (Conflict p, Patchy p) => Patchy (RL p)
Bingo. Good catch.
More information about the darcs-users
mailing list