# HG changeset patch # User Bryan O'Sullivan # Date 1186435025 25200 # Node ID 78eb03cbe535d7f7b24a2fdd828abc81670679a1 # Parent 2f9edf6bae95dfe7f323bf6b003631004bc2e697# Parent 39b6eaee6fd7a9398d7eb04bd3145af18d95f1be Automated merge with http://hg.intevation.org/mercurial/crew diff --git a/hgext/convert/hg.py b/hgext/convert/hg.py --- a/hgext/convert/hg.py +++ b/hgext/convert/hg.py @@ -134,7 +134,10 @@ class mercurial_source(converter_source) return self.lastctx def getheads(self): - return [hex(node) for node in self.repo.heads()] + if self.rev: + return [hex(self.repo.changectx(self.rev).node())] + else: + return [hex(node) for node in self.repo.heads()] def getfile(self, name, rev): try: diff --git a/hgext/convert/subversion.py b/hgext/convert/subversion.py --- a/hgext/convert/subversion.py +++ b/hgext/convert/subversion.py @@ -102,7 +102,7 @@ class convert_svn(converter_source): try: latest = int(rev) except ValueError: - raise util.Abort('svn: revision %s is not an integer' % rev) + raise NoRepo('svn: revision %s is not an integer' % rev) try: # Support file://path@rev syntax. Useful e.g. to convert # deleted branches. diff --git a/hgext/record.py b/hgext/record.py --- a/hgext/record.py +++ b/hgext/record.py @@ -327,8 +327,8 @@ def record(ui, repo, *pats, **opts): try: os.mkdir(backupdir) except OSError, err: - if err.errno == errno.EEXIST: - pass + if err.errno != errno.EEXIST: + raise try: for f in newfiles: if f not in modified: @@ -363,7 +363,7 @@ def record(ui, repo, *pats, **opts): try: for realname, tmpname in backups.iteritems(): ui.debug('restoring %r to %r\n' % (tmpname, realname)) - util.copyfile(tmpname, realname) + util.copyfile(tmpname, repo.wjoin(realname)) os.unlink(tmpname) os.rmdir(backupdir) except OSError: diff --git a/tests/test-record b/tests/test-record --- a/tests/test-record +++ b/tests/test-record @@ -202,3 +202,15 @@ y y EOF echo; hg tip -p + +mkdir subdir +cd subdir +echo a > a +hg ci -d '16 0' -Amsubdir + +echo a >> a +hg record -d '16 0' -m subdir-change a <