David A. Greene
greened at obbligato.org
Fri Jul 29 06:42:12 PDT 2011
jo at durchholz.org writes:
> Currently, I tend to break out small incremental changes to they're
> easier to review, but this works only up to a certain point. What
> happens is that I find I need some "enabler" change. Adding a data
> structure to carry enough context to the place where my new code needs
> it. The other thing is "sideline work": while reviewing code for my
> change, I find something unrelated that should really be fixed right
> away. Low-hanging fruit and such. I commit enablers and sideline
> changes, but I find I can't do so if there is already main-task work
> done in that file.
> With git, I can single out individual changes in a file and send them off
> as a preparatory commit.
> With SVN, I have to set up a separate workdir, start the IDE, do the
> change, and commit it; then merge it back into my mainline workdir. That's
> so much more work that it disrupts the flow of work, so I don't do it and
> end with a jumble of unrelated changes in a single patch.
> Anybody I'd be sending the patch to would probably reject it as "too many
> unrelated changes". I'd probably end up redoing any change twice: once
> just to get a clean base, then doing it "right" as a series of
> individually applicable small patches.
> Which is raising the entry barrier for contributing to LLVM considerably.
> At least for people with a workflow similar to mine.
This is absolutely true and mirrors my experience. It became much
easier to respond to patch feedback with git than it had been with svn.
More information about the llvm-dev