Tags & production questions

Matt Mackall mpm at selenic.com
Thu May 3 16:06:43 CDT 2007


On Thu, May 03, 2007 at 10:39:33PM +0200, Guido Ostkamp wrote:
> Hello Mark,
> 
> >> well, in my case the fix has already been developed. Of course, it 
> >> could be backported into a cloned repository, but having seperate 
> >> repositories for each version means that you don't have the complete 
> >> history in one repository so that tools showing the different branches 
> >> don't work any longer, correct?
> >
> > No.
> >
> > Your current development stream will still have *all* the history in it, 
> > minus the changes made in the cloned branch (i.e. the clone made at 
> > release time) until you merge them across.
> >
> > Your cloned stream will have all the history that was available when it 
> > was cloned.
> 
> that's exactly the point. If I do not merge it across, I cannot run e.g. 
> 'hg view' or 'hg glog' and see all my tags / branches at once. On the 
> other hand, if I merge it, then additional cloned repositories will just 
> use up additional space as the information is already available elsewhere.
> 
> > The least error prone method of branching in Mercurial (IMO) is via 
> > cloned repositories.
> 
> Ok, as it doesn't need to 'hg update -C rev' to switch.
> 
> >> Furthermore I think you need significantly more disk space if each 
> >> developer would have to keep several cloned repositories in his home 
> >> directory.
> >
> > If you are developing under Windows, maybe.  Linux/Unix will hard link 
> > on cloning if possible. See 
> > http://www.selenic.com/mercurial/wiki/index.cgi/WindowsInstall?highlight=%28cloning%29%7C%28hardlink%29#head-fdd32e8f8fd45ec6231a3bccb94cc6a66c21956b
> 
> I think I've learned from the manuals, that hardlinking is only done for 
> the history records, but not for the working copy which is usually around, 
> otherwise editing of files in a clone would have negative impacts on other 
> repositories. This means that keeping cloned repositories around needs a 
> lot more disk space unless one avoids to check out the working copy when 
> cloning or removes it after committing.
> 
> Even if there is no working copy around and hardlinks are possible, there 
> is still a possibly large number of extra inodes used for that.
> 
> On the other hand, disadvantage of a single repository would be that a 
> switch of the working copy is needed before any changes can be made to 
> another version, and one can't keep any uncomitted stuff around because it 
> might get overwritten.
> 
> By the way, I haven't found a command yet to get rid of the current 
> working copy of an repository (with the exception of creating another new 
> clone with 'hg clone -U'). Is there such a command, something like 'hg 
> clobber'?

You can check out the empty revision with "hg co null". If you want to
clobber changed files in the process, add -C. Removing ignored files
is another matter.

-- 
Mathematics is the supreme nostalgia of our time.


More information about the Mercurial mailing list