[Bug 6931] New: hg incoming can fail when a server has pull bundles enabled

mercurial-bugs at mercurial-scm.org mercurial-bugs at mercurial-scm.org
Thu Oct 24 08:56:00 UTC 2024


https://bz.mercurial-scm.org/show_bug.cgi?id=6931

            Bug ID: 6931
           Summary: hg incoming can fail when a server has pull bundles
                    enabled
           Product: Mercurial
           Version: 6.6.3
          Hardware: PC
                OS: Windows
            Status: UNCONFIRMED
          Severity: feature
          Priority: wish
         Component: Mercurial
          Assignee: bugzilla at mercurial-scm.org
          Reporter: gklittlejohn at googlemail.com
                CC: mercurial-devel at mercurial-scm.org
    Python Version: ---

The client version is TortoiseHg/Mercurial 6.6.3 (current release). 
The server is running hgweb from Mercurial 6.8.1 with evolve 11.1.4 on Linux.
The repository has the clonebundles and evolve extensions enabled. evolve is
enabled  as pull bundles gave an error saying it was required when a
pullbundles.manifest was added and a pull attempted.
pull bundles were generated to reduce server load during CI processes.

I have a pull bundle generated on the server. Changesets have been pushed after
the pull bundle was generated. 

A user has a local repository which overlaps with the the range of the pull
bundle but they are missing some changes which are included in the pull bundle.

When they run hg incoming I would expect it to show the changes they don't have
however in this case it displays an error (there isn't anything logged on the
server):

% hg incoming --debug
using http://xxxx
sending capabilities command
comparing with http://xxxx
query 1; heads
sending batch command
searching for changes
taking initial sample
query 2; still undecided: 340, sample size is: 200
sending known command
sampling from both directions
query 3; still undecided: 65, sample size is: 65
sending known command
3 total queries in 0.2876s
sending getbundle command
bundle2-input-part: total payload size 34800671
bundle2-input-part: total payload size 40
bundle2-input-part: total payload size 2779
(sent 5 HTTP requests and 17170 bytes; received 14546871 bytes in responses)
abort: 00changelog at 594430dad9705cf63179c08d726ff4615863b274: no node
[command returned code 255 Thu Oct 24 09:14:49 2024]

If the server side repository didn't have any changesets after the generated
pull bundle, the pull bundle just seems to get sent when a client runs hg
incoming, so it potentially shows changesets that aren't incoming. I'd logged
it here as I thought it was maybe a TortoiseHg issue:

https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5998#note_369183

As I couldn't find a lot of documentation on this feature for reference I have
generate bundles using:
hg bundle --base xxxx -r yyyy.hg/xxxxyyyy.hg

I've added entries to a pullbundles.manifest files such as:

xxxxyyyy.hg BUNDLESPEC=bzip2-v2 heads=yyyy bases=xxxx

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the Mercurial-devel mailing list