On Thu, Jan 28, 2010 at 6:08 AM, Grant Ingersoll <gsing...@apache.org>wrote:

>
> On Jan 28, 2010, at 12:13 AM, Jake Mannix wrote:
>
> > What do you do when your "svn stat | wc -l" returns "66", and you have
> fixes
> > for 6 of your 7 open bugs?  I'd like to check in, but I've also done some
> > local rearranging:
>
> Hmmm, my brain can usually only handle one or two fixes at a time!  FWIW,
> though, I usually keep separate checkouts or just do one at a time otherwise
> you can end up w/ a whole mess of interlinked changes.


That's what I've done in the past too - I have currently 15
trunk-with-patch-foo checkouts, and that turned into a bit of a mess too.
 But at least last night, the issue was that in doing vector perf work, as
soon as I stepped a broken unit test through the debugger, I tracked down
maybe 4 new bugs, and I knew I'd lose them if I made separate checkouts for
each one.


>  (This is one of the major reasons I like using Maven:  I can simply point
> IntelliJ at the fresh checkout and create a new project with all the right
> setup w/o any of the hassle of configuring dependencies, etc.)
>

Yep, that is very helpful, I do that too.  Although still unweildy to keep
track of which checkout has which patch applied and which ones have been svn
upped more recently than others...


> For me, it works best to create patches often and put them up on JIRA and
> then to revert my sandbox and start on the next one.
>

Yeah, I agree with that in principle, actually.   I think my OCD, when it
sees little bugs in all of my checkouts (each one fixed in one particular
other checkout), I forget which bug have been fixed, which ones have not
even been reported, and which ones are fixed in a separate checkout.

For big changes, I've been trying to learn git better, and that worked
really well for my decomposer import - I kept one git repo in one directory,
git pull'ed off of git.apache.org all the time into my local trunk, and then
spun off a bunch of different local branches which I periodically merged my
trunk into, and created patches based off of this repo, posted to JIRA when
tests were passing.

The nice thing about this is that I only had *one* directory for all of the
branches, and by "git branch foo", the local directory would change itself
around, and I didn't even need to open a new IntelliJ project - it would
pick up the changes for the new branch on the fly (this didn't work too well
with eclipse, as you have to remember to tell it to "refresh" the project,
and that sometimes takes forever to rebuild etc.  - the rebuilding indexes
in IntelliJ was far quicker).


> If, however, the changes are all related, then the right thing to do,
> probably, is to link them in JIRA so that people are aware of the changes.
>

What if they're not really related, but are in all the same classes and in
methods only two or three lines apart (making it really hard to make sure
you have patches which don't collide/conflict)?


> At any rate, since you've already made the commit, that's fine too!


No, I really would want to learn a good technique at playing nice with the
repository/the Apache Way/the Mahout Way, while still moving quickly on a)
fixing little bugs, and b) making progress on bigger issues workable (even
when I see the same little bug UNFIXED while on each bigger issue checkout).

I know most of this is my own psychology: combine working in big spurts with
OCD annoyance at seeing unfixed issues in the code I'm digging into, and you
get my issues.  This should hopefully resolve itself as we stabilize, and I
see less little unfixed bugs. :)

  -jake

Reply via email to