##// END OF EJS Templates
branching: merge stable into default
Raphaël Gomès -
r49268:082bac54 merge default draft
parent child Browse files
Show More
@@ -219,3 +219,4 b' 86a60679cf619e14cee9442f865fcf31b142cb9f'
219 750920b18aaaddd654756be40dec59d90f2643be 0 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
@@ -232,3 +232,4 b' 86a60679cf619e14cee9442f865fcf31b142cb9f'
232 750920b18aaaddd654756be40dec59d90f2643be 5.9.2
232 750920b18aaaddd654756be40dec59d90f2643be 5.9.2
233 6ee0244fc1cf889ae543d2ce0ec45201ae0be6e1 5.9.3
233 6ee0244fc1cf889ae543d2ce0ec45201ae0be6e1 5.9.3
234 a44bb185f6bdbecc754996d8386722e2f0123b0a 6.0rc0
234 a44bb185f6bdbecc754996d8386722e2f0123b0a 6.0rc0
235 5d08b289e2e526259d7d5ea32b70fe76d5b327d7 6.0
@@ -18,13 +18,8 b' DOCKER=$($BUILDDIR/hg-docker docker-path'
18
18
19 CONTAINER=hg-docker-$PLATFORM
19 CONTAINER=hg-docker-$PLATFORM
20
20
21 if [[ -z "${HG_DOCKER_OWN_USER}" ]]; then
21 DOCKERUID=$(id -u)
22 DOCKERUID=1000
22 DOCKERGID=$(id -g)
23 DOCKERGID=1000
24 else
25 DOCKERUID=$(id -u)
26 DOCKERGID=$(id -g)
27 fi
28
23
29 $BUILDDIR/hg-docker build \
24 $BUILDDIR/hg-docker build \
30 --build-arg UID=$DOCKERUID \
25 --build-arg UID=$DOCKERUID \
@@ -27,6 +27,7 b' Name: mercurial'
27 Version: snapshot
27 Version: snapshot
28 Release: 0
28 Release: 0
29 License: GPLv2+
29 License: GPLv2+
30 Prefix: /
30 Group: Development/Tools
31 Group: Development/Tools
31 URL: https://mercurial-scm.org/
32 URL: https://mercurial-scm.org/
32 Source0: %{name}-%{version}-%{release}.tar.gz
33 Source0: %{name}-%{version}-%{release}.tar.gz
@@ -336,7 +336,7 b' def overridewalk(orig, self, match, subr'
336 nonnormalset = {
336 nonnormalset = {
337 f
337 f
338 for f, e in self._map.items()
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 copymap = self._map.copymap
342 copymap = self._map.copymap
@@ -28,6 +28,7 b' OR TORT (INCLUDING NEGLIGENCE OR OTHERWI'
28 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */
29 */
30
30
31 #define PY_SSIZE_T_CLEAN
31 #include <Python.h>
32 #include <Python.h>
32 #include <bytesobject.h>
33 #include <bytesobject.h>
33 #ifdef _MSC_VER
34 #ifdef _MSC_VER
@@ -1052,7 +1053,7 b' static int pdu_info_helper('
1052 int64_t* total_len_out) {
1053 int64_t* total_len_out) {
1053 const char* start = NULL;
1054 const char* start = NULL;
1054 const char* data = NULL;
1055 const char* data = NULL;
1055 int datalen = 0;
1056 Py_ssize_t datalen = 0;
1056 const char* end;
1057 const char* end;
1057 int64_t expected_len;
1058 int64_t expected_len;
1058 off_t position;
1059 off_t position;
@@ -1101,7 +1102,7 b' static PyObject* bser_pdu_len(PyObject* '
1101
1102
1102 static PyObject* bser_loads(PyObject* self, PyObject* args, PyObject* kw) {
1103 static PyObject* bser_loads(PyObject* self, PyObject* args, PyObject* kw) {
1103 const char* data = NULL;
1104 const char* data = NULL;
1104 int datalen = 0;
1105 Py_ssize_t datalen = 0;
1105 const char* start;
1106 const char* start;
1106 const char* end;
1107 const char* end;
1107 int64_t expected_len;
1108 int64_t expected_len;
@@ -176,7 +176,7 b' PyObject *encodedir(PyObject *self, PyOb'
176
176
177 if (newobj) {
177 if (newobj) {
178 assert(PyBytes_Check(newobj));
178 assert(PyBytes_Check(newobj));
179 Py_SIZE(newobj)--;
179 Py_SET_SIZE(newobj, Py_SIZE(newobj) - 1);
180 _encodedir(PyBytes_AS_STRING(newobj), newlen, path, len + 1);
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 if (newobj) {
792 if (newobj) {
793 assert(PyBytes_Check(newobj));
793 assert(PyBytes_Check(newobj));
794 Py_SIZE(newobj)--;
794 Py_SET_SIZE(newobj, Py_SIZE(newobj) - 1);
795 basicencode(PyBytes_AS_STRING(newobj), newlen, path,
795 basicencode(PyBytes_AS_STRING(newobj), newlen, path,
796 len + 1);
796 len + 1);
797 }
797 }
@@ -147,7 +147,7 b' def delete_nodemap(tr, repo, revlog):'
147 if revlog._nodemap_file is None:
147 if revlog._nodemap_file is None:
148 msg = "calling persist nodemap on a revlog without the feature enabled"
148 msg = "calling persist nodemap on a revlog without the feature enabled"
149 raise error.ProgrammingError(msg)
149 raise error.ProgrammingError(msg)
150 repo.svfs.unlink(revlog._nodemap_file)
150 repo.svfs.tryunlink(revlog._nodemap_file)
151
151
152
152
153 def persist_nodemap(tr, revlog, pending=False, force=False):
153 def persist_nodemap(tr, revlog, pending=False, force=False):
@@ -94,6 +94,9 b' class improvement(object):'
94 # Whether this improvement changes repository requirements
94 # Whether this improvement changes repository requirements
95 touches_requirements = True
95 touches_requirements = True
96
96
97 # Whether this improvement changes working copy requirements
98 touches_wc_requirements = True
99
97 # Whether this improvement touches the dirstate
100 # Whether this improvement touches the dirstate
98 touches_dirstate = False
101 touches_dirstate = False
99
102
@@ -188,7 +191,8 b' class dirstatev2(requirementformatvarian'
188 touches_filelogs = False
191 touches_filelogs = False
189 touches_manifests = False
192 touches_manifests = False
190 touches_changelog = False
193 touches_changelog = False
191 touches_requirements = True
194 touches_requirements = False
195 touches_wc_requirements = True
192 touches_dirstate = True
196 touches_dirstate = True
193
197
194
198
@@ -719,10 +723,24 b' class UpgradeOperation(object):'
719 return set([a.name for a in self.upgrade_actions])
723 return set([a.name for a in self.upgrade_actions])
720
724
721 @property
725 @property
726 def wc_requirements_only(self):
727 # does the operation only touches repository requirement
728 return (
729 self.touches_wc_requirements
730 and not self.touches_requirements
731 and not self.touches_filelogs
732 and not self.touches_manifests
733 and not self.touches_changelog
734 and not self.touches_dirstate
735 )
736
737 @property
722 def requirements_only(self):
738 def requirements_only(self):
723 # does the operation only touches repository requirement
739 # does the operation only touches repository requirement
724 return (
740 return (
725 self.touches_requirements
741 (self.touches_requirements
742 or self.touches_wc_requirements
743 )
726 and not self.touches_filelogs
744 and not self.touches_filelogs
727 and not self.touches_manifests
745 and not self.touches_manifests
728 and not self.touches_changelog
746 and not self.touches_changelog
@@ -769,6 +787,19 b' class UpgradeOperation(object):'
769 return False
787 return False
770
788
771 @property
789 @property
790 def touches_wc_requirements(self):
791 for a in self.upgrade_actions:
792 # optimisations are used to re-process revlogs and does not result
793 # in a requirement being added or removed
794 if a.type == OPTIMISATION:
795 pass
796 elif a.touches_wc_requirements:
797 return True
798 for a in self.removed_actions:
799 if a.touches_wc_requirements:
800 return True
801
802 @property
772 def touches_requirements(self):
803 def touches_requirements(self):
773 for a in self.upgrade_actions:
804 for a in self.upgrade_actions:
774 # optimisations are used to re-process revlogs and does not result
805 # optimisations are used to re-process revlogs and does not result
@@ -7,6 +7,7 b''
7
7
8 from __future__ import absolute_import
8 from __future__ import absolute_import
9
9
10 import errno
10 import stat
11 import stat
11
12
12 from ..i18n import _
13 from ..i18n import _
@@ -633,16 +634,29 b' def upgrade_dirstate(ui, srcrepo, upgrad'
633 util.copyfile(
634 util.copyfile(
634 srcrepo.vfs.join(b'requires'), backupvfs.join(b'requires')
635 srcrepo.vfs.join(b'requires'), backupvfs.join(b'requires')
635 )
636 )
636 util.copyfile(
637 try:
637 srcrepo.vfs.join(b'dirstate'), backupvfs.join(b'dirstate')
638 util.copyfile(
638 )
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 assert srcrepo.dirstate._use_dirstate_v2 == (old == b'v2')
647 assert srcrepo.dirstate._use_dirstate_v2 == (old == b'v2')
641 srcrepo.dirstate._map.preload()
648 srcrepo.dirstate._map.preload()
642 srcrepo.dirstate._use_dirstate_v2 = new == b'v2'
649 srcrepo.dirstate._use_dirstate_v2 = new == b'v2'
643 srcrepo.dirstate._map._use_dirstate_v2 = srcrepo.dirstate._use_dirstate_v2
650 srcrepo.dirstate._map._use_dirstate_v2 = srcrepo.dirstate._use_dirstate_v2
644 srcrepo.dirstate._dirty = True
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 srcrepo.dirstate.write(None)
660 srcrepo.dirstate.write(None)
647
661
648 scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements)
662 scmutil.writereporequirements(srcrepo, upgrade_op.new_requirements)
@@ -1795,10 +1795,10 b' fixed.'
1795 > --config "fix.log:pattern=glob:**.log"
1795 > --config "fix.log:pattern=glob:**.log"
1796
1796
1797 $ cat $LOGFILE | sort | uniq -c
1797 $ cat $LOGFILE | sort | uniq -c
1798 4 bar.log
1798 \s*4 bar.log (re)
1799 4 baz.log
1799 \s*4 baz.log (re)
1800 3 foo.log
1800 \s*3 foo.log (re)
1801 2 qux.log
1801 \s*2 qux.log (re)
1802
1802
1803 $ cd ..
1803 $ cd ..
1804
1804
@@ -1634,30 +1634,24 b' Demonstrate that nothing to perform upgr'
1634 $ hg debugupgraderepo --run
1634 $ hg debugupgraderepo --run
1635 nothing to do
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 Upgrade to dirstate-v2
1646 Upgrade to dirstate-v2
1640
1647
1641 $ hg debugformat -v --config format.exp-rc-dirstate-v2=1
1648 $ hg debugformat -v --config format.exp-rc-dirstate-v2=1 | grep dirstate-v2
1642 format-variant repo config default
1643 fncache: yes yes yes
1644 dirstate-v2: no yes no
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 $ hg debugupgraderepo --config format.exp-rc-dirstate-v2=1 --run
1650 $ hg debugupgraderepo --config format.exp-rc-dirstate-v2=1 --run
1657 upgrade will perform the following actions:
1651 upgrade will perform the following actions:
1658
1652
1659 requirements
1653 requirements
1660 preserved: dotencode, exp-revlogv2.2, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store
1654 preserved: * (glob)
1661 added: dirstate-v2
1655 added: dirstate-v2
1662
1656
1663 dirstate-v2
1657 dirstate-v2
@@ -1677,23 +1671,10 b' Upgrade to dirstate-v2'
1677 removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1671 removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1678 $ ls .hg/upgradebackup.*/dirstate
1672 $ ls .hg/upgradebackup.*/dirstate
1679 .hg/upgradebackup.*/dirstate (glob)
1673 .hg/upgradebackup.*/dirstate (glob)
1680 $ hg debugformat -v
1674 $ hg debugformat -v | grep dirstate-v2
1681 format-variant repo config default
1682 fncache: yes yes yes
1683 dirstate-v2: yes no no
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 $ hg status
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 dirstate-v2
1678 dirstate-v2
1698
1679
1699 Downgrade from dirstate-v2
1680 Downgrade from dirstate-v2
@@ -1702,7 +1683,7 b' Downgrade from dirstate-v2'
1702 upgrade will perform the following actions:
1683 upgrade will perform the following actions:
1703
1684
1704 requirements
1685 requirements
1705 preserved: dotencode, exp-revlogv2.2, fncache, generaldelta, persistent-nodemap, revlog-compression-zstd, sparserevlog, store
1686 preserved: * (glob)
1706 removed: dirstate-v2
1687 removed: dirstate-v2
1707
1688
1708 processed revlogs:
1689 processed revlogs:
@@ -1717,21 +1698,69 b' Downgrade from dirstate-v2'
1717 downgrading from dirstate-v2 to v1
1698 downgrading from dirstate-v2 to v1
1718 replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
1699 replaced files will be backed up at $TESTTMP/sparserevlogrepo/.hg/upgradebackup.* (glob)
1719 removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1700 removing temporary repository $TESTTMP/sparserevlogrepo/.hg/upgrade.* (glob)
1720 $ hg debugformat -v
1701 $ hg debugformat -v | grep dirstate-v2
1721 format-variant repo config default
1722 fncache: yes yes yes
1723 dirstate-v2: no no no
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 $ hg status
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