summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPanagiotis Issaris <takis@lumumba.luc.ac.be>2005-06-17 16:26:57 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-19 17:48:41 (GMT)
commit31b6d200d6c5ed019f62d88ef0926faeb0150aac (patch)
treebbf84c5b8f2fc52620d5cf59389a3307609bc581
parent44ab20cd884dcb3d2ef4cfbda4591dd2cd9bee79 (diff)
downloadgit-31b6d200d6c5ed019f62d88ef0926faeb0150aac.zip
git-31b6d200d6c5ed019f62d88ef0926faeb0150aac.tar.gz
git-31b6d200d6c5ed019f62d88ef0926faeb0150aac.tar.bz2
[PATCH] cvs2git.c: support incremental conversion
Add -u option to indicate incremental conversion. I wanted to be able to track CVS repositories in a GIT repository. The cvs2git program worked fine with the initial import but needed a tiny modification to enable me to resync the GIT repository with the updated CVS tree. [ The original version of this patch failed to track the correct branch on the first new commit. Fixed and tested by Sven. ] Signed-off-by: Panagiotis Issaris <takis@lumumba.luc.ac.be> Signed-off-by: Sven Verdoolaege <skimo@kotnet.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--cvs2git.c24
1 files changed, 18 insertions, 6 deletions
diff --git a/cvs2git.c b/cvs2git.c
index d438475..ab05908 100644
--- a/cvs2git.c
+++ b/cvs2git.c
@@ -28,11 +28,17 @@ static int verbose = 0;
* Usage:
*
* TZ=UTC cvsps -A |
- * cvs2git --cvsroot=[root] --module=[module] > script
+ * git-cvs2git --cvsroot=[root] --module=[module] > script
*
* Creates a shell script that will generate the .git archive of
* the names CVS repository.
*
+ * TZ=UTC cvsps -s 1234- -A |
+ * git-cvs2git -u --cvsroot=[root] --module=[module] > script
+ *
+ * Creates a shell script that will update the .git archive with
+ * CVS changes from patchset 1234 until the last one.
+ *
* IMPORTANT NOTE ABOUT "cvsps"! This requires version 2.1 or better,
* and the "TZ=UTC" and the "-A" flag is required for sane results!
*/
@@ -233,6 +239,10 @@ int main(int argc, char **argv)
verbose = 1;
continue;
}
+ if (!strcmp(arg, "-u")) {
+ initial_commit = 0;
+ continue;
+ }
}
@@ -244,11 +254,13 @@ int main(int argc, char **argv)
exit(1);
}
- printf("[ -d .git ] && exit 1\n");
- printf("git-init-db\n");
- printf("mkdir -p .git/refs/heads\n");
- printf("mkdir -p .git/refs/tags\n");
- printf("ln -sf refs/heads/master .git/HEAD\n");
+ if (initial_commit) {
+ printf("[ -d .git ] && exit 1\n");
+ printf("git-init-db\n");
+ printf("mkdir -p .git/refs/heads\n");
+ printf("mkdir -p .git/refs/tags\n");
+ printf("ln -sf refs/heads/master .git/HEAD\n");
+ }
while (fgets(line, sizeof(line), stdin) != NULL) {
int linelen = strlen(line);