trouble with .hgignore and hg pull
mpm at selenic.com
Thu Aug 4 13:10:54 CDT 2005
On Thu, Aug 04, 2005 at 07:53:40PM +0200, Benedikt Spranger wrote:
> On Thu, Aug 04, 2005 at 10:21 -0700, Matt Mackall wrote:
> > On Thu, Aug 04, 2005 at 06:35:09PM +0200, Benedikt Spranger wrote:
> > > On Thu, Aug 04, 2005 at 08:27 -0700, Matt Mackall wrote:
> > > > On Thu, Aug 04, 2005 at 01:30:50PM +0200, Benedikt Spranger wrote:
> > > > > IOError: [Errno 2] No such file or directory:
> > > > > '/path/to/hg/repos/A/.hg/data/.hgignore.d'
> > > > Does that file exist?
> > > No, .hg/data/.hgignore.i exists, .hg/data/.hgignore.d not.
> > That's bad.
> As a workaround I removed .hgignore and I was able to pull.
> After re-adding the .hgignore and pulling, I trigger a other Problem.
> I reached a key error in revlog.py. /path/to/B/.hg/.hgignore.i and
> .hgignore.d exists, but they are 0 Bytes long. The following patch
> throws a more verbose Errormessage.
> diff -r eef752151556 mercurial/revlog.py
> --- a/mercurial/revlog.py Tue Aug 2 07:34:23 2005
> +++ b/mercurial/revlog.py Thu Aug 4 19:44:34 2005
> @@ -157,7 +157,13 @@
> def tip(self): return self.node(len(self.index) - 1)
> def count(self): return len(self.index)
> def node(self, rev): return (rev < 0) and nullid or self.index
> - def rev(self, node): return self.nodemap[node]
> + def rev(self, node):
> + try:
> + ret = self.nodemap[node]
> + except KeyError:
> + raise KeyError("File: >" + self.datafile + "< node " + hex
> + return ret
> def linkrev(self, node): return self.index[self.nodemap[node]]
> def parents(self, node):
> if node == nullid: return (nullid, nullid)
> > 6000 errors? Ouch!
> > > How can I restore this repository?
> > Well, we can't really fix missing files. Is this the kernel repo?
> Yes. I setup some repos for different Boards and Kernelsubtrees.
> The .hgignore thing was the first problem I reached.
> > How did it get in this state?
> I cloned a git-converted Tree.
> 17446 files, 2391 changesets, 32019 total revisions
> 6836 integrity errors encountered!
Ahh. What did you convert them with? contrib/convert-repo?
There are some nasty silent problems with older copies of convert-repo
that appeared when the git packing was added. Old convert-repo read
git blobs directly, and if it tried to read a blob that had been
packed, it wouldn't find it and would assume it had been deleted. This
resulted in tons of integrity errors.
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial