D3532: wireprotov2: define and implement "rawstorefile" command

durin42 (Augie Fackler) phabricator at mercurial-scm.org
Thu May 31 15:39:36 EDT 2018

durin42 added a comment.

  I'm...not thrilled by the abstraction leak in this, but as long as it's strictly temporary on the path to saner partial clones I can live with it.


> wireprotocol.txt:1935
> +   (unsigned integer) Number of files being included in the payload.
> +totalsize
> +   (unsigned integer) Total size of all transferred file data, in bytes.

Having this here makes it infeasible to generate the revlog files on the fly, which means non-traditional storage backends won't ever be able to implement this endpoint efficiently.

Do we care? Should we note that this method is going to go away in all likelihood?

> martinvonz wrote in wireprotov2server.py:548-549
> I understand that you don't want to lock the repo for the entire operation, but I assume that also means that the result may fail `hg verify`? If changelog is always sent before the manifest (is it?), then you might have some orphan entries in the manifest if it had been written while the changelog was read.

By grabbing the size along with the list of files inside the lock, that won't happen. :)

  rHG Mercurial


To: indygreg, #hg-reviewers
Cc: durin42, lothiraldan, joerg.sonnenberger, martinvonz, mercurial-devel

More information about the Mercurial-devel mailing list