[PATCH 6 of 6] largefiles: modernize how capabilities are added to the wire protocol
Yuya Nishihara
yuya at tcha.org
Sun Jan 7 01:28:22 EST 2018
On Sat, 06 Jan 2018 19:42:35 -0500, Matt Harbison wrote:
> On Sat, 06 Jan 2018 15:56:43 -0500, Matt Harbison <mharbison72 at gmail.com>
> wrote:
> >> On Jan 6, 2018, at 3:09 PM, Augie Fackler <raf at durin42.com> wrote:
> >>> On Jan 5, 2018, at 1:19 AM, Yuya Nishihara <yuya at tcha.org> wrote:
> >>> On Tue, 02 Jan 2018 23:55:08 -0500, Matt Harbison wrote:
> >>>>> On Thu, 28 Dec 2017 08:04:01 -0500, Yuya Nishihara <yuya at tcha.org>
> >>>>> wrote:
> >>>>>> On Wed, 27 Dec 2017 03:27:58 -0500, Matt Harbison wrote:
> >>>>>> # HG changeset patch
> >>>>>> # User Matt Harbison <matt_harbison at yahoo.com>
> >>>>>> # Date 1514349649 18000
> >>>>>> # Tue Dec 26 23:40:49 2017 -0500
> >>>>>> # Node ID f2e5631c99e6e2c7e9bac058185c24dd73a04e98
> >>>>>> # Parent 25ecea2ec3d7844c9146bf878fc5093ab33b6e11
> >>>>>> largefiles: modernize how capabilities are added to the wire
> >>>>>> protocol
> >>>>>
> >>>>> Looks good to me, so queued, thanks.
> >>>>
> >>>> Any thoughts on how the client can let the server know it has the
> >>>> extension loaded, so I can close off the last hole in this series?
> >>>
> >>> CC +indygreg, augie
> >>>
> >>> I think there were some discussion about advertising client's
> >>> capability,
> >>> but I don't remember.
> >>
> >> OOC, why do we want the client to be advertising that it groks
> >> largefiles to the server? I have a guess, but I’d like that explained
> >> before I start trying to figure out what we need to support...
> >
> > I’m not in front of a computer right now, but see this. I think it is
> > related to choking on the external flag that it doesn’t understand
> > without the extension.
> >
> > https://www.mercurial-scm.org/repo/hg-all/file/fa865878a849/tests/test-lfs-serve.t#l189
>
> To put a little meat on this:
>
> 1) A requirement should always be added when a commit adding lfs files
> appears in a repo. Otherwise cryptic errors occur. Pulling from a remote
> server is the last hole I'm aware of.
>
> 2) The error referenced above is because client and server can't agree on
> a common changegroup. LFS forces only changegroup3. See the error log at
> the bottom of the test. (Aside: you previously mentioned aiming to take
> the experimental shrink wrap off LFS after the next cycle. But IDK if we
> want a non-experimental thing depending on something experimental, and IDK
> how far from being finalize changegroup3 is.)
Isn't that a server issue which should fail gracefully if no common changegroup
version found?
> 3) If changegroup3 is manually enabled, then the server error no longer
> happens on that clone, but rather the client blows up:
>
> $ hg clone -q http://localhost:$HGPORT $TESTTMP/client4_clone --config
> experimental.changegroup3=True
> transaction abort!
> rollback completed
> abort: missing processor for flag '0x2000'!
> [255]
The error message can be made less cryptic as the core knows 0x2000 means
REVIDX_EXTSTORED.
More information about the Mercurial-devel
mailing list