--- a/mercurial/commands.py Mon Jul 16 16:50:47 2007 -0700
+++ b/mercurial/commands.py Mon Jul 16 18:01:20 2007 -0700
@@ -2025,11 +2025,13 @@
for name, path in ui.configitems("paths"):
ui.write("%s = %s\n" % (name, path))
-def postincoming(ui, repo, modheads, optupdate):
+def postincoming(ui, repo, modheads, optupdate, wasempty):
if modheads == 0:
return
if optupdate:
- if modheads == 1:
+ if wasempty:
+ return hg.update(repo, repo.lookup('default'))
+ elif modheads == 1:
return hg.update(repo, repo.changelog.tip()) # update
else:
ui.status(_("not updating, since new heads added\n"))
@@ -2091,8 +2093,9 @@
error = _("Other repository doesn't support revision lookup, so a rev cannot be specified.")
raise util.Abort(error)
+ wasempty = repo.changelog.count() == 0
modheads = repo.pull(other, heads=revs, force=opts['force'])
- return postincoming(ui, repo, modheads, opts['update'])
+ return postincoming(ui, repo, modheads, opts['update'], wasempty)
def push(ui, repo, dest=None, **opts):
"""push changes to the specified destination
@@ -2656,6 +2659,7 @@
"""
fnames = (fname1,) + fnames
result = None
+ wasempty = repo.changelog.count() == 0
for fname in fnames:
if os.path.exists(fname):
f = open(fname, "rb")
@@ -2664,7 +2668,7 @@
gen = changegroup.readbundle(f, fname)
modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname)
- return postincoming(ui, repo, modheads, opts['update'])
+ return postincoming(ui, repo, modheads, opts['update'], wasempty)
def update(ui, repo, node=None, rev=None, clean=False, date=None):
"""update working directory