##// END OF EJS Templates
wireprotov2: allow multiple fields to follow revision maps...
wireprotov2: allow multiple fields to follow revision maps The *data wire protocol commands emit a series of CBOR values. Because revision/delta data may be large, their data is emitted outside the map as a top-level bytestring value. Before this commit, we'd emit a single optional bytestring value after the revision descriptor map. This got the job done. But it was limiting in that we could only send a single field. And, it required the consumer to know that the presence of a key in the map implied the existence of a following bytestring value. This commit changes the encoding strategy so top-level bytestring values in the stream are explicitly denoted in a "fieldsfollowing" key. This key contains an array defining what fields that follow and the expected size of each field. By defining things this way, we can easily send N bytestring values without any ambiguity about their order. In addition, clients only need to know how to parse ``fieldsfollowing`` to know if extra values are present. Because this breaks backwards compatibility, we've bumped the version number of the wire protocol version 2 API endpoint. Differential Revision: https://phab.mercurial-scm.org/D4620

File last commit:

r23934:975c4fc4 stable
r39839:d059cb66 default
Show More
hg.bat
19 lines | 475 B | application/x-msdownload | BatchLexer
@echo off
rem Windows Driver script for Mercurial
setlocal
set HG=%~f0
rem Use a full path to Python (relative to this script) if it exists,
rem as the standard Python install does not put python.exe on the PATH...
rem Otherwise, expect that python.exe can be found on the PATH.
rem %~dp0 is the directory of this script
if exist "%~dp0..\python.exe" (
"%~dp0..\python" "%~dp0hg" %*
) else (
python "%~dp0hg" %*
)
endlocal
exit /b %ERRORLEVEL%