mercurial/commands.py
changeset 4912 c4dd58af0fc8
parent 4894 be5dc5e3ab2d
child 4915 8535c1770dd3
child 4923 e8c0b52c363c
equal deleted inserted replaced
4911:fc502517d68d 4912:c4dd58af0fc8
  2011         return 1
  2011         return 1
  2012     else:
  2012     else:
  2013         for name, path in ui.configitems("paths"):
  2013         for name, path in ui.configitems("paths"):
  2014             ui.write("%s = %s\n" % (name, path))
  2014             ui.write("%s = %s\n" % (name, path))
  2015 
  2015 
  2016 def postincoming(ui, repo, modheads, optupdate):
  2016 def postincoming(ui, repo, modheads, optupdate, wasempty):
  2017     if modheads == 0:
  2017     if modheads == 0:
  2018         return
  2018         return
  2019     if optupdate:
  2019     if optupdate:
  2020         if modheads == 1:
  2020         if wasempty:
       
  2021             return hg.update(repo, repo.lookup('default'))
       
  2022         elif modheads == 1:
  2021             return hg.update(repo, repo.changelog.tip()) # update
  2023             return hg.update(repo, repo.changelog.tip()) # update
  2022         else:
  2024         else:
  2023             ui.status(_("not updating, since new heads added\n"))
  2025             ui.status(_("not updating, since new heads added\n"))
  2024     if modheads > 1:
  2026     if modheads > 1:
  2025         ui.status(_("(run 'hg heads' to see heads, 'hg merge' to merge)\n"))
  2027         ui.status(_("(run 'hg heads' to see heads, 'hg merge' to merge)\n"))
  2077             revs = [other.lookup(rev) for rev in revs]
  2079             revs = [other.lookup(rev) for rev in revs]
  2078         else:
  2080         else:
  2079             error = _("Other repository doesn't support revision lookup, so a rev cannot be specified.")
  2081             error = _("Other repository doesn't support revision lookup, so a rev cannot be specified.")
  2080             raise util.Abort(error)
  2082             raise util.Abort(error)
  2081 
  2083 
       
  2084     wasempty = repo.changelog.count() == 0
  2082     modheads = repo.pull(other, heads=revs, force=opts['force'])
  2085     modheads = repo.pull(other, heads=revs, force=opts['force'])
  2083     return postincoming(ui, repo, modheads, opts['update'])
  2086     return postincoming(ui, repo, modheads, opts['update'], wasempty)
  2084 
  2087 
  2085 def push(ui, repo, dest=None, **opts):
  2088 def push(ui, repo, dest=None, **opts):
  2086     """push changes to the specified destination
  2089     """push changes to the specified destination
  2087 
  2090 
  2088     Push changes from the local repository to the given destination.
  2091     Push changes from the local repository to the given destination.
  2642     Apply one or more compressed changegroup files generated by the
  2645     Apply one or more compressed changegroup files generated by the
  2643     bundle command.
  2646     bundle command.
  2644     """
  2647     """
  2645     fnames = (fname1,) + fnames
  2648     fnames = (fname1,) + fnames
  2646     result = None
  2649     result = None
       
  2650     wasempty = repo.changelog.count() == 0
  2647     for fname in fnames:
  2651     for fname in fnames:
  2648         if os.path.exists(fname):
  2652         if os.path.exists(fname):
  2649             f = open(fname, "rb")
  2653             f = open(fname, "rb")
  2650         else:
  2654         else:
  2651             f = urllib.urlopen(fname)
  2655             f = urllib.urlopen(fname)
  2652         gen = changegroup.readbundle(f, fname)
  2656         gen = changegroup.readbundle(f, fname)
  2653         modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname)
  2657         modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname)
  2654 
  2658 
  2655     return postincoming(ui, repo, modheads, opts['update'])
  2659     return postincoming(ui, repo, modheads, opts['update'], wasempty)
  2656 
  2660 
  2657 def update(ui, repo, node=None, rev=None, clean=False, date=None):
  2661 def update(ui, repo, node=None, rev=None, clean=False, date=None):
  2658     """update working directory
  2662     """update working directory
  2659 
  2663 
  2660     Update the working directory to the specified revision, or the
  2664     Update the working directory to the specified revision, or the