kicad-developers team mailing list archive
Mailing list archive
Re: Interesting article
Philip Pemberton <ygroups@...>
Tue, 16 Dec 2008 14:01:40 +0000
Thunderbird 18.104.22.168 (Windows/20081105)
Jonas Diemer wrote:
2008-12-15, 20:06:27 - Dick Hollenbeck:
I think svn branches would be sufficient for our needs (we don't have 100s of
developers potentially creating branches).
I agree, but only partially. I use Mercurial -- there's an option called "hg
clone", which grabs a complete copy of the VCS repository, including the
entire change history. So I can clone the repository, take it with me, then do
some work on it while I'm on the road, away from an Internet connection. Once
I've made my changes, I commit them to my local copy, then either "push" them
to the repository (if I have write access), or email them to the project
maintainer as a patch-bundle.
This works, even to the point of being able to do something like this:
- Clone the repository, and check out TIP (=HEAD, #1239), which has a bug.
- Figure out that rev 1234 doesn't have the bug
- Run 'hg bisect 1234 1239'. Hg starts picking revisions using a
successive-approximation method, and after a few test cycles you find that
#1237 was the first rev with that bug.
- Run 'hg diff' to see what changed between #1236 and #1237
- Narrow down the bug and fix it in 1237
- Merge in the changes up to TIP (1239)
- Run 'hg diff' to check for any silly mistakes in the bugfix
- 'hg commit' to commit the change
- 'hg push' to push it into the remote server's repository
All this (except the first and last steps) can happen without any network access.
Truth be told, the offline access and bisect were the two reasons I switched
from SVN to Hg, but I still use SVN (mainly tracking changes to KiCAD
schematics and device firmware).