test-chmtime: work around Windows limitation
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sun, 31 May 2009 16:15:18 +0000 (18:15 +0200)
committerJunio C Hamano <gitster@pobox.com>
Mon, 1 Jun 2009 07:10:08 +0000 (00:10 -0700)
Windows has problems changing the mtime when the file is write protected,
even by the owner of said file.

Add a Windows-only workaround to change the mode if necessary before
trying to change the mtime.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Steffen Prohaska <prohaska@zib.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
test-chmtime.c

index d5358cbaac2022483b74366555fc9707a7d8ad97..fe476cb6185a389671c014b4ea067184f51465d0 100644 (file)
@@ -87,6 +87,15 @@ int main(int argc, const char *argv[])
                        return -1;
                }
 
+#ifdef WIN32
+               if (!(sb.st_mode & S_IWUSR) &&
+                               chmod(argv[i], sb.st_mode | S_IWUSR)) {
+                       fprintf(stderr, "Could not make user-writable %s: %s",
+                               argv[i], strerror(errno));
+                       return -1;
+               }
+#endif
+
                utb.actime = sb.st_atime;
                utb.modtime = set_eq ? set_time : sb.st_mtime + set_time;