tags:

views:

35

answers:

1

Hi,

I’m new to mercurial, about 2 months now. We are using it on a new project and tried to create a new repo, a clone of the trunk, to be used as release “branch”.

We use a central repo, everyone is pulling/pushing to/from it over https using hgwebdir.cgi. Using on server hg 1.5.4 and “clients” various versions, 1.5.2 -> 1.6.3 Everything thing was ok. The clone was good (hg verify after clone), the only problem is that very soon this repo got corrupted (empty or missing ; in manifests not found).

The main repo is ok, only this release get broken very soon. The names of the repos are (folder names and published names, all reside in the same root folder):
A.B – for the trunk
A.B.Release – for the release repo
(read something in the docs, which sounded like this might be a issue – see

One other very strange thing is that checkins made only to trunk (A.B) are seen as available on the release branch, and they are displayed as errors on verify ( in manifests not found). Don’t understand how these got there.

Any clues?

A: 

It's not an answer, but I'll state that what you're doing is definitely supposed to work. Making sure the wire-protocol has full backwards compatibility is very important to the Mercurial folks.

The "cross-talk" between your two repos is very concerning and shouldn't happen unless someone erroniously used the share extension.

What if you try creating the A.B.Release clone by using clone --pull rather than clone by itself?

Ry4an
yes --pull solves the issue, as normal pull uses hardlinks to create the new repo and this is plain wrong from my point of view. Default should not do that, as one does not create a new repo just to have same data in two places they really want to independent repos.
florin