trouble with .hgignore and hg pull

Benedikt Spranger b.spranger at linutronix.de
Thu Aug 4 12:53:40 CDT 2005


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.

---8<---
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
[rev][6]
-    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
(node))
+       return ret
+
     def linkrev(self, node): return self.index[self.nodemap[node]][3]
     def parents(self, node):
         if node == nullid: return (nullid, nullid)
---8<---

> 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!
:-(

After some commits I added .hgignore. After that I did some work at this
repro.

> Did you have an unclean fsck recently or something?
No. 

Benedikt Spranger




More information about the Mercurial mailing list