Well, one of the reasons I dislike getting to this small change is that I would first:
- need to checkout Hudson,
- then figure out how to build it,
- then do the patch,
- then compile it and finally
- start using the changed Hudson.
- I would not need to checkout anything as the installed sources are everything I need.
- There would be no "build" rules.
- The patch would be done in-place.
- There would be no "compilation" step and
- There would be no "deploy" step so I can start using the new Hudson right away.
Imagine how easy would be to keep your changes in a separate branch (or Mercurial queues) and just rebase once in a while with the upstream codebase, tweak your patch a bit and have the latest running version as well as your changes.
Having everything pluggable is nice, but sometimes it would just be faster to edit the source.