Hi Guido, *,

On Thu, Jul 30, 2009 at 12:00 AM, Guido Ostkamp<[email protected]> wrote:
>
> you always
> have to clone the whole repo [...]
>
> This costs tons of additional disk space and CPU time because you have to
> rebuild everything from the ground up

This is not true for any filesystem that supports hardlinks.
Do a clone only, then an update. Only when you don't clone it
completely, you have to rebuild everything (and indeed, that is rather
slow, and furthermore you won't have history for anything that
happened after the revision you based your clone on, so this is not
what you usually want).

But again: Cloning is fast when using hardlinks and cloning the full
repo. Also it then doesn't need much diskspace either. If you trust
your editors/other tools, you can even use hardlinks for the files
under version control, not only fo the repository's data.

So use hg clone -U and then update (repo-only (-U) for a "fresh" tree,
if you intend to merge/switch, then copy all (leave out -U)). Don't
use hg clone -r <revision>.

Switching/merging/updating trees is rather fast then.

> Even the repo history must be duplicated in Mercurial if the clone is not to
> be placed on the same physical filesystem because the hardlinks don't work
> in this case (which requires n times the storage).

This is true, but is this really relevant?

> Furthermore you would possibly need multiple repository clones to keep track
> of several remote branches in Mercurial.
>
> With Git you can follow multiple remote branches in just one repo, you can
> setup cheap branches which can be completely removed from history (when
> everything is integrated upstream) and you can have one base-repo somewhere
> in your filesystem and multiple clones elsewhere which just reference the
> base repo without copying it.

Well, the clones are references to the base as well, so you can pull
from that base withoutt problem, so in fact having one base-repo and
several slave-clones is the default in mercurial.

(And I really hope OOo will continue to have just one master server,
with cws code checked in early, and not having a magnitude of
individual servers that drift away significantly. If I have to pull
from some other repo than the main OOo one, I'd be very disappointed)

ciao
Christian

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to