##// END OF EJS Templates
merge with stable
Augie Fackler -
r44922:d543ef18 merge default
parent child Browse files
Show More
@@ -192,3 +192,4 b' b4c82b70418022e67cc0e69b1aa3c3aa43aa1d29'
192 84a0102c05c7852c8215ef6cf21d809927586b69 0 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
@@ -205,3 +205,4 b' b4c82b70418022e67cc0e69b1aa3c3aa43aa1d29'
205 84a0102c05c7852c8215ef6cf21d809927586b69 5.3rc0
205 84a0102c05c7852c8215ef6cf21d809927586b69 5.3rc0
206 e4344e463c0c888a2f437b78b5982ecdf3f6650a 5.3rc1
206 e4344e463c0c888a2f437b78b5982ecdf3f6650a 5.3rc1
207 7f5410dfc8a64bb587d19637deb95d378fd1eb5c 5.3
207 7f5410dfc8a64bb587d19637deb95d378fd1eb5c 5.3
208 6d121acbb82e65fe4dd3c2318a1b61981b958492 5.3.1
@@ -1645,7 +1645,7 b' pgup/K: move patch up, pgdn/J: move patc'
1645 pass
1645 pass
1646
1646
1647
1647
1648 def _chistedit(ui, repo, *freeargs, **opts):
1648 def _chistedit(ui, repo, freeargs, opts):
1649 """interactively edit changeset history via a curses interface
1649 """interactively edit changeset history via a curses interface
1650
1650
1651 Provides a ncurses interface to histedit. Press ? in chistedit mode
1651 Provides a ncurses interface to histedit. Press ? in chistedit mode
@@ -1717,8 +1717,8 b' def _chistedit(ui, repo, *freeargs, **op'
1717 with repo.vfs(b'chistedit', b'w+') as fp:
1717 with repo.vfs(b'chistedit', b'w+') as fp:
1718 for r in rules:
1718 for r in rules:
1719 fp.write(r)
1719 fp.write(r)
1720 opts['commands'] = fp.name
1720 opts[b'commands'] = fp.name
1721 return _texthistedit(ui, repo, *freeargs, **opts)
1721 return _texthistedit(ui, repo, freeargs, opts)
1722 except KeyboardInterrupt:
1722 except KeyboardInterrupt:
1723 pass
1723 pass
1724 return -1
1724 return -1
@@ -1855,23 +1855,25 b' def histedit(ui, repo, *freeargs, **opts'
1855 for intentional "edit" command, but also for resolving unexpected
1855 for intentional "edit" command, but also for resolving unexpected
1856 conflicts).
1856 conflicts).
1857 """
1857 """
1858 opts = pycompat.byteskwargs(opts)
1859
1858 # kludge: _chistedit only works for starting an edit, not aborting
1860 # kludge: _chistedit only works for starting an edit, not aborting
1859 # or continuing, so fall back to regular _texthistedit for those
1861 # or continuing, so fall back to regular _texthistedit for those
1860 # operations.
1862 # operations.
1861 if (
1863 if (
1862 ui.interface(b'histedit') == b'curses'
1864 ui.interface(b'histedit') == b'curses'
1863 and _getgoal(pycompat.byteskwargs(opts)) == goalnew
1865 and _getgoal(opts) == goalnew
1864 ):
1866 ):
1865 return _chistedit(ui, repo, *freeargs, **opts)
1867 return _chistedit(ui, repo, freeargs, opts)
1866 return _texthistedit(ui, repo, *freeargs, **opts)
1868 return _texthistedit(ui, repo, freeargs, opts)
1867
1869
1868
1870
1869 def _texthistedit(ui, repo, *freeargs, **opts):
1871 def _texthistedit(ui, repo, freeargs, opts):
1870 state = histeditstate(repo)
1872 state = histeditstate(repo)
1871 with repo.wlock() as wlock, repo.lock() as lock:
1873 with repo.wlock() as wlock, repo.lock() as lock:
1872 state.wlock = wlock
1874 state.wlock = wlock
1873 state.lock = lock
1875 state.lock = lock
1874 _histedit(ui, repo, state, *freeargs, **opts)
1876 _histedit(ui, repo, state, freeargs, opts)
1875
1877
1876
1878
1877 goalcontinue = b'continue'
1879 goalcontinue = b'continue'
@@ -1952,8 +1954,7 b' def _validateargs(ui, repo, state, freea'
1952 )
1954 )
1953
1955
1954
1956
1955 def _histedit(ui, repo, state, *freeargs, **opts):
1957 def _histedit(ui, repo, state, freeargs, opts):
1956 opts = pycompat.byteskwargs(opts)
1957 fm = ui.formatter(b'histedit', opts)
1958 fm = ui.formatter(b'histedit', opts)
1958 fm.startitem()
1959 fm.startitem()
1959 goal = _getgoal(opts)
1960 goal = _getgoal(opts)
@@ -961,7 +961,7 b' def findcmd(cmd, table, strict=True):'
961 raise error.UnknownCommand(cmd, allcmds)
961 raise error.UnknownCommand(cmd, allcmds)
962
962
963
963
964 def changebranch(ui, repo, revs, label):
964 def changebranch(ui, repo, revs, label, opts):
965 """ Change the branch name of given revs to label """
965 """ Change the branch name of given revs to label """
966
966
967 with repo.wlock(), repo.lock(), repo.transaction(b'branches'):
967 with repo.wlock(), repo.lock(), repo.transaction(b'branches'):
@@ -979,7 +979,11 b' def changebranch(ui, repo, revs, label):'
979
979
980 root = repo[roots.first()]
980 root = repo[roots.first()]
981 rpb = {parent.branch() for parent in root.parents()}
981 rpb = {parent.branch() for parent in root.parents()}
982 if label not in rpb and label in repo.branchmap():
982 if (
983 not opts.get(b'force')
984 and label not in rpb
985 and label in repo.branchmap()
986 ):
983 raise error.Abort(_(b"a branch of the same name already exists"))
987 raise error.Abort(_(b"a branch of the same name already exists"))
984
988
985 if repo.revs(b'obsolete() and %ld', revs):
989 if repo.revs(b'obsolete() and %ld', revs):
@@ -1340,7 +1340,7 b' def branch(ui, repo, label=None, **opts)'
1340
1340
1341 scmutil.checknewlabel(repo, label, b'branch')
1341 scmutil.checknewlabel(repo, label, b'branch')
1342 if revs:
1342 if revs:
1343 return cmdutil.changebranch(ui, repo, revs, label)
1343 return cmdutil.changebranch(ui, repo, revs, label, opts)
1344
1344
1345 if not opts.get(b'force') and label in repo.branchmap():
1345 if not opts.get(b'force') and label in repo.branchmap():
1346 if label not in [p.branch() for p in repo[None].parents()]:
1346 if label not in [p.branch() for p in repo[None].parents()]:
@@ -665,7 +665,9 b' class buildhgextindex(Command):'
665 # here no extension enabled, disabled() lists up everything
665 # here no extension enabled, disabled() lists up everything
666 code = (
666 code = (
667 'import pprint; from mercurial import extensions; '
667 'import pprint; from mercurial import extensions; '
668 'pprint.pprint(extensions.disabled())'
668 'ext = extensions.disabled();'
669 'ext.pop("__index__", None);'
670 'pprint.pprint(ext)'
669 )
671 )
670 returncode, out, err = runcmd(
672 returncode, out, err = runcmd(
671 [sys.executable, '-c', code], localhgenv()
673 [sys.executable, '-c', code], localhgenv()
@@ -487,7 +487,7 b' Modifying a file while the editor is ope'
487 $ echo beta >> foo
487 $ echo beta >> foo
488 $ cat > $TESTTMP/touchy_editor.sh <<EOF
488 $ cat > $TESTTMP/touchy_editor.sh <<EOF
489 > sleep 1
489 > sleep 1
490 > echo delta >> $TESTTMP/modify-during-amend/foo
490 > echo delta >> "$TESTTMP/modify-during-amend/foo"
491 > sleep 1
491 > sleep 1
492 > echo hi > "\$1"
492 > echo hi > "\$1"
493 > sleep 1
493 > sleep 1
@@ -355,6 +355,13 b' Changing branch of a merge commit'
355 abort: a branch of the same name already exists
355 abort: a branch of the same name already exists
356 [255]
356 [255]
357
357
358 $ hg branch -r . stable --force
359 changed branch on 1 changesets
360 $ hg branches
361 stable 34:d1c2addda4a2
362 jkl 29:6bc1c6c2c9da (inactive)
363 ghi 28:2f1019bd29d2 (inactive)
364
358 Changing branch on public changeset
365 Changing branch on public changeset
359
366
360 $ hg phase -r . -p
367 $ hg phase -r . -p
@@ -233,9 +233,18 b''
233 z2: not copying - file is not managed
233 z2: not copying - file is not managed
234 abort: no files to copy
234 abort: no files to copy
235 [255]
235 [255]
236 $ find $CACHEDIR -type f | sort
237 .. The following output line about files fetches is globed because it is
238 .. flaky, the core the test is checked when checking the cache dir, so
239 .. hopefully this flakyness is not hiding any actual bug.
236 $ hg revert -a -r 1 || true
240 $ hg revert -a -r 1 || true
237 3 files fetched over 1 fetches - (3 misses, 0.00% hit ratio) over * (glob)
241 ? files fetched over 1 fetches - (? misses, 0.00% hit ratio) over * (glob)
238 abort: z2@109c3a557a73: not found in manifest! (?)
242 abort: z2@109c3a557a73: not found in manifest! (?)
243 $ find $CACHEDIR -type f | sort
244 $TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/ef95c5376f34698742fe34f315fd82136f8f68c0
245 $TESTTMP/hgcache/master/39/5df8f7c51f007019cb30201c49e884b46b92fa/69a1b67522704ec122181c0890bd16e9d3e7516a
246 $TESTTMP/hgcache/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/076f5e2225b3ff0400b98c92aa6cdf403ee24cca
247 $TESTTMP/hgcache/repos
239
248
240 # warning when we have excess remotefilelog fetching
249 # warning when we have excess remotefilelog fetching
241
250
General Comments 0
You need to be logged in to leave comments. Login now