# HG changeset patch # User FUJIWARA Katsunori # Date 2017-07-04 14:13:47 # 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 --git a/mercurial/vfs.py b/mercurial/vfs.py --- a/mercurial/vfs.py +++ b/mercurial/vfs.py @@ -195,18 +195,8 @@ class abstractvfs(object): 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)