Show More
@@ -166,3 +166,5 b' 1ec874717d8a93b19e0d50628443e0ee5efab3a9' | |||
|
166 | 166 | 6614cac550aea66d19c601e45efd1b7bd08d7c40 0 iQJVBAABCAA/FiEEOoFVFj0OIKUw/LeGR6Z/+qNGqs4FAlruOCQhHGtidWxsb2NrK21lcmN1cmlhbEByaW5nd29ybGQub3JnAAoJEEemf/qjRqrOENQQAI1ttaffqYucUEyBARP1GDlZMIGDJgNG7smPMU4Sw7YEzB9mcmxnBFlPx/9n973ucEnLJVONBSZq0VWIKJwPp1RMBpAHuGrMlhkMvYIAukg5EBN3YpA1UogHYycwLj2Ye7fNgiN5FIkaodt9++c4d1Lfu658A2pAeg8qUn5uJ77vVcZRp988u9eVDQfubS8P6bB4KZc87VDAUUeXy+AcS9KHGBmdRAabwU4m09VPZ4h8NEj3+YUPnKXBaNK9pXK5pnkmB8uFePayimnw6St6093oylQTVw/tfxGLBImnHw+6KCu2ut9r5PxXEVxVYpranGbS4jYqpzRtpQBxyo/Igu7fqrioR2rGLQL5NcHsoUEdOC7VW+0HgHjXKtRy7agmcFcgjFco47D3hor7Y16lwgm+RV2EWQ/u2M4Bbo1EWj1oxQ/0j5DOM5UeAJ3Jh64gb4sCDqJfADR8NQaxh7QiqYhn69IcjsEfzU/11VuqWXlQgghJhEEP/bojRyM0qee87CKLiTescafIfnRsNQhyhsKqdHU1QAp29cCqh3mzNxJH3PDYg4fjRaGW4PM7K5gmSXFn/Ifeza0cuZ4XLdYZ76Z1BG80pqBpKZy1unGob+RpItlSmO5jQw7OoRuf0q3Id92gawUDDLuQ7Xg3zOVqV8/wJBlHM7ZUz162bnNsO5Hn |
|
167 | 167 | 9c5ced5276d6e7d54f7c3dadf5247b7ee98ec79c 0 iQJEBAABCAAuFiEEK8zhT1xnJaouqK63ucncgkqlvdUFAlsYGdAQHHJhZkBkdXJpbjQyLmNvbQAKCRC5ydyCSqW91S3fEACmrG3S5eAUhnKqkXFe+HZUwmUvLKRhyWDLlWQzEHaJZQCFWxqSM1ag7JtAx3WkWwmWrOZ0+T/w/xMv81h9JAv9RsoszUT/RH4RsnWoc2ddcK93Q/PrNJ29kFjvC8j3LF42WfHEIeNqAki5c3GbprUL86KG7XVYuMvpPI/SeNSz8siPaKjXo6sg6bAupPCyapisTmeRHcCUc5UfeTTq4YQdS9UI0p9Fo8/vcqmnWY6XnQCRYs2U8Y2I2QCJBHBE5p4KrxrFsAdPWMCg0dJT0goSbzpfDjukPHQaAnUKjCtXCwrzA/KY8fDH9hm5tt1FnC6nl6BRpEHRoHqTfE1ag2QktJZTn5+JWpzz85qFDl5ktmxj1gS80jkOUJ2699RykBy7NACu+TtLJdBk+E1TN0pAU+zsrTSGiteuikEBjQP/8i4whUZCFIHLPgVlxrHWwn0/oszj1Q/u86sCxnYTflR2GLZs3fbSGBEKDDrjqwetxMlwi/3Qhf0PN9aAI7S13YnA89tGLGRLTsVsOoKiQoTExQaCUpE5jFYBLVjsTPh2AjPhG3Zaf7R5ZIvW4CbVYORNTMaYhFNnFyczILJLRid+INHLVifNiJuaLiAFD5Izq9Me4H+GpwB5AI7aG1r+01Si2KbqqpdfoK430UeDV+U/MvEU7v0RoeF30M7uVYv+kg== |
|
168 | 168 | 0b63a6743010dfdbf8a8154186e119949bdaa1cc 0 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 |
@@ -179,3 +179,5 b' 1ec874717d8a93b19e0d50628443e0ee5efab3a9' | |||
|
179 | 179 | 6614cac550aea66d19c601e45efd1b7bd08d7c40 4.6 |
|
180 | 180 | 9c5ced5276d6e7d54f7c3dadf5247b7ee98ec79c 4.6.1 |
|
181 | 181 | 0b63a6743010dfdbf8a8154186e119949bdaa1cc 4.6.2 |
|
182 | e90130af47ce8dd53a3109aed9d15876b3e7dee8 4.7rc0 | |
|
183 | 33ac6a72308a215e6086fbced347ec10aa963b0a 4.7 |
@@ -927,9 +927,9 b" coreconfigitem('progress', 'width'," | |||
|
927 | 927 | coreconfigitem('push', 'pushvars.server', |
|
928 | 928 | default=False, |
|
929 | 929 | ) |
|
930 |
coreconfigitem('re |
|
|
930 | coreconfigitem('storage', 'revlog.optimize-delta-parent-choice', | |
|
931 | 931 | default=True, |
|
932 | # formely an experimental option: format.aggressivemergedeltas | |
|
932 | alias=[('format', 'aggressivemergedeltas')], | |
|
933 | 933 | ) |
|
934 | 934 | coreconfigitem('server', 'bookmarks-pushkey-compat', |
|
935 | 935 | default=True, |
@@ -411,6 +411,7 b' class changectx(basectx):' | |||
|
411 | 411 | self._rev = repo.changelog.rev(changeid) |
|
412 | 412 | return |
|
413 | 413 | except error.FilteredLookupError: |
|
414 | changeid = hex(changeid) # for the error message | |
|
414 | 415 | raise |
|
415 | 416 | except LookupError: |
|
416 | 417 | # check if it might have come from damaged dirstate |
@@ -591,7 +592,7 b' class changectx(basectx):' | |||
|
591 | 592 | |
|
592 | 593 | def descendant(self, other): |
|
593 | 594 | msg = (b'ctx.descendant(other) is deprecated, ' |
|
594 | 'use ctx.isancestorof(other)') | |
|
595 | b'use ctx.isancestorof(other)') | |
|
595 | 596 | self._repo.ui.deprecwarn(msg, b'4.7') |
|
596 | 597 | return self.isancestorof(other) |
|
597 | 598 | |
@@ -2326,7 +2327,12 b' class memfilectx(committablefilectx):' | |||
|
2326 | 2327 | revision being committed, or None.""" |
|
2327 | 2328 | super(memfilectx, self).__init__(repo, path, None, changectx) |
|
2328 | 2329 | self._data = data |
|
2329 | self._flags = (islink and 'l' or '') + (isexec and 'x' or '') | |
|
2330 | if islink: | |
|
2331 | self._flags = 'l' | |
|
2332 | elif isexec: | |
|
2333 | self._flags = 'x' | |
|
2334 | else: | |
|
2335 | self._flags = '' | |
|
2330 | 2336 | self._copied = None |
|
2331 | 2337 | if copied: |
|
2332 | 2338 | self._copied = (copied, nullid) |
@@ -72,6 +72,11 b' else:' | |||
|
72 | 72 | '646': lambda: 'ascii', |
|
73 | 73 | 'ANSI_X3.4-1968': lambda: 'ascii', |
|
74 | 74 | } |
|
75 | # cp65001 is a Windows variant of utf-8, which isn't supported on Python 2. | |
|
76 | # No idea if it should be rewritten to the canonical name 'utf-8' on Python 3. | |
|
77 | # https://bugs.python.org/issue13216 | |
|
78 | if pycompat.iswindows and not pycompat.ispy3: | |
|
79 | _encodingfixers['cp65001'] = lambda: 'utf-8' | |
|
75 | 80 | |
|
76 | 81 | try: |
|
77 | 82 | encoding = environ.get("HGENCODING") |
@@ -592,7 +592,9 b' class matchctx(object):' | |||
|
592 | 592 | try: |
|
593 | 593 | return predfn(fctx) |
|
594 | 594 | except (IOError, OSError) as e: |
|
595 | if e.errno in (errno.ENOENT, errno.ENOTDIR, errno.EISDIR): | |
|
595 | # open()-ing a directory fails with EACCES on Windows | |
|
596 | if e.errno in (errno.ENOENT, errno.EACCES, errno.ENOTDIR, | |
|
597 | errno.EISDIR): | |
|
596 | 598 | return False |
|
597 | 599 | raise |
|
598 | 600 | else: |
@@ -1773,13 +1773,13 b' have a definite end point.' | |||
|
1773 | 1773 | |
|
1774 | 1774 | Alias definitions for revsets. See :hg:`help revsets` for details. |
|
1775 | 1775 | |
|
1776 | ``revlog`` | |
|
1777 | ---------- | |
|
1776 | ``storage`` | |
|
1777 | ----------- | |
|
1778 | 1778 | |
|
1779 | 1779 | Control the strategy Mercurial uses internally to store history. Options in this |
|
1780 | 1780 | category impact performance and repository size. |
|
1781 | 1781 | |
|
1782 | ``optimize-delta-parent-choice`` | |
|
1782 | ``revlog.optimize-delta-parent-choice`` | |
|
1783 | 1783 | When storing a merge revision, both parents will be equally considered as |
|
1784 | 1784 | a possible delta base. This results in better delta selection and improved |
|
1785 | 1785 | revlog compression. This option is enabled by default. |
@@ -731,8 +731,14 b' def clone(ui, peeropts, source, dest=Non' | |||
|
731 | 731 | uprev = None |
|
732 | 732 | status = None |
|
733 | 733 | if checkout is not None: |
|
734 | if checkout in destrepo: | |
|
734 | # Some extensions (at least hg-git and hg-subversion) have | |
|
735 | # a peer.lookup() implementation that returns a name instead | |
|
736 | # of a nodeid. We work around it here until we've figured | |
|
737 | # out a better solution. | |
|
738 | if len(checkout) == 20 and checkout in destrepo: | |
|
735 | 739 | uprev = checkout |
|
740 | elif scmutil.isrevsymbol(destrepo, checkout): | |
|
741 | uprev = scmutil.revsymbol(destrepo, checkout).node() | |
|
736 | 742 | else: |
|
737 | 743 | if update is not True: |
|
738 | 744 | try: |
@@ -136,7 +136,7 b' class requestcontext(object):' | |||
|
136 | 136 | logourl = self.config('web', 'logourl') |
|
137 | 137 | logoimg = self.config('web', 'logoimg') |
|
138 | 138 | staticurl = (self.config('web', 'staticurl') |
|
139 | or req.apppath + '/static/') | |
|
139 | or req.apppath.rstrip('/') + '/static/') | |
|
140 | 140 | if not staticurl.endswith('/'): |
|
141 | 141 | staticurl += '/' |
|
142 | 142 |
@@ -514,7 +514,7 b' class hgwebdir(object):' | |||
|
514 | 514 | logourl = config('web', 'logourl') |
|
515 | 515 | logoimg = config('web', 'logoimg') |
|
516 | 516 | staticurl = (config('web', 'staticurl') |
|
517 | or req.apppath + '/static/') | |
|
517 | or req.apppath.rstrip('/') + '/static/') | |
|
518 | 518 | if not staticurl.endswith('/'): |
|
519 | 519 | staticurl += '/' |
|
520 | 520 |
@@ -668,8 +668,8 b' class localrepository(object):' | |||
|
668 | 668 | manifestcachesize = self.ui.configint('format', 'manifestcachesize') |
|
669 | 669 | if manifestcachesize is not None: |
|
670 | 670 | self.svfs.options['manifestcachesize'] = manifestcachesize |
|
671 |
deltabothparents = self.ui.configbool('re |
|
|
672 |
|
|
|
671 | deltabothparents = self.ui.configbool('storage', | |
|
672 | 'revlog.optimize-delta-parent-choice') | |
|
673 | 673 | self.svfs.options['deltabothparents'] = deltabothparents |
|
674 | 674 | self.svfs.options['lazydeltabase'] = not scmutil.gddeltaconfig(self.ui) |
|
675 | 675 | chainspan = self.ui.configbytes('experimental', 'maxdeltachainspan') |
@@ -689,6 +689,8 b' class localrepository(object):' | |||
|
689 | 689 | self.svfs.options['sparse-read-min-gap-size'] = srmingapsize |
|
690 | 690 | sparserevlog = SPARSEREVLOG_REQUIREMENT in self.requirements |
|
691 | 691 | self.svfs.options['sparse-revlog'] = sparserevlog |
|
692 | if sparserevlog: | |
|
693 | self.svfs.options['generaldelta'] = True | |
|
692 | 694 | |
|
693 | 695 | for r in self.requirements: |
|
694 | 696 | if r.startswith('exp-compression-'): |
@@ -692,7 +692,7 b' class prefixdirmatcher(basematcher):' | |||
|
692 | 692 | The prefix path should usually be the relative path from the root of |
|
693 | 693 | this matcher to the root of the wrapped matcher. |
|
694 | 694 | |
|
695 | >>> m1 = match(b'root/d/e', b'f', [b'../a.txt', b'b.txt']) | |
|
695 | >>> m1 = match(util.localpath(b'root/d/e'), b'f', [b'../a.txt', b'b.txt']) | |
|
696 | 696 | >>> m2 = prefixdirmatcher(b'root', b'd/e/f', b'd/e', m1) |
|
697 | 697 | >>> bool(m2(b'a.txt'),) |
|
698 | 698 | False |
@@ -1424,14 +1424,13 b' def calculateupdates(repo, wctx, mctx, a' | |||
|
1424 | 1424 | del actions[f] |
|
1425 | 1425 | repo.ui.note(_('end of auction\n\n')) |
|
1426 | 1426 | |
|
1427 | _resolvetrivial(repo, wctx, mctx, ancestors[0], actions) | |
|
1428 | ||
|
1429 | 1427 | if wctx.rev() is None: |
|
1430 | 1428 | fractions = _forgetremoved(wctx, mctx, branchmerge) |
|
1431 | 1429 | actions.update(fractions) |
|
1432 | 1430 | |
|
1433 | 1431 | prunedactions = sparse.filterupdatesactions(repo, wctx, mctx, branchmerge, |
|
1434 | 1432 | actions) |
|
1433 | _resolvetrivial(repo, wctx, mctx, ancestors[0], actions) | |
|
1435 | 1434 | |
|
1436 | 1435 | return prunedactions, diverge, renamedelete |
|
1437 | 1436 |
@@ -1701,8 +1701,8 b' class revlog(object):' | |||
|
1701 | 1701 | return self.isancestorrev(a, b) |
|
1702 | 1702 | |
|
1703 | 1703 | def descendant(self, a, b): |
|
1704 |
msg = |
|
|
1705 |
|
|
|
1704 | msg = 'revlog.descendant is deprecated, use revlog.isancestorrev' | |
|
1705 | util.nouideprecwarn(msg, '4.7') | |
|
1706 | 1706 | return self.isancestorrev(a, b) |
|
1707 | 1707 | |
|
1708 | 1708 | def isancestorrev(self, a, b): |
@@ -1366,7 +1366,8 b' def gdinitconfig(ui):' | |||
|
1366 | 1366 | """ |
|
1367 | 1367 | # experimental config: format.generaldelta |
|
1368 | 1368 | return (ui.configbool('format', 'generaldelta') |
|
1369 |
or ui.configbool('format', 'usegeneraldelta') |
|
|
1369 | or ui.configbool('format', 'usegeneraldelta') | |
|
1370 | or ui.configbool('format', 'sparse-revlog')) | |
|
1370 | 1371 | |
|
1371 | 1372 | def gddeltaconfig(ui): |
|
1372 | 1373 | """helper function to know if incoming delta should be optimised |
@@ -17,6 +17,7 b'' | |||
|
17 | 17 | <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> | |
|
18 | 18 | <a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> | |
|
19 | 19 | <a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> | |
|
20 | <a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> | | |
|
20 | 21 | <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> | |
|
21 | 22 | <a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> | |
|
22 | 23 | <a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> | |
@@ -67,8 +67,6 b' status.relative = yes' | |||
|
67 | 67 | update.check = noconflict |
|
68 | 68 | # Show conflicts information in `hg status` |
|
69 | 69 | status.verbose = True |
|
70 | # Collapse entire directories that contain only unknown files | |
|
71 | status.terse = u | |
|
72 | 70 | |
|
73 | 71 | [diff] |
|
74 | 72 | git = 1 |
@@ -212,6 +212,7 b' def _posixworker(ui, func, staticargs, a' | |||
|
212 | 212 | signal.signal(signal.SIGINT, oldhandler) |
|
213 | 213 | waitforworkers() |
|
214 | 214 | signal.signal(signal.SIGCHLD, oldchldhandler) |
|
215 | selector.close() | |
|
215 | 216 | status = problem[0] |
|
216 | 217 | if status: |
|
217 | 218 | if status < 0: |
@@ -54,8 +54,10 b' default context' | |||
|
54 | 54 | trailing whitespace |
|
55 | 55 | |
|
56 | 56 | $ cp a a.orig |
|
57 | $ sed 's/^dd$/dd \r/' a >a.new | |
|
58 | $ mv a.new a | |
|
57 | >>> with open('a', 'rb') as f: | |
|
58 | ... data = f.read() | |
|
59 | >>> with open('a', 'wb') as f: | |
|
60 | ... f.write(data.replace('dd', 'dd \r')) | |
|
59 | 61 | $ hg diff --nodates |
|
60 | 62 | \x1b[0;1mdiff -r cf9f4ba66af2 a\x1b[0m (esc) |
|
61 | 63 | \x1b[0;31;1m--- a/a\x1b[0m (esc) |
@@ -420,7 +420,7 b' Test with a revision' | |||
|
420 | 420 | c1 |
|
421 | 421 | c2 |
|
422 | 422 | c3 |
|
423 | con.xml | |
|
423 | con.xml (no-windows !) | |
|
424 | 424 | mixed |
|
425 | 425 | unknown |
|
426 | 426 | $ fileset 'eol(mac)' |
@@ -442,7 +442,7 b" Test safety of 'encoding' on removed fil" | |||
|
442 | 442 | c1 |
|
443 | 443 | c2 |
|
444 | 444 | c3 |
|
445 | con.xml | |
|
445 | con.xml (no-windows !) | |
|
446 | 446 | dos |
|
447 | 447 | mac |
|
448 | 448 | mixed |
@@ -146,7 +146,7 b' Test revlog.optimize-delta-parent-choice' | |||
|
146 | 146 | - Verify aggressive merge uses p2 (commit 0) as delta parent |
|
147 | 147 | $ hg up -q -C 1 |
|
148 | 148 | $ hg merge -q 0 |
|
149 | $ hg commit -q -m merge --config revlog.optimize-delta-parent-choice=yes | |
|
149 | $ hg commit -q -m merge --config storage.revlog.optimize-delta-parent-choice=yes | |
|
150 | 150 | $ hg debugdeltachain -m |
|
151 | 151 | rev chain# chainlen prev delta size rawsize chainsize ratio lindist extradist extraratio |
|
152 | 152 | 0 1 1 -1 base 59 215 59 0.27442 59 0 0.00000 |
@@ -2598,9 +2598,9 b' Test metadata encoding (issue5754)' | |||
|
2598 | 2598 | > f.write(b't\xe8st2') and None |
|
2599 | 2599 | > EOF |
|
2600 | 2600 | $ mkcommit ROOT |
|
2601 | $ HGENCODING=latin-1 HGUSER="`cat test1`" mkcommit A0 | |
|
2601 | $ ( HGENCODING=latin-1 HGUSER="`cat test1`" mkcommit A0 ) | |
|
2602 | 2602 | $ echo 42 >> A0 |
|
2603 | $ hg amend -m "A1" --note "`cat test2`" | |
|
2603 | $ HGENCODING=latin-1 hg amend -m "A1" --note "`cat test2`" | |
|
2604 | 2604 | $ HGENCODING=latin-1 hg amend -m "A2" \ |
|
2605 | 2605 | > --config devel.user.obsmarker="`cat test2`" |
|
2606 | 2606 | $ mkcommit B0 |
@@ -2611,31 +2611,31 b' metadata should be stored in UTF-8, and ' | |||
|
2611 | 2611 | local encoding since the command is supposed to show unmodified content: |
|
2612 | 2612 | |
|
2613 | 2613 | $ HGENCODING=latin-1 hg debugobsolete |
|
2614 |
5f66a482f0bb2fcaccfc215554ad5eb9f40b50f5 718c0d00cee1429bdb73064e0d88908c601507a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'note': 't\xc3\xa8st2', 'operation': 'amend', 'user': 't |
|
|
2614 | 5f66a482f0bb2fcaccfc215554ad5eb9f40b50f5 718c0d00cee1429bdb73064e0d88908c601507a8 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '9', 'note': 't\xc3\xa8st2', 'operation': 'amend', 'user': 'test'} | |
|
2615 | 2615 | 718c0d00cee1429bdb73064e0d88908c601507a8 1132562159b35bb27e1d6b80c80ee94a1659a4da 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '1', 'operation': 'amend', 'user': 't\xc3\xa8st2'} |
|
2616 |
|
|
|
2616 | 8f82db6f991db367fdbb3b6dba5e187ecc3ebd96 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 't\xc3\xa8st2'} | |
|
2617 | 2617 | |
|
2618 | 2618 | metadata should be converted back to local encoding when displaying: |
|
2619 | 2619 | |
|
2620 | 2620 | $ HGENCODING=latin-1 hg fatelog --hidden |
|
2621 | @ e1724525bc3b | |
|
2621 | @ 8f82db6f991d | |
|
2622 | 2622 | | Obsfate: pruned by t\xe8st2 (at 1970-01-01 00:00 +0000); (esc) |
|
2623 | 2623 | o 1132562159b3 |
|
2624 | 2624 | | |
|
2625 | 2625 | | x 718c0d00cee1 |
|
2626 | 2626 | |/ Obsfate: rewritten using amend as 3:1132562159b3 by t\xe8st2 (at 1970-01-01 00:00 +0000); (esc) |
|
2627 | 2627 | | x 5f66a482f0bb |
|
2628 |
|/ Obsfate: rewritten using amend as 2:718c0d00cee1 by t |
|
|
2628 | |/ Obsfate: rewritten using amend as 2:718c0d00cee1 by test (at 1970-01-01 00:00 +0000); | |
|
2629 | 2629 | o ea207398892e |
|
2630 | 2630 | |
|
2631 | 2631 | $ HGENCODING=utf-8 hg fatelog --hidden |
|
2632 | @ e1724525bc3b | |
|
2632 | @ 8f82db6f991d | |
|
2633 | 2633 | | Obsfate: pruned by t\xc3\xa8st2 (at 1970-01-01 00:00 +0000); (esc) |
|
2634 | 2634 | o 1132562159b3 |
|
2635 | 2635 | | |
|
2636 | 2636 | | x 718c0d00cee1 |
|
2637 | 2637 | |/ Obsfate: rewritten using amend as 3:1132562159b3 by t\xc3\xa8st2 (at 1970-01-01 00:00 +0000); (esc) |
|
2638 | 2638 | | x 5f66a482f0bb |
|
2639 |
|/ Obsfate: rewritten using amend as 2:718c0d00cee1 by t |
|
|
2639 | |/ Obsfate: rewritten using amend as 2:718c0d00cee1 by test (at 1970-01-01 00:00 +0000); | |
|
2640 | 2640 | o ea207398892e |
|
2641 | 2641 |
@@ -60,3 +60,61 b' copy' | |||
|
60 | 60 | temporarily included 2 file(s) in the sparse checkout for merging |
|
61 | 61 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
62 | 62 | (branch merge, don't forget to commit) |
|
63 | ||
|
64 | $ cd .. | |
|
65 | ||
|
66 | Tests merging a file which is modified in one branch and deleted in another and | |
|
67 | file is excluded from sparse checkout | |
|
68 | ||
|
69 | $ hg init ytest | |
|
70 | $ cd ytest | |
|
71 | $ echo "syntax: glob" >> .hgignore | |
|
72 | $ echo "*.orig" >> .hgignore | |
|
73 | $ hg ci -Aqm "added .hgignore" | |
|
74 | $ for ch in a d; do echo foo > $ch; hg ci -Aqm "added "$ch; done; | |
|
75 | $ cat >> .hg/hgrc <<EOF | |
|
76 | > [alias] | |
|
77 | > glog = log -GT "{rev}:{node|short} {desc}" | |
|
78 | > [extensions] | |
|
79 | > sparse = | |
|
80 | > EOF | |
|
81 | ||
|
82 | $ hg glog | |
|
83 | @ 2:f29feff37cfc added d | |
|
84 | | | |
|
85 | o 1:617125d27d6b added a | |
|
86 | | | |
|
87 | o 0:53f3774ed939 added .hgignore | |
|
88 | ||
|
89 | $ hg rm d | |
|
90 | $ hg ci -m "removed d" | |
|
91 | ||
|
92 | $ hg up '.^' | |
|
93 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
94 | $ hg debugsparse --reset | |
|
95 | $ echo bar >> d | |
|
96 | $ hg ci -Am "added bar to d" | |
|
97 | created new head | |
|
98 | ||
|
99 | $ hg glog | |
|
100 | @ 4:6527874a90e4 added bar to d | |
|
101 | | | |
|
102 | | o 3:372c8558de45 removed d | |
|
103 | |/ | |
|
104 | o 2:f29feff37cfc added d | |
|
105 | | | |
|
106 | o 1:617125d27d6b added a | |
|
107 | | | |
|
108 | o 0:53f3774ed939 added .hgignore | |
|
109 | ||
|
110 | $ hg debugsparse --exclude "d" | |
|
111 | $ ls | |
|
112 | a | |
|
113 | ||
|
114 | $ hg merge | |
|
115 | temporarily included 1 file(s) in the sparse checkout for merging | |
|
116 | local [working copy] changed d which other [merge rev] deleted | |
|
117 | use (c)hanged version, (d)elete, or leave (u)nresolved? u | |
|
118 | 0 files updated, 0 files merged, 0 files removed, 1 files unresolved | |
|
119 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | |
|
120 | [1] |
@@ -109,8 +109,11 b' combining patterns with root and pattern' | |||
|
109 | 109 | |
|
110 | 110 | tweaking defaults works |
|
111 | 111 | $ hg status --cwd a --config ui.tweakdefaults=yes |
|
112 | ? . | |
|
113 | ? ../b/ | |
|
112 | ? 1/in_a_1 | |
|
113 | ? in_a | |
|
114 | ? ../b/1/in_b_1 | |
|
115 | ? ../b/2/in_b_2 | |
|
116 | ? ../b/in_b | |
|
114 | 117 | ? ../in_root |
|
115 | 118 | $ HGPLAIN=1 hg status --cwd a --config ui.tweakdefaults=yes |
|
116 | 119 | ? a/1/in_a_1 (glob) |
@@ -120,8 +123,11 b' tweaking defaults works' | |||
|
120 | 123 | ? b/in_b (glob) |
|
121 | 124 | ? in_root |
|
122 | 125 | $ HGPLAINEXCEPT=tweakdefaults hg status --cwd a --config ui.tweakdefaults=yes |
|
123 | ? . | |
|
124 | ? ../b/ | |
|
126 | ? 1/in_a_1 | |
|
127 | ? in_a | |
|
128 | ? ../b/1/in_b_1 | |
|
129 | ? ../b/2/in_b_2 | |
|
130 | ? ../b/in_b | |
|
125 | 131 | ? ../in_root (glob) |
|
126 | 132 | |
|
127 | 133 | relative paths can be requested |
@@ -151,8 +157,11 b' if relative paths are explicitly off, tw' | |||
|
151 | 157 | > status.relative = False |
|
152 | 158 | > EOF |
|
153 | 159 | $ hg status --cwd a --config ui.tweakdefaults=yes |
|
154 | ? a/ | |
|
155 |
? |
|
|
160 | ? a/1/in_a_1 | |
|
161 | ? a/in_a | |
|
162 | ? b/1/in_b_1 | |
|
163 | ? b/2/in_b_2 | |
|
164 | ? b/in_b | |
|
156 | 165 | ? in_root |
|
157 | 166 | |
|
158 | 167 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now