diff -r 8fee8ff13d37 -r 3d54cf97598d mercurial/localrepo.py --- a/mercurial/localrepo.py Mon Sep 08 13:07:00 2008 +0200 +++ b/mercurial/localrepo.py Mon Sep 08 14:04:10 2008 +0200 @@ -221,7 +221,13 @@ raise util.Abort(_('working copy of .hgtags is changed ' '(please commit .hgtags manually)')) - self._tag(names, node, message, local, user, date) + parents = self[None].parents() + parent = None + # use tip instead of the parent rev if there's no working copy + # (avoid creating a new head) + if len(parents) == 1 and parents[0].node() == nullid: + parent = self['tip'].node() + self._tag(names, node, message, local, user, date, parent=parent) def tags(self): '''return a mapping of tag to node'''