monotone-devel
[Top][All Lists]
Advanced

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

Re: [Monotone-devel] Re: Stable version?


From: Nathaniel Smith
Subject: Re: [Monotone-devel] Re: Stable version?
Date: Sat, 18 Dec 2004 17:16:40 -0800
User-agent: Mutt/1.5.6+20040907i

On Sat, Dec 18, 2004 at 04:40:31PM -0700, Derek Scherger wrote:
> Richard Levitte - VMS Whacker wrote:
> >Oh, in the working copy.  I had made a change to a file (.mt-attrs) in
> >one of my projects, and then realised that it was wrong, and instead
> >of doing a "monotone revert", I simply removed the changes by editing.
> >The result was that I got a diff that consisted of exactly these two
> >lines when doing "monotone diff":
> >
> >  --- .mt-attrs
> >  +++ .mt-attrs
> >
> >I'm assuming that a "touch .mt-attrs" would have given the same
> >result.  Now that I've upgraded my own local installation of monotone
> 
> I believe that the status of a file is determined purely by checking 
> it's current sha1 against the sha1 it had in the manifest it was checked 
> out from. So touch should not make any difference to the status of a 
> file as far as monotone is concerned.
> 
> I wonder if there is some other buglet lurking here?

That's correct; Monotone never ever looks at file modification times
or the like.  (At some point that might be a worthwhile optimization,
but no-one's really felt -- or at least, scratched -- that itch yet.)

So it's almost certainly hiding a buglet of some kind, so I
'disapprove'd (reverted) Richard's change.

Then making sure the 'disapprove' worked, I almost immediately found
one bug of this class: it seems that in the current changeset
concatenation logic, "patch [a] -> [b]" and "patch [b] -> [a]"
concatenate to "patch [a] -> [a]", rather than "" (i.e., nothing).
This is at the least not normalized... and normalize_change_set doesn't
notice this case.

Also, we should probably detect ill-formedness of this type in the
changeset printer and parser, because we never want to commit such
things to text... (except in the debug messages spit out when such
ill-formedness is detected, I suppose).

So, I count:
  - need to fix concatenation logic
  - should normalize_change_set check for this case?
  - need to fix assertion logic

-- Nathaniel

-- 
"Lull'd in the countless chambers of the brain,
Our thoughts are link'd by many a hidden chain:
Awake but one, and lo! what myriads rise!
Each stamps its image as the other flies"
  -- Ann Ward Radcliffe, The Mysteries of Udolpho




reply via email to

[Prev in Thread] Current Thread [Next in Thread]