# HG changeset patch # User FUJIWARA Katsunori # Date 1499177627 -32400 # Node ID 6af0f023d0142c23396e70df03f05830598607f0 # Parent 646352291f5b8064a76b2f934253bfef08b3d30e vfs: replace avoiding ambiguity in abstractvfs.rename with _avoidambig This centralizes common logic to forcibly avoid file stat ambiguity into _avoidambig(), which was introduced by previous patch. diff -r 646352291f5b -r 6af0f023d014 mercurial/vfs.py --- a/mercurial/vfs.py Tue Jul 04 23:13:47 2017 +0900 +++ b/mercurial/vfs.py Tue Jul 04 23:13:47 2017 +0900 @@ -195,18 +195,8 @@ dstpath = self.join(dst) oldstat = checkambig and util.filestat.frompath(dstpath) if oldstat and oldstat.stat: - def dorename(spath, dpath): - ret = util.rename(spath, dpath) - newstat = util.filestat.frompath(dpath) - if newstat.isambig(oldstat): - # stat of renamed file is ambiguous to original one - return ret, newstat.avoidambig(dpath, oldstat) - return ret, True - ret, avoided = dorename(srcpath, dstpath) - if not avoided: - # simply copy to change owner of srcpath (see issue5418) - util.copyfile(dstpath, srcpath) - ret, avoided = dorename(srcpath, dstpath) + ret = util.rename(srcpath, dstpath) + _avoidambig(dstpath, oldstat) return ret return util.rename(srcpath, dstpath)