##// END OF EJS Templates
branching: merge stable into default
Raphaël Gomès -
r49269:715e4e81 merge default
parent child Browse files
Show More
@@ -219,3 +219,4 b' 86a60679cf619e14cee9442f865fcf31b142cb9f'
219 219 750920b18aaaddd654756be40dec59d90f2643be 0 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
@@ -232,3 +232,4 b' 86a60679cf619e14cee9442f865fcf31b142cb9f'
232 232 750920b18aaaddd654756be40dec59d90f2643be 5.9.2
233 233 6ee0244fc1cf889ae543d2ce0ec45201ae0be6e1 5.9.3
234 234 a44bb185f6bdbecc754996d8386722e2f0123b0a 6.0rc0
235 5d08b289e2e526259d7d5ea32b70fe76d5b327d7 6.0
@@ -18,13 +18,8 b' DOCKER=$($BUILDDIR/hg-docker docker-path'
18 18
19 19 CONTAINER=hg-docker-$PLATFORM
20 20
21 if [[ -z "${HG_DOCKER_OWN_USER}" ]]; then
22 DOCKERUID=1000
23 DOCKERGID=1000
24 else
25 DOCKERUID=$(id -u)
26 DOCKERGID=$(id -g)
27 fi
21 DOCKERUID=$(id -u)
22 DOCKERGID=$(id -g)
28 23
29 24 $BUILDDIR/hg-docker build \
30 25 --build-arg UID=$DOCKERUID \
@@ -27,6 +27,7 b' Name: mercurial'
27 27 Version: snapshot
28 28 Release: 0
29 29 License: GPLv2+
30 Prefix: /
30 31 Group: Development/Tools
31 32 URL: https://mercurial-scm.org/
32 33 Source0: %{name}-%{version}-%{release}.tar.gz
@@ -336,7 +336,7 b' def overridewalk(orig, self, match, subr'
336 336 nonnormalset = {
337 337 f
338 338 for f, e in self._map.items()
339 if e.v1_state() != "n" or e.v1_mtime() == -1
339 if e.v1_state() != b"n" or e.v1_mtime() == -1
340 340 }
341 341
342 342 copymap = self._map.copymap
@@ -28,6 +28,7 b' OR TORT (INCLUDING NEGLIGENCE OR OTHERWI'
28 28 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 29 */
30 30
31 #define PY_SSIZE_T_CLEAN
31 32 #include <Python.h>
32 33 #include <bytesobject.h>
33 34 #ifdef _MSC_VER
@@ -1052,7 +1053,7 b' static int pdu_info_helper('
1052 1053 int64_t* total_len_out) {
1053 1054 const char* start = NULL;
1054 1055 const char* data = NULL;
1055 int datalen = 0;
1056 Py_ssize_t datalen = 0;
1056 1057 const char* end;
1057 1058 int64_t expected_len;
1058 1059 off_t position;
@@ -1101,7 +1102,7 b' static PyObject* bser_pdu_len(PyObject* '
1101 1102
1102 1103 static PyObject* bser_loads(PyObject* self, PyObject* args, PyObject* kw) {
1103 1104 const char* data = NULL;
1104 int datalen = 0;
1105 Py_ssize_t datalen = 0;
1105 1106 const char* start;
1106 1107 const char* end;
1107 1108 int64_t expected_len;
@@ -176,7 +176,7 b' PyObject *encodedir(PyObject *self, PyOb'
176 176
177 177 if (newobj) {
178 178 assert(PyBytes_Check(newobj));
179 Py_SIZE(newobj)--;
179 Py_SET_SIZE(newobj, Py_SIZE(newobj) - 1);
180 180 _encodedir(PyBytes_AS_STRING(newobj), newlen, path, len + 1);
181 181 }
182 182
@@ -791,7 +791,7 b' PyObject *pathencode(PyObject *self, PyO'
791 791
792 792 if (newobj) {
793 793 assert(PyBytes_Check(newobj));
794 Py_SIZE(newobj)--;
794 Py_SET_SIZE(newobj, Py_SIZE(newobj) - 1);
795 795 basicencode(PyBytes_AS_STRING(newobj), newlen, path,
796 796 len + 1);
797 797 }
@@ -147,7 +147,7 b' def delete_nodemap(tr, repo, revlog):'
147 147 if revlog._nodemap_file is None:
148 148 msg = "calling persist nodemap on a revlog without the feature enabled"
149 149 raise error.ProgrammingError(msg)
150 repo.svfs.unlink(revlog._nodemap_file)
150 repo.svfs.tryunlink(revlog._nodemap_file)
151 151
152 152
153 153 def persist_nodemap(tr, revlog, pending=False, force=False):
@@ -7,6 +7,7 b''
7 7
8 8 from __future__ import absolute_import
9 9
10 import errno
10 11 import stat
11 12
12 13 from ..i18n import _
@@ -633,16 +634,29 b' def upgrade_dirstate(ui, srcrepo, upgrad'
633 634 util.copyfile(
634 635 srcrepo.vfs.join(b'requires'), backupvfs.join(b'requires')
635 636 )
636 util.copyfile(
637 srcrepo.vfs.join(b'dirstate'), backupvfs.join(b'dirstate')
638 )
637 try:
638 util.copyfile(
639 srcrepo.vfs.join(b'dirstate'), backupvfs.join(b'dirstate')
640 )
641 except (IOError, OSError) as e:
642 # The dirstate does not exist on an empty repo or a repo with no
643 # revision checked out
644 if e.errno != errno.ENOENT:
645 raise
639 646
640 647 assert srcrepo.dirstate._use_dirstate_v2 == (old == b'v2')
641 648 srcrepo.dirstate._map.preload()
642 649 srcrepo.dirstate._use_dirstate_v2 = new == b'v2'
643 650 srcrepo.dirstate._map._use_dirstate_v2 = srcrepo.dirstate._use_dirstate_v2
644 651 srcrepo.dirstate._dirty = True
645 srcrepo.vfs.unlink(b'dirstate')
652 try:
653 srcrepo.vfs.unlink(b'dirstate')
654 except (IOError, OSError) as e:
655 # The dirstate does not exist on an empty repo or a repo with no
656 # revision checked out
657 if e.errno != errno.ENOENT:
658 raise
659
646 660 srcrepo.dirstate.write(None)
647 661
648 662 scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements)
@@ -1795,10 +1795,10 b' fixed.'
1795 1795 > --config "fix.log:pattern=glob:**.log"
1796 1796
1797 1797 $ cat $LOGFILE | sort | uniq -c
1798 4 bar.log
1799 4 baz.log
1800 3 foo.log
1801 2 qux.log
1798 \s*4 bar.log (re)
1799 \s*4 baz.log (re)
1800 \s*3 foo.log (re)
1801 \s*2 qux.log (re)
1802 1802
1803 1803 $ cd ..
1804 1804
@@ -1634,30 +1634,24 b' Demonstrate that nothing to perform upgr'
1634 1634 $ hg debugupgraderepo --run
1635 1635 nothing to do
1636 1636
1637 #if rust
1637 #if no-rust
1638
1639 $ cat << EOF >> $HGRCPATH
1640 > [storage]
1641 > dirstate-v2.slow-path = allow
1642 > EOF
1643
1644 #endif
1638 1645
1639 1646 Upgrade to dirstate-v2
1640 1647
1641 $ hg debugformat -v --config format.exp-rc-dirstate-v2=1
1642 format-variant repo config default
1643 fncache: yes yes yes
1648 $ hg debugformat -v --config format.exp-rc-dirstate-v2=1 | grep dirstate-v2
1644 1649 dirstate-v2: no yes no
1645 dotencode: yes yes yes
1646 generaldelta: yes yes yes
1647 share-safe: no no no
1648 sparserevlog: yes yes yes
1649 persistent-nodemap: yes yes no
1650 copies-sdc: no no no
1651 revlog-v2: yes yes no
1652 changelog-v2: no no no
1653 plain-cl-delta: yes yes yes
1654 compression: zstd zstd zstd
1655 compression-level: default default default
1656 1650 $ hg debugupgraderepo --config format.exp-rc-dirstate-v2=1 --run
1657 1651 upgrade will perform the following actions:
1658 1652
1659 1653 requirements
1660 preserved: dotencode, exp-revlogv2.2, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store
1654 preserved: * (glob)
1661 1655 added: dirstate-v2
1662 1656
1663 1657 dirstate-v2
@@ -1677,23 +1671,10 b' Upgrade to dirstate-v2'
1677 1671 removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1678 1672 $ ls .hg/upgradebackup.*/dirstate
1679 1673 .hg/upgradebackup.*/dirstate (glob)
1680 $ hg debugformat -v
1681 format-variant repo config default
1682 fncache: yes yes yes
1674 $ hg debugformat -v | grep dirstate-v2
1683 1675 dirstate-v2: yes no no
1684 dotencode: yes yes yes
1685 generaldelta: yes yes yes
1686 share-safe: no no no
1687 sparserevlog: yes yes yes
1688 persistent-nodemap: yes yes no
1689 copies-sdc: no no no
1690 revlog-v2: yes yes no
1691 changelog-v2: no no no
1692 plain-cl-delta: yes yes yes
1693 compression: zstd zstd zstd
1694 compression-level: default default default
1695 1676 $ hg status
1696 $ dd status=none bs=12 count=1 if=.hg/dirstate
1677 $ dd bs=12 count=1 if=.hg/dirstate 2> /dev/null
1697 1678 dirstate-v2
1698 1679
1699 1680 Downgrade from dirstate-v2
@@ -1702,7 +1683,7 b' Downgrade from dirstate-v2'
1702 1683 upgrade will perform the following actions:
1703 1684
1704 1685 requirements
1705 preserved: dotencode, exp-revlogv2.2, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store
1686 preserved: * (glob)
1706 1687 removed: dirstate-v2
1707 1688
1708 1689 processed revlogs:
@@ -1717,21 +1698,69 b' Downgrade from dirstate-v2'
1717 1698 downgrading from dirstate-v2 to v1
1718 1699 replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
1719 1700 removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1720 $ hg debugformat -v
1721 format-variant repo config default
1722 fncache: yes yes yes
1701 $ hg debugformat -v | grep dirstate-v2
1723 1702 dirstate-v2: no no no
1724 dotencode: yes yes yes
1725 generaldelta: yes yes yes
1726 share-safe: no no no
1727 sparserevlog: yes yes yes
1728 persistent-nodemap: yes yes no
1729 copies-sdc: no no no
1730 revlog-v2: yes yes no
1731 changelog-v2: no no no
1732 plain-cl-delta: yes yes yes
1733 compression: zstd zstd zstd
1734 compression-level: default default default
1735 1703 $ hg status
1736 1704
1737 #endif
1705 $ cd ..
1706
1707 dirstate-v2: upgrade and downgrade from and empty repository:
1708 -------------------------------------------------------------
1709
1710 $ hg init --config format.exp-rc-dirstate-v2=no dirstate-v2-empty
1711 $ cd dirstate-v2-empty
1712 $ hg debugformat | grep dirstate-v2
1713 dirstate-v2: no
1714
1715 upgrade
1716
1717 $ hg debugupgraderepo --run --config format.exp-rc-dirstate-v2=yes
1718 upgrade will perform the following actions:
1719
1720 requirements
1721 preserved: * (glob)
1722 added: dirstate-v2
1723
1724 dirstate-v2
1725 "hg status" will be faster
1726
1727 processed revlogs:
1728 - all-filelogs
1729 - changelog
1730 - manifest
1731
1732 beginning upgrade...
1733 repository locked and read-only
1734 creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
1735 (it is safe to interrupt this process any time before data migration completes)
1736 upgrading to dirstate-v2 from v1
1737 replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob)
1738 removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
1739 $ hg debugformat | grep dirstate-v2
1740 dirstate-v2: yes
1741
1742 downgrade
1743
1744 $ hg debugupgraderepo --run --config format.exp-rc-dirstate-v2=no
1745 upgrade will perform the following actions:
1746
1747 requirements
1748 preserved: * (glob)
1749 removed: dirstate-v2
1750
1751 processed revlogs:
1752 - all-filelogs
1753 - changelog
1754 - manifest
1755
1756 beginning upgrade...
1757 repository locked and read-only
1758 creating temporary repository to stage upgraded data: $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
1759 (it is safe to interrupt this process any time before data migration completes)
1760 downgrading from dirstate-v2 to v1
1761 replaced files will be backed up at $TESTTMP/dirstate-v2-empty/.hg/upgradebackup.* (glob)
1762 removing temporary repository $TESTTMP/dirstate-v2-empty/.hg/upgrade.* (glob)
1763 $ hg debugformat | grep dirstate-v2
1764 dirstate-v2: no
1765
1766 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now