Mercurial > hg-stable
view contrib/dockerlib.sh @ 33727:fda0867cfe03
exchange: drop support for lock-based unbundling (BC)
Locking over the wire protocol and the "addchangegroup" wire
protocol command has been deprecated since e8c4f3d3df8c, which was
first part of Mercurial 0.9.1.
Support for handling these commands from sshserver was dropped in
9f6e0e7ef828 in 2015, effectively locking out pre 0.9.1 clients
from new servers.
However, client-side code for calling lock and addchangegroup is
still present in exchange.py and the various peer classes to
facilitate pushing to pre 0.9.1 servers.
The lock-based pushing mechanism is extremely brittle. 0.9.1 was
released in July 2006 and I highly doubt anyone is still running
such an ancient version of Mercurial on a server. I'm about to
refactor the peer API and I don't think it is worth keeping
support for this ancient protocol feature. So, this commit removes
client support for the lock-based pushing mechanism. This means
modern clients will no longer be able to push to pre 0.9.1 servers.
Differential Revision: https://phab.mercurial-scm.org/D264
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Sun, 06 Aug 2017 17:44:56 -0700 |
parents | a3ac1ea611ce |
children | 1335bbfb066f |
line wrap: on
line source
#!/bin/sh -eu # This function exists to set up the DOCKER variable and verify that # it's the binary we expect. It also verifies that the docker service # is running on the system and we can talk to it. function checkdocker() { if which docker.io >> /dev/null 2>&1 ; then DOCKER=docker.io elif which docker >> /dev/null 2>&1 ; then DOCKER=docker else echo "Error: docker must be installed" exit 1 fi $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; } $DOCKER version | grep -Eq "^Client( version)?:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; } $DOCKER version | grep -Eq "^Server( version)?:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; } } # Construct a container and leave its name in $CONTAINER for future use. function initcontainer() { [ "$1" ] || { echo "Error: platform name must be specified"; exit 1; } DFILE="$ROOTDIR/contrib/docker/$1" [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; } CONTAINER="hg-dockerrpm-$1" DBUILDUSER=build ( cat $DFILE if [ $(uname) = "Darwin" ] ; then # The builder is using boot2docker on OS X, so we're going to # *guess* the uid of the user inside the VM that is actually # running docker. This is *very likely* to fail at some point. echo RUN useradd $DBUILDUSER -u 1000 else echo RUN groupadd $DBUILDUSER -g `id -g` -o echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER -o fi ) | $DOCKER build --build-arg http_proxy --build-arg https_proxy --tag $CONTAINER - }