Fix logic from previous commit so it only applies when a 'newmtime' parameter
authorZac Medico <zmedico@gentoo.org>
Fri, 27 Nov 2009 02:22:08 +0000 (02:22 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 27 Nov 2009 02:22:08 +0000 (02:22 -0000)
has not been specified (this is always the case when called by portage).

svn path=/main/trunk/; revision=14898

pym/portage/__init__.py

index 3246a3a51f532aed355a22c2c90c6fa1c966bff6..35ce953296b8fe090f02eb01fa853c9b61cf251d 100644 (file)
@@ -7565,13 +7565,15 @@ def movefile(src, dest, newmtime=None, sstat=None, mysettings=None,
        try:
                if hardlinked:
                        newmtime = long(os.stat(dest).st_mtime)
-               elif not renamefailed:
-                       newmtime = long(sstat.st_mtime)
                else:
                        if newmtime is not None:
                                os.utime(dest, (newmtime, newmtime))
                        else:
-                               os.utime(dest, (sstat.st_atime, sstat.st_mtime))
+                               if renamefailed:
+                                       # If rename succeeded then this is not necessary, since
+                                       # rename automatically preserves timestamps with complete
+                                       # precision.
+                                       os.utime(dest, (sstat.st_atime, sstat.st_mtime))
                                newmtime = long(sstat.st_mtime)
        except OSError:
                # The utime can fail here with EPERM even though the move succeeded.