[PATCH] cvs2git and file permissions
authorSven Verdoolaege <Sven.Verdoolaege@cs.kuleuven.ac.be>
Sat, 18 Jun 2005 22:31:15 +0000 (00:31 +0200)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 18 Jun 2005 22:38:23 +0000 (15:38 -0700)
git-cvs2git: propagate mode information

Let cvs checkout in a temporary directory rather than
using the pipe option to avoid loss of mode information.

Signed-off-by: Sven Verdoolaege <skimo@liacs.nl>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
cvs2git.c

index 97b4300519d24120a518a69a3f559ca0145d1435..d438475d03b7ff897a9e2b976a34a75b86c01a80 100644 (file)
--- a/cvs2git.c
+++ b/cvs2git.c
@@ -193,7 +193,10 @@ static void update_file(char *line)
        if (dir)
                printf("mkdir -p %.*s\n", (int)(dir - name), name);
 
-       printf("cvs -q -d %s checkout -r%s -p '%s/%s' > '%s'\n", cvsroot, version, cvsmodule, name, name);
+       printf("cvs -q -d %s checkout -d .git-tmp -r%s '%s/%s'\n", 
+               cvsroot, version, cvsmodule, name);
+       printf("mv -f .git-tmp/%s %s\n", dir ? dir+1 : name, name);
+       printf("rm -rf .git-tmp\n");
        printf("git-update-cache --add -- '%s'\n", name);
 }