[darcs-users] Coalescing patches

Florent Becker florent.becker at ens-lyon.org
Thu Sep 24 12:26:49 UTC 2009

Nik <darcs <at> babel.homelinux.net> writes:

> Hi Stephen,
> Well, I'm still learning lots about the problem space I'm looking at, 
> and so far I'm still happy with my original design.
> Stephen J. Turnbull wrote:
> > Nik writes:
> >
> > My personal belief is that That Is What
> > VCS Is All About.   You should take that with a grain of salt, but
> > it will help you to evaluate where I'm coming from.
> >   
> Ok. The main reason I went with darcs all those years ago was that it 
> didn't force me to consider everything as a historical tree as CVS did, 
> and I was *so* happy to get away from that. I guess I've always seen the 
> historical bent of Mercurial and Git as "the dark side showing through 
> again". :o)
> > I see why others see your idea as basically a tag.  I don't really
> > have an opinion on whether they really differ (no time to think
> > carefully).
> >   
> I replied to this in more detail in another post, but basically a darcs 
> tag is a new patch that describes the association of other patches also 
> in the repo. My concept of the coalesced (unified?) patch is that it is 
> a single patch that *replaces* the other patches it associates.

I'm not too fan of that idea, since it means making darcs' patch theory more
complex, while we all praise its simplicity. What you can do is name all your
small-scale patches with some keyword such as [minute] or [draft]. Then whenever
you want to work at coarse scale, you use --match "not name [minute]" together
with --dont-prompt-for-deps (ie, you put that in the _darcs/preferences of the
coarse repo). This has the result of letting you select the "real" patches,
while hiding the detail patches.

With the current implementation, there is the slight drawback that you cannot
see the detail of the small patches (hitting 'v' in patch selection shows
nothing). All you need to make that drawback go away is to add a "show this
patch dependencies" action in patch selection.

I think that this allows to have your coalesced patches with only UI logic and
no changes in darcs' core.

More information about the darcs-users mailing list