[sword-devel] Huge commits in SVN+ possible bug in 1.8.0

Jaak Ristioja jaak at ristioja.ee
Wed Dec 20 17:42:17 MST 2017


Hello!

The last commit to SVN trunk (3547) on December 10 was a large one. The
commit message stated 7 different changes, one of which was "Fixed a ton
of initialization bugs in filters". Really nice bug finds! But it was a
terrible commit to try to understand. While trying to keep Sword++ in
sync with Sword SVN trunk, I ended up splitting that one commit into
about 20 different logical changes. Because I needed to grasp all the
separate changes it introduced, I think it was the most sensible thing
to do, given my limited intellectual abilities.

Doing so, I think I also found a bug accidentally introduced by the
commit into OSISXHTML::MyUserData::outputNewline(), which instead of
appending a newline to the preverse, appends "<div></div>", causing
tests to fail. You might want to take a look, because it seems to have
made it into the sword-1-8-0 tag.

Please try to avoid such mega-commits, if possible. Such are extremely
difficult to review, and scare people away. Try to "Commit early, commit
often", splitting your work into small logical changes which are easier
to reason about.  Logical commits in version control history also help
review of source code at a much later time, e.g. when developers dig
deep into the history to find some answers, having to reason their way
through such huge monoliths is usually very counter-productive.

I don't know how good SVN clients are nowadays, but with git, if one has
a ton of changes, one can selectively stage (for committing) a subset of
them using `git add`, `git add -p` or similar, and so effectively split
their changes into logical commits before pushing these to the central
repository.


Thank you and God bless!
J



More information about the sword-devel mailing list