Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/commands.py @ 4891:2d545b98a7bc
issue 622: pull/unbundle -u updates to default branch if repo was empty
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Mon, 16 Jul 2007 18:01:20 -0700 |
parents | da8640113b5a |
children | ee04732fe61d |
comparison
equal
deleted
inserted
replaced
4890:bbdcacf7cef8 | 4891:2d545b98a7bc |
---|---|
2023 return 1 | 2023 return 1 |
2024 else: | 2024 else: |
2025 for name, path in ui.configitems("paths"): | 2025 for name, path in ui.configitems("paths"): |
2026 ui.write("%s = %s\n" % (name, path)) | 2026 ui.write("%s = %s\n" % (name, path)) |
2027 | 2027 |
2028 def postincoming(ui, repo, modheads, optupdate): | 2028 def postincoming(ui, repo, modheads, optupdate, wasempty): |
2029 if modheads == 0: | 2029 if modheads == 0: |
2030 return | 2030 return |
2031 if optupdate: | 2031 if optupdate: |
2032 if modheads == 1: | 2032 if wasempty: |
2033 return hg.update(repo, repo.lookup('default')) | |
2034 elif modheads == 1: | |
2033 return hg.update(repo, repo.changelog.tip()) # update | 2035 return hg.update(repo, repo.changelog.tip()) # update |
2034 else: | 2036 else: |
2035 ui.status(_("not updating, since new heads added\n")) | 2037 ui.status(_("not updating, since new heads added\n")) |
2036 if modheads > 1: | 2038 if modheads > 1: |
2037 ui.status(_("(run 'hg heads' to see heads, 'hg merge' to merge)\n")) | 2039 ui.status(_("(run 'hg heads' to see heads, 'hg merge' to merge)\n")) |
2089 revs = [other.lookup(rev) for rev in revs] | 2091 revs = [other.lookup(rev) for rev in revs] |
2090 else: | 2092 else: |
2091 error = _("Other repository doesn't support revision lookup, so a rev cannot be specified.") | 2093 error = _("Other repository doesn't support revision lookup, so a rev cannot be specified.") |
2092 raise util.Abort(error) | 2094 raise util.Abort(error) |
2093 | 2095 |
2096 wasempty = repo.changelog.count() == 0 | |
2094 modheads = repo.pull(other, heads=revs, force=opts['force']) | 2097 modheads = repo.pull(other, heads=revs, force=opts['force']) |
2095 return postincoming(ui, repo, modheads, opts['update']) | 2098 return postincoming(ui, repo, modheads, opts['update'], wasempty) |
2096 | 2099 |
2097 def push(ui, repo, dest=None, **opts): | 2100 def push(ui, repo, dest=None, **opts): |
2098 """push changes to the specified destination | 2101 """push changes to the specified destination |
2099 | 2102 |
2100 Push changes from the local repository to the given destination. | 2103 Push changes from the local repository to the given destination. |
2654 Apply one or more compressed changegroup files generated by the | 2657 Apply one or more compressed changegroup files generated by the |
2655 bundle command. | 2658 bundle command. |
2656 """ | 2659 """ |
2657 fnames = (fname1,) + fnames | 2660 fnames = (fname1,) + fnames |
2658 result = None | 2661 result = None |
2662 wasempty = repo.changelog.count() == 0 | |
2659 for fname in fnames: | 2663 for fname in fnames: |
2660 if os.path.exists(fname): | 2664 if os.path.exists(fname): |
2661 f = open(fname, "rb") | 2665 f = open(fname, "rb") |
2662 else: | 2666 else: |
2663 f = urllib.urlopen(fname) | 2667 f = urllib.urlopen(fname) |
2664 gen = changegroup.readbundle(f, fname) | 2668 gen = changegroup.readbundle(f, fname) |
2665 modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname) | 2669 modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname) |
2666 | 2670 |
2667 return postincoming(ui, repo, modheads, opts['update']) | 2671 return postincoming(ui, repo, modheads, opts['update'], wasempty) |
2668 | 2672 |
2669 def update(ui, repo, node=None, rev=None, clean=False, date=None): | 2673 def update(ui, repo, node=None, rev=None, clean=False, date=None): |
2670 """update working directory | 2674 """update working directory |
2671 | 2675 |
2672 Update the working directory to the specified revision, or the | 2676 Update the working directory to the specified revision, or the |