What are you using in Arch that you can't find in Mercurial?

Mark A. Flacy mflacy at verizon.net
Thu Feb 1 06:57:37 UTC 2007


Greetings.

This question came up back in November (prior to my using Mercurial).  I  
have used Arch since it was larch (the script-based initial version) for  
developing an internal project of my own which is also used where I  
work.  Unfortunately for me, I am now required to share development with  
co-workers who are stuck using Windows.  I had looked at both bzr and  
mercurial to migrate my repository and ended up choosing mercurial.

Arch had a rather well developed name space for branches of development,  
the archive/category--branch--version format. (A feature that a lot of  
people hated with a white-hot passion, AFAICT.) You could create a  
working directory from a specific branch of development and ask the  
working directory what branch you were in.  The branch had a version  
number.  The initial version of a branch had a base-0 revision number  
and subsequent changesets had revision numbers patch-1, patch-2, etc.   
You could "seal" a branch of development during a commit which would  
create a revision number of version-0.  You could not commit against  
that branch after sealing it unless you specifically added a "--fix"  
option to commit which would add the revision number versionfix-1,  
versionfix-2, etc.

When I finally pulled my head out of my ass and actually *used* that  
framework, I found it a lot easier to manage my release versions.  (I've  
released over 100 versions of that tool in the past 5 years.)  TLA  
provided commands to get the current revision number along with the  
version number from the branch itself which I in turn passed along to my  
build script.  The version number of the software was a property of the  
branch where it was developed, which made a lot of sense to me.

Hand-managing the version numbers simply created merge problems as well  
as giving me one more thing to screw up at release time.

Right now, I see no way to get that functionality in mercurial.   
*Please* prove me wrong.




More information about the Mercurial mailing list