Best Practices: Keeping the Repository History Understandable

Evan Jones ejones at uwaterloo.ca
Sun Jul 22 11:44:21 CDT 2007


I would like to take advantage of Mercurial's distributed nature, but  
I'm curious if people find the revision history understandable. The  
FAQ suggests creating lots of local repositories for working on  
various changes, which seems great. In fact, I would like to take  
advantage of this by doing something like this:

1. Create a change to implement the "foo" feature. I commit it to my  
local repository.
2. Email someone/my team and say "please review change A in  
repository url."
3. They critique it, I make some fixes (or maybe they make some  
fixes: cool!). This happens a few times. (awesome: on each review  
cycle, reviewers can easily just see what I've updated, rather than  
having to review all the changes again)
4. Finally, the change is ready, and someone pushes the "finished"  
set of changes into the "main" repository.

My concern here is that I am potentially cluttering up my history  
with "intermediate" changes. ("fix the comment on the header";  
"change the interface on the Bar class"). I'm not convinced that I  
actually care very much about the intermediate steps. When I'm  
browsing a file's history in the main repository, trying to figure  
out what broke, I think I want to see the "foo" feature and one  
"step". From a higher level perspective, the main repository really  
just saw 1 change, despite the fact that the "foo" feature was pushed  
as N changesets.

Maybe the answer is use MQ to avoid committing changes which aren't  
100% polished and ready to go into the main repository? Or maybe this  
is a non-issue. In browsing the Mercurial or Mozilla project  
histories, I don't see a lot of "temporary" commits, so I'm assuming  
that people aren't doing the above. So what are people doing?

Thanks for any advice you may have,

Evan Jones

--
Evan Jones
http://evanjones.ca/


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://selenic.com/pipermail/mercurial/attachments/20070722/fc7c38af/attachment.htm 


More information about the Mercurial mailing list