Mercurial > hg
changeset 48438:715e4e81e39a
branching: merge stable into default
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 08 Dec 2021 10:14:37 +0100 |
parents | 0994125a31e5 (current diff) 6e4999cb085e (diff) |
children | 9cf5ac8c7109 |
files | |
diffstat | 11 files changed, 110 insertions(+), 68 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgsigs Mon Dec 06 12:30:54 2021 -0800 +++ b/.hgsigs Wed Dec 08 10:14:37 2021 +0100 @@ -219,3 +219,4 @@ 750920b18aaaddd654756be40dec59d90f2643be 0 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
--- a/.hgtags Mon Dec 06 12:30:54 2021 -0800 +++ b/.hgtags Wed Dec 08 10:14:37 2021 +0100 @@ -232,3 +232,4 @@ 750920b18aaaddd654756be40dec59d90f2643be 5.9.2 6ee0244fc1cf889ae543d2ce0ec45201ae0be6e1 5.9.3 a44bb185f6bdbecc754996d8386722e2f0123b0a 6.0rc0 +5d08b289e2e526259d7d5ea32b70fe76d5b327d7 6.0
--- a/contrib/packaging/dockerrpm Mon Dec 06 12:30:54 2021 -0800 +++ b/contrib/packaging/dockerrpm Wed Dec 08 10:14:37 2021 +0100 @@ -18,13 +18,8 @@ CONTAINER=hg-docker-$PLATFORM -if [[ -z "${HG_DOCKER_OWN_USER}" ]]; then - DOCKERUID=1000 - DOCKERGID=1000 -else - DOCKERUID=$(id -u) - DOCKERGID=$(id -g) -fi +DOCKERUID=$(id -u) +DOCKERGID=$(id -g) $BUILDDIR/hg-docker build \ --build-arg UID=$DOCKERUID \
--- a/contrib/packaging/mercurial.spec Mon Dec 06 12:30:54 2021 -0800 +++ b/contrib/packaging/mercurial.spec Wed Dec 08 10:14:37 2021 +0100 @@ -27,6 +27,7 @@ Version: snapshot Release: 0 License: GPLv2+ +Prefix: / Group: Development/Tools URL: https://mercurial-scm.org/ Source0: %{name}-%{version}-%{release}.tar.gz
--- a/hgext/fsmonitor/__init__.py Mon Dec 06 12:30:54 2021 -0800 +++ b/hgext/fsmonitor/__init__.py Wed Dec 08 10:14:37 2021 +0100 @@ -336,7 +336,7 @@ nonnormalset = { f for f, e in self._map.items() - if e.v1_state() != "n" or e.v1_mtime() == -1 + if e.v1_state() != b"n" or e.v1_mtime() == -1 } copymap = self._map.copymap
--- a/hgext/fsmonitor/pywatchman/bser.c Mon Dec 06 12:30:54 2021 -0800 +++ b/hgext/fsmonitor/pywatchman/bser.c Wed Dec 08 10:14:37 2021 +0100 @@ -28,6 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#define PY_SSIZE_T_CLEAN #include <Python.h> #include <bytesobject.h> #ifdef _MSC_VER @@ -1052,7 +1053,7 @@ int64_t* total_len_out) { const char* start = NULL; const char* data = NULL; - int datalen = 0; + Py_ssize_t datalen = 0; const char* end; int64_t expected_len; off_t position; @@ -1101,7 +1102,7 @@ static PyObject* bser_loads(PyObject* self, PyObject* args, PyObject* kw) { const char* data = NULL; - int datalen = 0; + Py_ssize_t datalen = 0; const char* start; const char* end; int64_t expected_len;
--- a/mercurial/cext/pathencode.c Mon Dec 06 12:30:54 2021 -0800 +++ b/mercurial/cext/pathencode.c Wed Dec 08 10:14:37 2021 +0100 @@ -176,7 +176,7 @@ if (newobj) { assert(PyBytes_Check(newobj)); - Py_SIZE(newobj)--; + Py_SET_SIZE(newobj, Py_SIZE(newobj) - 1); _encodedir(PyBytes_AS_STRING(newobj), newlen, path, len + 1); } @@ -791,7 +791,7 @@ if (newobj) { assert(PyBytes_Check(newobj)); - Py_SIZE(newobj)--; + Py_SET_SIZE(newobj, Py_SIZE(newobj) - 1); basicencode(PyBytes_AS_STRING(newobj), newlen, path, len + 1); }
--- a/mercurial/revlogutils/nodemap.py Mon Dec 06 12:30:54 2021 -0800 +++ b/mercurial/revlogutils/nodemap.py Wed Dec 08 10:14:37 2021 +0100 @@ -147,7 +147,7 @@ if revlog._nodemap_file is None: msg = "calling persist nodemap on a revlog without the feature enabled" raise error.ProgrammingError(msg) - repo.svfs.unlink(revlog._nodemap_file) + repo.svfs.tryunlink(revlog._nodemap_file) def persist_nodemap(tr, revlog, pending=False, force=False):
--- a/mercurial/upgrade_utils/engine.py Mon Dec 06 12:30:54 2021 -0800 +++ b/mercurial/upgrade_utils/engine.py Wed Dec 08 10:14:37 2021 +0100 @@ -7,6 +7,7 @@ from __future__ import absolute_import +import errno import stat from ..i18n import _ @@ -633,16 +634,29 @@ util.copyfile( srcrepo.vfs.join(b'requires'), backupvfs.join(b'requires') ) - util.copyfile( - srcrepo.vfs.join(b'dirstate'), backupvfs.join(b'dirstate') - ) + try: + util.copyfile( + srcrepo.vfs.join(b'dirstate'), backupvfs.join(b'dirstate') + ) + except (IOError, OSError) as e: + # The dirstate does not exist on an empty repo or a repo with no + # revision checked out + if e.errno != errno.ENOENT: + raise assert srcrepo.dirstate._use_dirstate_v2 == (old == b'v2') srcrepo.dirstate._map.preload() srcrepo.dirstate._use_dirstate_v2 = new == b'v2' srcrepo.dirstate._map._use_dirstate_v2 = srcrepo.dirstate._use_dirstate_v2 srcrepo.dirstate._dirty = True - srcrepo.vfs.unlink(b'dirstate') + try: + srcrepo.vfs.unlink(b'dirstate') + except (IOError, OSError) as e: + # The dirstate does not exist on an empty repo or a repo with no + # revision checked out + if e.errno != errno.ENOENT: + raise + srcrepo.dirstate.write(None) scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements)
--- a/tests/test-fix.t Mon Dec 06 12:30:54 2021 -0800 +++ b/tests/test-fix.t Wed Dec 08 10:14:37 2021 +0100 @@ -1795,10 +1795,10 @@ > --config "fix.log:pattern=glob:**.log" $ cat $LOGFILE | sort | uniq -c - 4 bar.log - 4 baz.log - 3 foo.log - 2 qux.log + \s*4 bar.log (re) + \s*4 baz.log (re) + \s*3 foo.log (re) + \s*2 qux.log (re) $ cd ..
--- a/tests/test-upgrade-repo.t Mon Dec 06 12:30:54 2021 -0800 +++ b/tests/test-upgrade-repo.t Wed Dec 08 10:14:37 2021 +0100 @@ -1634,30 +1634,24 @@ $ hg debugupgraderepo --run nothing to do -#if rust +#if no-rust + + $ cat << EOF >> $HGRCPATH + > [storage] + > dirstate-v2.slow-path = allow + > EOF + +#endif Upgrade to dirstate-v2 - $ hg debugformat -v --config format.exp-rc-dirstate-v2=1 - format-variant repo config default - fncache: yes yes yes + $ hg debugformat -v --config format.exp-rc-dirstate-v2=1 | grep dirstate-v2 dirstate-v2: no yes no - dotencode: yes yes yes - generaldelta: yes yes yes - share-safe: no no no - sparserevlog: yes yes yes - persistent-nodemap: yes yes no - copies-sdc: no no no - revlog-v2: yes yes no - changelog-v2: no no no - plain-cl-delta: yes yes yes - compression: zstd zstd zstd - compression-level: default default default $ hg debugupgraderepo --config format.exp-rc-dirstate-v2=1 --run upgrade will perform the following actions: requirements - preserved: dotencode, exp-revlogv2.2, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store + preserved: * (glob) added: dirstate-v2 dirstate-v2 @@ -1677,23 +1671,10 @@ removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) $ ls .hg/upgradebackup.*/dirstate .hg/upgradebackup.*/dirstate (glob) - $ hg debugformat -v - format-variant repo config default - fncache: yes yes yes + $ hg debugformat -v | grep dirstate-v2 dirstate-v2: yes no no - dotencode: yes yes yes - generaldelta: yes yes yes - share-safe: no no no - sparserevlog: yes yes yes - persistent-nodemap: yes yes no - copies-sdc: no no no - revlog-v2: yes yes no - changelog-v2: no no no - plain-cl-delta: yes yes yes - compression: zstd zstd zstd - compression-level: default default default $ hg status - $ dd status=none bs=12 count=1 if=.hg/dirstate + $ dd bs=12 count=1 if=.hg/dirstate 2> /dev/null dirstate-v2 Downgrade from dirstate-v2 @@ -1702,7 +1683,7 @@ upgrade will perform the following actions: requirements - preserved: dotencode, exp-revlogv2.2, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store + preserved: * (glob) removed: dirstate-v2 processed revlogs: @@ -1717,21 +1698,69 @@ downgrading from dirstate-v2 to v1 replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob) removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob) - $ hg debugformat -v - format-variant repo config default - fncache: yes yes yes + $ hg debugformat -v | grep dirstate-v2 dirstate-v2: no no no - dotencode: yes yes yes - generaldelta: yes yes yes - share-safe: no no no - sparserevlog: yes yes yes - persistent-nodemap: yes yes no - copies-sdc: no no no - revlog-v2: yes yes no - changelog-v2: no no no - plain-cl-delta: yes yes yes - compression: zstd zstd zstd - compression-level: default default default $ hg status -#endif + $ cd .. + +dirstate-v2: upgrade and downgrade from and empty repository: +------------------------------------------------------------- + + $ hg init --config format.exp-rc-dirstate-v2=no dirstate-v2-empty + $ cd dirstate-v2-empty + $ hg debugformat | grep dirstate-v2 + dirstate-v2: no + +upgrade + + $ hg debugupgraderepo --run --config format.exp-rc-dirstate-v2=yes + upgrade will perform the following actions: + + requirements + preserved: * (glob) + added: dirstate-v2 + + dirstate-v2 + "hg status" will be faster + + processed revlogs: + - all-filelogs + - changelog + - manifest + + beginning upgrade... + repository locked and read-only + creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) + (it is safe to interrupt this process any time before data migration completes) + upgrading to dirstate-v2 from v1 + replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) + removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) + $ hg debugformat | grep dirstate-v2 + dirstate-v2: yes + +downgrade + + $ hg debugupgraderepo --run --config format.exp-rc-dirstate-v2=no + upgrade will perform the following actions: + + requirements + preserved: * (glob) + removed: dirstate-v2 + + processed revlogs: + - all-filelogs + - changelog + - manifest + + beginning upgrade... + repository locked and read-only + creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) + (it is safe to interrupt this process any time before data migration completes) + downgrading from dirstate-v2 to v1 + replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob) + removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob) + $ hg debugformat | grep dirstate-v2 + dirstate-v2: no + + $ cd ..