Show More
@@ -247,6 +247,8 b' def getstandinmatcher(repo, rmatcher=Non' | |||||
247 |
|
247 | |||
248 | if rmatcher and not rmatcher.always(): |
|
248 | if rmatcher and not rmatcher.always(): | |
249 | pats = [os.path.join(standindir, pat) for pat in rmatcher.files()] |
|
249 | pats = [os.path.join(standindir, pat) for pat in rmatcher.files()] | |
|
250 | if not pats: | |||
|
251 | pats = [standindir] | |||
250 | match = scmutil.match(repo[None], pats, badfn=badfn) |
|
252 | match = scmutil.match(repo[None], pats, badfn=badfn) | |
251 | # if pats is empty, it would incorrectly always match, so clear _always |
|
253 | # if pats is empty, it would incorrectly always match, so clear _always | |
252 | match._always = False |
|
254 | match._always = False |
@@ -1026,40 +1026,46 b' def clearrebased(ui, repo, state, skippe' | |||||
1026 | def pullrebase(orig, ui, repo, *args, **opts): |
|
1026 | def pullrebase(orig, ui, repo, *args, **opts): | |
1027 | 'Call rebase after pull if the latter has been invoked with --rebase' |
|
1027 | 'Call rebase after pull if the latter has been invoked with --rebase' | |
1028 | if opts.get('rebase'): |
|
1028 | if opts.get('rebase'): | |
1029 | if opts.get('update'): |
|
1029 | wlock = lock = None | |
1030 | del opts['update'] |
|
1030 | try: | |
1031 | ui.debug('--update and --rebase are not compatible, ignoring ' |
|
1031 | wlock = repo.wlock() | |
1032 | 'the update flag\n') |
|
1032 | lock = repo.lock() | |
|
1033 | if opts.get('update'): | |||
|
1034 | del opts['update'] | |||
|
1035 | ui.debug('--update and --rebase are not compatible, ignoring ' | |||
|
1036 | 'the update flag\n') | |||
1033 |
|
1037 | |||
1034 | movemarkfrom = repo['.'].node() |
|
1038 | movemarkfrom = repo['.'].node() | |
1035 | revsprepull = len(repo) |
|
1039 | revsprepull = len(repo) | |
1036 | origpostincoming = commands.postincoming |
|
1040 | origpostincoming = commands.postincoming | |
1037 | def _dummy(*args, **kwargs): |
|
1041 | def _dummy(*args, **kwargs): | |
1038 | pass |
|
1042 | pass | |
1039 | commands.postincoming = _dummy |
|
1043 | commands.postincoming = _dummy | |
1040 | try: |
|
1044 | try: | |
1041 | orig(ui, repo, *args, **opts) |
|
1045 | orig(ui, repo, *args, **opts) | |
|
1046 | finally: | |||
|
1047 | commands.postincoming = origpostincoming | |||
|
1048 | revspostpull = len(repo) | |||
|
1049 | if revspostpull > revsprepull: | |||
|
1050 | # --rev option from pull conflict with rebase own --rev | |||
|
1051 | # dropping it | |||
|
1052 | if 'rev' in opts: | |||
|
1053 | del opts['rev'] | |||
|
1054 | # positional argument from pull conflicts with rebase's own | |||
|
1055 | # --source. | |||
|
1056 | if 'source' in opts: | |||
|
1057 | del opts['source'] | |||
|
1058 | rebase(ui, repo, **opts) | |||
|
1059 | branch = repo[None].branch() | |||
|
1060 | dest = repo[branch].rev() | |||
|
1061 | if dest != repo['.'].rev(): | |||
|
1062 | # there was nothing to rebase we force an update | |||
|
1063 | hg.update(repo, dest) | |||
|
1064 | if bookmarks.update(repo, [movemarkfrom], repo['.'].node()): | |||
|
1065 | ui.status(_("updating bookmark %s\n") | |||
|
1066 | % repo._activebookmark) | |||
1042 | finally: |
|
1067 | finally: | |
1043 | commands.postincoming = origpostincoming |
|
1068 | release(lock, wlock) | |
1044 | revspostpull = len(repo) |
|
|||
1045 | if revspostpull > revsprepull: |
|
|||
1046 | # --rev option from pull conflict with rebase own --rev |
|
|||
1047 | # dropping it |
|
|||
1048 | if 'rev' in opts: |
|
|||
1049 | del opts['rev'] |
|
|||
1050 | # positional argument from pull conflicts with rebase's own |
|
|||
1051 | # --source. |
|
|||
1052 | if 'source' in opts: |
|
|||
1053 | del opts['source'] |
|
|||
1054 | rebase(ui, repo, **opts) |
|
|||
1055 | branch = repo[None].branch() |
|
|||
1056 | dest = repo[branch].rev() |
|
|||
1057 | if dest != repo['.'].rev(): |
|
|||
1058 | # there was nothing to rebase we force an update |
|
|||
1059 | hg.update(repo, dest) |
|
|||
1060 | if bookmarks.update(repo, [movemarkfrom], repo['.'].node()): |
|
|||
1061 | ui.status(_("updating bookmark %s\n") |
|
|||
1062 | % repo._activebookmark) |
|
|||
1063 | else: |
|
1069 | else: | |
1064 | if opts.get('tool'): |
|
1070 | if opts.get('tool'): | |
1065 | raise util.Abort(_('--tool can only be used with --rebase')) |
|
1071 | raise util.Abort(_('--tool can only be used with --rebase')) |
@@ -6475,51 +6475,55 b' def update(ui, repo, node=None, rev=None' | |||||
6475 | if rev is None or rev == '': |
|
6475 | if rev is None or rev == '': | |
6476 | rev = node |
|
6476 | rev = node | |
6477 |
|
6477 | |||
6478 | cmdutil.clearunfinished(repo) |
|
6478 | wlock = repo.wlock() | |
6479 |
|
6479 | try: | ||
6480 | # with no argument, we also move the active bookmark, if any |
|
6480 | cmdutil.clearunfinished(repo) | |
6481 | rev, movemarkfrom = bookmarks.calculateupdate(ui, repo, rev) |
|
6481 | ||
6482 |
|
6482 | # with no argument, we also move the active bookmark, if any | ||
6483 | # if we defined a bookmark, we have to remember the original bookmark name |
|
6483 | rev, movemarkfrom = bookmarks.calculateupdate(ui, repo, rev) | |
6484 | brev = rev |
|
6484 | ||
6485 | rev = scmutil.revsingle(repo, rev, rev).rev() |
|
6485 | # if we defined a bookmark, we have to remember the original name | |
6486 |
|
6486 | brev = rev | ||
6487 | if check and clean: |
|
6487 | rev = scmutil.revsingle(repo, rev, rev).rev() | |
6488 | raise util.Abort(_("cannot specify both -c/--check and -C/--clean")) |
|
6488 | ||
6489 |
|
6489 | if check and clean: | ||
6490 | if date: |
|
6490 | raise util.Abort(_("cannot specify both -c/--check and -C/--clean")) | |
6491 | if rev is not None: |
|
6491 | ||
6492 | raise util.Abort(_("you can't specify a revision and a date")) |
|
6492 | if date: | |
6493 | rev = cmdutil.finddate(ui, repo, date) |
|
6493 | if rev is not None: | |
6494 |
|
6494 | raise util.Abort(_("you can't specify a revision and a date")) | ||
6495 | if check: |
|
6495 | rev = cmdutil.finddate(ui, repo, date) | |
6496 | cmdutil.bailifchanged(repo, merge=False) |
|
6496 | ||
6497 |
if |
|
6497 | if check: | |
6498 | rev = repo[repo[None].branch()].rev() |
|
6498 | cmdutil.bailifchanged(repo, merge=False) | |
6499 |
|
6499 | if rev is None: | ||
6500 | repo.ui.setconfig('ui', 'forcemerge', tool, 'update') |
|
6500 | rev = repo[repo[None].branch()].rev() | |
6501 |
|
6501 | |||
6502 | if clean: |
|
6502 | repo.ui.setconfig('ui', 'forcemerge', tool, 'update') | |
6503 | ret = hg.clean(repo, rev) |
|
6503 | ||
6504 | else: |
|
6504 | if clean: | |
6505 |
ret = hg. |
|
6505 | ret = hg.clean(repo, rev) | |
6506 |
|
||||
6507 | if not ret and movemarkfrom: |
|
|||
6508 | if bookmarks.update(repo, [movemarkfrom], repo['.'].node()): |
|
|||
6509 | ui.status(_("updating bookmark %s\n") % repo._activebookmark) |
|
|||
6510 | else: |
|
6506 | else: | |
6511 | # this can happen with a non-linear update |
|
6507 | ret = hg.update(repo, rev) | |
6512 | ui.status(_("(leaving bookmark %s)\n") % |
|
6508 | ||
6513 | repo._activebookmark) |
|
6509 | if not ret and movemarkfrom: | |
|
6510 | if bookmarks.update(repo, [movemarkfrom], repo['.'].node()): | |||
|
6511 | ui.status(_("updating bookmark %s\n") % repo._activebookmark) | |||
|
6512 | else: | |||
|
6513 | # this can happen with a non-linear update | |||
|
6514 | ui.status(_("(leaving bookmark %s)\n") % | |||
|
6515 | repo._activebookmark) | |||
|
6516 | bookmarks.deactivate(repo) | |||
|
6517 | elif brev in repo._bookmarks: | |||
|
6518 | bookmarks.activate(repo, brev) | |||
|
6519 | ui.status(_("(activating bookmark %s)\n") % brev) | |||
|
6520 | elif brev: | |||
|
6521 | if repo._activebookmark: | |||
|
6522 | ui.status(_("(leaving bookmark %s)\n") % | |||
|
6523 | repo._activebookmark) | |||
6514 | bookmarks.deactivate(repo) |
|
6524 | bookmarks.deactivate(repo) | |
6515 | elif brev in repo._bookmarks: |
|
6525 | finally: | |
6516 | bookmarks.activate(repo, brev) |
|
6526 | wlock.release() | |
6517 | ui.status(_("(activating bookmark %s)\n") % brev) |
|
|||
6518 | elif brev: |
|
|||
6519 | if repo._activebookmark: |
|
|||
6520 | ui.status(_("(leaving bookmark %s)\n") % |
|
|||
6521 | repo._activebookmark) |
|
|||
6522 | bookmarks.deactivate(repo) |
|
|||
6523 |
|
6527 | |||
6524 | return ret |
|
6528 | return ret | |
6525 |
|
6529 |
@@ -56,7 +56,7 b' HGENCODING' | |||||
56 | incorrectly (often by using "?" as a placeholder for invalid |
|
56 | incorrectly (often by using "?" as a placeholder for invalid | |
57 | characters in the current locale). |
|
57 | characters in the current locale). | |
58 |
|
58 | |||
59 | Explcitly setting this environment variable is a good practice to |
|
59 | Explicitly setting this environment variable is a good practice to | |
60 | guarantee consistent results. "utf-8" is a good choice on UNIX-like |
|
60 | guarantee consistent results. "utf-8" is a good choice on UNIX-like | |
61 | environments. |
|
61 | environments. | |
62 |
|
62 |
@@ -428,7 +428,7 b' def clone(ui, peeropts, source, dest=Non' | |||||
428 | shareopts = shareopts or {} |
|
428 | shareopts = shareopts or {} | |
429 | sharepool = shareopts.get('pool') |
|
429 | sharepool = shareopts.get('pool') | |
430 | sharenamemode = shareopts.get('mode') |
|
430 | sharenamemode = shareopts.get('mode') | |
431 | if sharepool: |
|
431 | if sharepool and islocal(dest): | |
432 | sharepath = None |
|
432 | sharepath = None | |
433 | if sharenamemode == 'identity': |
|
433 | if sharenamemode == 'identity': | |
434 | # Resolve the name from the initial changeset in the remote |
|
434 | # Resolve the name from the initial changeset in the remote |
@@ -119,8 +119,8 b' extension and python hooks - use the eol' | |||||
119 | $ echo '[hooks]' >> .hg/hgrc |
|
119 | $ echo '[hooks]' >> .hg/hgrc | |
120 | $ echo 'update = echo hooked' >> .hg/hgrc |
|
120 | $ echo 'update = echo hooked' >> .hg/hgrc | |
121 | $ hg update |
|
121 | $ hg update | |
|
122 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
122 | hooked |
|
123 | hooked | |
123 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
|||
124 | $ hg blackbox -l 5 |
|
124 | $ hg blackbox -l 5 | |
125 | 1970/01/01 00:00:00 bob> update |
|
125 | 1970/01/01 00:00:00 bob> update | |
126 | 1970/01/01 00:00:00 bob> writing .hg/cache/tags2-visible with 0 tags |
|
126 | 1970/01/01 00:00:00 bob> writing .hg/cache/tags2-visible with 0 tags |
@@ -1013,3 +1013,15 b' Request to clone a single branch is resp' | |||||
1013 | adding remote bookmark bookA |
|
1013 | adding remote bookmark bookA | |
1014 |
|
1014 | |||
1015 | $ ls share-1anowc |
|
1015 | $ ls share-1anowc | |
|
1016 | ||||
|
1017 | Test that auto sharing doesn't cause failure of "hg clone local remote" | |||
|
1018 | ||||
|
1019 | $ cd $TESTTMP | |||
|
1020 | $ hg -R a id -r 0 | |||
|
1021 | acb14030fe0a | |||
|
1022 | $ hg id -R remote -r 0 | |||
|
1023 | abort: there is no Mercurial repository here (.hg not found) | |||
|
1024 | [255] | |||
|
1025 | $ hg --config share.pool=share -q clone -e "python \"$TESTDIR/dummyssh\"" a ssh://user@dummy/remote | |||
|
1026 | $ hg -R remote id -r 0 | |||
|
1027 | acb14030fe0a |
@@ -505,4 +505,8 b' into the hook command.' | |||||
505 | 1:9599899f62c0 a |
|
505 | 1:9599899f62c0 a | |
506 | 0:79b99e9c8e49 b |
|
506 | 0:79b99e9c8e49 b | |
507 |
|
507 | |||
|
508 | $ echo "foo" > amended.txt | |||
|
509 | $ hg add amended.txt | |||
|
510 | $ hg ci -q --config extensions.largefiles= --amend -I amended.txt | |||
|
511 | ||||
508 | $ cd .. |
|
512 | $ cd .. |
@@ -223,8 +223,8 b' update hook' | |||||
223 | $ echo "update = printenv.py update" >> .hg/hgrc |
|
223 | $ echo "update = printenv.py update" >> .hg/hgrc | |
224 | $ hg update |
|
224 | $ hg update | |
225 | preupdate hook: HG_PARENT1=539e4b31b6dc |
|
225 | preupdate hook: HG_PARENT1=539e4b31b6dc | |
|
226 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
226 | update hook: HG_ERROR=0 HG_PARENT1=539e4b31b6dc |
|
227 | update hook: HG_ERROR=0 HG_PARENT1=539e4b31b6dc | |
227 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
|||
228 |
|
228 | |||
229 | pushkey hook |
|
229 | pushkey hook | |
230 |
|
230 | |||
@@ -644,8 +644,8 b' final release (and dirstate flush).' | |||||
644 | $ hg ci -ma |
|
644 | $ hg ci -ma | |
645 | 223eafe2750c tip |
|
645 | 223eafe2750c tip | |
646 | $ hg up 0 --config extensions.largefiles= |
|
646 | $ hg up 0 --config extensions.largefiles= | |
|
647 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |||
647 | cb9a9f314b8b |
|
648 | cb9a9f314b8b | |
648 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
|||
649 |
|
649 | |||
650 | make sure --verbose (and --quiet/--debug etc.) are propagated to the local ui |
|
650 | make sure --verbose (and --quiet/--debug etc.) are propagated to the local ui | |
651 | that is passed to pre/post hooks |
|
651 | that is passed to pre/post hooks |
@@ -59,7 +59,6 b' One process waiting for another' | |||||
59 | $ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" |
|
59 | $ hg -R b up -q --config hooks.pre-update="python:`pwd`/hooks.py:sleephalf" | |
60 | waiting for lock on working directory of b held by '*:*' (glob) |
|
60 | waiting for lock on working directory of b held by '*:*' (glob) | |
61 | got lock after ? seconds (glob) |
|
61 | got lock after ? seconds (glob) | |
62 | warning: ignoring unknown working parent d2ae7f538514! |
|
|||
63 |
$ |
|
62 | $ wait | |
64 | $ cat stdout |
|
63 | $ cat stdout | |
65 | adding b |
|
64 | adding b |
General Comments 0
You need to be logged in to leave comments.
Login now