revlog: fix revlogio.packentry corner case
We want to store version information about the revlog in the first
entry of its index. The code in packentry was using some heuristics
to detect whether this was the first entry, but these heuristics could
fail in some cases (e.g. rev 0 was empty; rev 1 descends directly from
the nullid and is stored as a delta).
We now give the revision number to packentry to avoid heuristics.
% no working directory
adding a
adding b
adding c
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding c
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
% hg parents
changeset: 3:02d851b7e549
user: test
date: Thu Jan 01 00:00:03 1970 +0000
summary: c
% hg parents a
changeset: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
% hg parents c, single revision
changeset: 3:02d851b7e549
user: test
date: Thu Jan 01 00:00:03 1970 +0000
summary: c
% hg parents -r 3 c
abort: 'c' not found in manifest!
% hg parents -r 2
changeset: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
% hg parents -r 2 a
changeset: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
% hg parents -r 2 ../a
abort: ../a not under root
% cd dir; hg parents -r 2 ../a
changeset: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
% hg parents -r 2 path:a
changeset: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:01 1970 +0000
summary: a
% hg parents -r 2 glob:a
abort: can only specify an explicit file name
% merge working dir with 2 parents, hg parents c
merging c
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
changeset: 3:02d851b7e549
user: test
date: Thu Jan 01 00:00:03 1970 +0000
summary: c
changeset: 4:48cee28d4b4e
tag: tip
parent: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:04 1970 +0000
summary: c2
% merge working dir with 1 parent, hg parents
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
changeset: 2:6cfac479f009
user: test
date: Thu Jan 01 00:00:02 1970 +0000
summary: b
changeset: 4:48cee28d4b4e
tag: tip
parent: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:04 1970 +0000
summary: c2
% merge working dir with 1 parent, hg parents c
changeset: 4:48cee28d4b4e
tag: tip
parent: 1:d786049f033a
user: test
date: Thu Jan 01 00:00:04 1970 +0000
summary: c2