Re: How can you end up with a discrepancy between branchmap and heads?

2024-05-13 Thread Pierre-Yves David

Just to quick reply to point that some extension tweak these commands.

For example, topic hide draft changeset with topic to client without 
topic (but still allow a pull with an explicit hash). Topic is probably 
not involved here because these changeset are public, but that's an 
exemple of things that might happens.


I am just back from two week of pto, and I won't have time to have a 
deeper look to this right now, but please ping me again next week if I 
forgot to get back to you by then.


On 5/4/24 23:10, Mike Hommey wrote:

Hi,

I'm trying to reproduce a peculiarity of the (former) pypy mercurial
repository (https://foss.heptapod.net/pypy/pypy) but I can't manage to
reproduce locally, even if I stream-clone the original repository (with
hg --config experimental.evolution=true clone --stream $url).

So, what's peculiar about the repository is that the following changesets
aren't listed in its heads (https://foss.heptapod.net/pypy/pypy?cmd=heads):
   96b962f458200a4757ea4a5ddf00b0ef73f267a5
   dd73cf12b2d2d1b0c8420fe5d64b3a372db20a29
   9787f52124b1bf6086b1286bb16fcbd2cca4ed80
   d5ab4175e409e094208483118daa5a7bffd37141
   2eb83a0fb3e9c1b5712aea9d767c3a775b3aaf85

but they appear in the branchmap
(https://foss.heptapod.net/pypy/pypy?cmd=branchmap).

If you clone the repository, you don't end up with them locally, but if you
hg pull -r $sha1, you can get them.

So far, I've ruled out obsolescence markers and phases being a possible
source. I'm trying to generate a minimal reproducer to write a testcase
for git-cinnabar. I guess, worst case scenario, I could change the listed
heads via an extension? But I'm also curious what's up with the original
repository. Bad cache?

I know of other cases where that can happen, namely, when the head of a
named branch is merged into another branch and is thus not a topological
head. But that's not the case here.

Mike
___
Mercurial-devel mailing list
Mercurial-devel@lists.mercurial-scm.org
https://lists.mercurial-scm.org/mailman/listinfo/mercurial-devel


--
Pierre-Yves David
___
Mercurial-devel mailing list
Mercurial-devel@lists.mercurial-scm.org
https://lists.mercurial-scm.org/mailman/listinfo/mercurial-devel


How can you end up with a discrepancy between branchmap and heads?

2024-05-04 Thread Mike Hommey
Hi,

I'm trying to reproduce a peculiarity of the (former) pypy mercurial
repository (https://foss.heptapod.net/pypy/pypy) but I can't manage to
reproduce locally, even if I stream-clone the original repository (with
hg --config experimental.evolution=true clone --stream $url).

So, what's peculiar about the repository is that the following changesets
aren't listed in its heads (https://foss.heptapod.net/pypy/pypy?cmd=heads):
  96b962f458200a4757ea4a5ddf00b0ef73f267a5
  dd73cf12b2d2d1b0c8420fe5d64b3a372db20a29
  9787f52124b1bf6086b1286bb16fcbd2cca4ed80
  d5ab4175e409e094208483118daa5a7bffd37141
  2eb83a0fb3e9c1b5712aea9d767c3a775b3aaf85

but they appear in the branchmap
(https://foss.heptapod.net/pypy/pypy?cmd=branchmap).

If you clone the repository, you don't end up with them locally, but if you
hg pull -r $sha1, you can get them.

So far, I've ruled out obsolescence markers and phases being a possible
source. I'm trying to generate a minimal reproducer to write a testcase
for git-cinnabar. I guess, worst case scenario, I could change the listed
heads via an extension? But I'm also curious what's up with the original
repository. Bad cache?

I know of other cases where that can happen, namely, when the head of a
named branch is merged into another branch and is thus not a topological
head. But that's not the case here.

Mike
___
Mercurial-devel mailing list
Mercurial-devel@lists.mercurial-scm.org
https://lists.mercurial-scm.org/mailman/listinfo/mercurial-devel