[darcs-users] darcs annotate format obscures the code

Ivan Stankovic ivan.stankovic at fer.hr
Tue Mar 22 16:49:58 UTC 2005


On Mon, Mar 21, 2005 at 08:14:09AM -0500, Michael Conrad wrote:
> Actually, the way I was proposing it, the numbers would never get reused.
> The reason is so that in the other use case (of attaching versions to
> released builds) if someone calls up with a bug in version x.y.z it will
> correspond to the exact repo-state that generated it, even if this repo
> state is no longer reachable.
> 
> For example, suppose I add a patch:
>   195 apply "Patch Blah...."
> and then release the code, and later:
>   207 remove "Patch Blah...."
> 
> and then someone reports a bug in "Version Main-1.0.3.195".  I then tell
> darcs to go back to version 195 and darcs fails with "Can't go pack beyond
> version 207: missing patch".  So, then I can look into the history file to
> see what patch I killed which prevents me from going back.  If I'm lucky,
> I'll still have that patch somewhere so that I can recreate the copy that
> the user is using.

Hmm, now I understand: you want to number each _revision_, in other words, a
complete state of repository at a given time.  My first suggestion was to
number only _applied patches_ so that you could get continuous patch numbers
(there are exactly 4 patches between patch 6 and patch 11, for example).
But then we'd have to give up on using patch numbers as full patch identifiers,
repo-specific, of course.

OTOH, using your approach makes full patch identifiers and lots of other things
possible, but we lose continuity of patch numbers. Think about it,

207 remove "Patch Blah...."

wouldn't really be a patch; the sole purpose of that line (as I see it)
would be to signify that the patch named "Patch Blah...." was removed
after revision (repository state?) 206 and before revision 208.

As far as I can say, you could reproduce each and every revision given only
the chronologically ordered set of patches that build that revision, so I'm
wondering if perhaps we could have best of both approaches: number only the
patches but log every action that changes the repository?  Are there any
situations where you might need "action numbers" (where action != patch
application)?

-- 
Ivan Stankovic, pokemon at fly.srk.fer.hr




More information about the darcs-users mailing list