# HG changeset patch # User Patrick Mezard # Date 2010-07-28 09:07:20 # Node ID 84fb29f5e0d29bc95006947a62133032499e3fa3 # Parent 52c863295754399f055fdb13d6b080b63c4aa50e mq: fix qimport --name --existing --force on win32 os.rename() does not overwrite existing targets on Windows. diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -1699,7 +1699,7 @@ class queue(object): self.ui.write(_('renaming %s to %s\n') % (filename, patchname)) - os.rename(originpath, self.join(patchname)) + util.rename(originpath, self.join(patchname)) else: patchname = filename diff --git a/tests/test-mq-qimport b/tests/test-mq-qimport --- a/tests/test-mq-qimport +++ b/tests/test-mq-qimport @@ -118,3 +118,10 @@ hg qdel -k 2.diff echo % qimport -e --name newname oldexisitingpatch hg qimport -e --name this-name-is-better 2.diff hg qser +echo % qimport -e --name without --force +cp .hg/patches/this-name-is-better .hg/patches/3.diff +hg qimport -e --name this-name-is-better 3.diff +hg qser +echo % qimport -e --name with --force +hg qimport --force -e --name this-name-is-better 3.diff +hg qser diff --git a/tests/test-mq-qimport.out b/tests/test-mq-qimport.out --- a/tests/test-mq-qimport.out +++ b/tests/test-mq-qimport.out @@ -61,3 +61,12 @@ renaming 2.diff to this-name-is-better adding this-name-is-better to series file this-name-is-better url.diff +% qimport -e --name without --force +abort: patch "this-name-is-better" already exists +this-name-is-better +url.diff +% qimport -e --name with --force +renaming 3.diff to this-name-is-better +adding this-name-is-better to series file +this-name-is-better +url.diff