[Developers] Re: patch: CactusEinstein/IDAxiBrillBH cleanup

Jonathan Thornburg jthorn at aei.mpg.de
Fri May 20 07:53:39 CDT 2005


Hi, Tom,

> In general, small, specific patches will get quicker attention, and thus 
> lower latency, than big patches which do lots of different things.  If you'd 
> sent a note out to developers that you were doing this, and followed with a 
> sequence of patches as you did things, it would have been easier.

Well, actually I _did_ send a note out to developers about an early
(partial) version of this set of changes.
   http://www.cactuscode.org/pipermail/developers/2005-April/000822.html

It wasn't a full-fledged "patch" then, because I didn't yet think I
had a working version of IDAxiBrillBH.  (In hindsight I _did_ have a
working version, the bugs I was seeing lay elsewhere.  But I didn't
know that then...)

The only reply I saw was from Erik,
   http://www.cactuscode.org/pipermail/developers/2005-April/000823.html
suggesting that I keep backwards compatability.  Inspired by his
suggestion, I did so in my later changes.



There is a larger problem, however:

> although as you note at the bottom it
> would be good if you could split the commits into smaller units, each
> addressing an individual thing, e.g.
> 
>      relabeling latex
>      adding comments to param.ccl
>      adding the interpolator parameters
>      adding new output (I agree that it should really be a GF so we can
>                         use standard Cactus IO methods)
>      add debugging stuff
>      adding new stuff to the documentation
>      etc

Let's look for a moment at the process by which I could do this:

1. start with old version from CVS
2. discover and fix problem #1
3. create 'version 2 - version 1' patch, write description,
    and send the whole thing to the appropriate mailing list
4. go on to discover and fix problem #2
5. oops, how do I create a 'version 4 - version 2' patch?
    I don't have a copy of version #2 any more, and it's not in CVS
    (because the 'version 2 - version 1' patch hasn't been approved yet)
    Ok, so I need to check out a clean copy of the old version from CVS,
    and roll it forward with the 'version 2 - version 1' patch.

As you can see, this gets rapidly (maybe even quadratically) messier
as one accumulates more and more changes.  By the time you get the
dozen-plus changes incorporated in my current IDAxiBrillBH patch,
it's just not practical.

I admit that, had I known 6 weeks ago that I was going to make such
extensive changes, I might have saved lots of intermediate versions.
But I didn't.

 	[In fact, it's even worse than that.
 	Even if I had saved a 'version 2', a "version 4 - version 2'
 	patch wouldn't apply cleanly after the 'version 2 - version 1'
 	patch had been committed... because the $Header:$ lines
 	in all the files will be different.]





So, to repeat the closing question from my patch message:

> Apart from "switch to darcs", is there an elegant solution to this
> problem?

Should I create a private CVS branch for each code change that I
think I might eventually want to submit as a formal patch?

ciao,

-- 
-- Jonathan Thornburg <jthorn at aei.mpg.de>
    Max-Planck-Institut fuer Gravitationsphysik (Albert-Einstein-Institut),
    Golm, Germany, "Old Europe"     http://www.aei.mpg.de/~jthorn/home.html
    "Washing one's hands of the conflict between the powerful and the
     powerless means to side with the powerful, not to be neutral."
                                       -- quote by Freire / poster by Oxfam




More information about the Developers mailing list