Issue #3582 resolved

Bookmarks are not pulled from external repository when accepting incoming changes

MKej
created an issue

As of Mercurial 2.3, all bookmarks should be pulled from external repository, regardless of the local repository status.

Currently when using two-step pulling process (check for incoming changes -> accept/reject) the bookmarks are not pulled from the server. As it is one of the most commonly used way to pull changes among my peers, it seriously limits the usefulness of bookmarks, as the devs need to do the one-step pull anyway.

Comments (5)

  1. Yuya Nishihara

    incomingbundle: extension to forward listkeys to source (refs #2497, #3582)

    Since hg e7fcf58acd71, bundle revisions are always set to draft phase. This change causes serious problem in TortoiseHg because our incoming->pull operation relies on the bug that bundle revisions had the same phase as their nearest ancestor, which was "public" in most cases.

    The incomingbundle extension works around it by forwarding "listkeys" request to the source repository.

    → <<cset 2125fdd2d1d1>>

  2. Yuya Nishihara
    • changed status to open

    sync: drop incomingbundle hack that can't handle phase movement (fixes #4060)

    Phase movement are applied to pullop.pulledsubset, which contains all local heads because they are common between local and bundle repositories. Therefore, all local changesets are bumped to public incorrectly.

    http://selenic.com/repo/hg/file/fbdd5195528f/mercurial/exchange.py#l1070

    It seems not possible to simulate phase movement by simple extension, so we'll need to change the way to pull incoming changesets without using HG10 bundle.

    (backed out changeset 227c8f165a97, 2125fdd2d1d1, reopens #2497, #3582)

    → <<cset de5e1a16eeb8>>

  3. Yuya Nishihara

    sync: do not trust incoming bundle, just re-pull (fixes #2497, #3582, #3847)

    There were several problems caused by incoming + pull bundle since pushkey mechanism was introduced:

    • pulling in wrong phase (#2497)
    • bookmarks are not pulled (#3582)
    • largefiles cannot be packed into bundle (#3847)

    Furthermore, the situation got worse as bundle revisions are always set to draft since Mercurial 3.3. I don't expect that it will get better soon even if the new bundle format is available, because "pull bundle" seems not a first-class feature of hg.

    So, this patch drops support for "hg pull" from incoming bundle. Further cleanups should go on default branch.

    → <<cset 8e06560a847a>>

  4. Log in to comment