I track a CVS project which has a branch with a '/' in the branch name. Since git wants the branch name to be a file name at the same time, substitute that character to a '-' by default (override with "-s <subst>"). This should work well, despite the fact that a division and a difference are completely different :-)
Signed-off-by: Johannes Schindelin <[EMAIL PROTECTED]> --- Documentation/git-cvsimport-script.txt | 6 +++++- git-cvsimport-script | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) b4327595f6cd2a0a4e573ceb12983765321f4790 diff --git a/Documentation/git-cvsimport-script.txt b/Documentation/git-cvsimport-script.txt --- a/Documentation/git-cvsimport-script.txt +++ b/Documentation/git-cvsimport-script.txt @@ -11,7 +11,8 @@ SYNOPSIS -------- 'git-cvsimport-script' [ -o <branch-for-HEAD> ] [ -h ] [ -v ] [ -d <CVSROOT> ] [ -p <options-for-cvsps> ] - [ -C <GIT_repository> ] [ -i ] [ -k ] [ <CVS_module> ] + [ -C <GIT_repository> ] [ -i ] [ -k ] + [ -s <subst> ] [ <CVS_module> ] DESCRIPTION @@ -69,6 +70,9 @@ OPTIONS -z <fuzz>:: Pass the timestamp fuzz factor to cvsps. +-s <subst>:: + Substitute the character "/" in branch names with <subst> + OUTPUT ------ If '-v' is specified, the script reports what it is doing. diff --git a/git-cvsimport-script b/git-cvsimport-script --- a/git-cvsimport-script +++ b/git-cvsimport-script @@ -28,19 +28,19 @@ use POSIX qw(strftime dup2); $SIG{'PIPE'}="IGNORE"; $ENV{'TZ'}="UTC"; -our($opt_h,$opt_o,$opt_v,$opt_k,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i); +our($opt_h,$opt_o,$opt_v,$opt_k,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_s); sub usage() { print STDERR <<END; Usage: ${\basename $0} # fetch/update GIT from CVS [ -o branch-for-HEAD ] [ -h ] [ -v ] [ -d CVSROOT ] [ -p opts-for-cvsps ] [ -C GIT_repository ] [ -z fuzz ] - [ -i ] [ -k ] [ CVS_module ] + [ -i ] [ -k ] [-s subst] [ CVS_module ] END exit(1); } -getopts("hivko:d:p:C:z:") or usage(); +getopts("hivko:d:p:C:z:s:") or usage(); usage if $opt_h; @ARGV <= 1 or usage(); @@ -59,6 +59,7 @@ if($opt_d) { die "CVSROOT needs to be set"; } $opt_o ||= "origin"; +$opt_s ||= "-"; my $git_tree = $opt_C; $git_tree ||= "."; @@ -621,6 +622,7 @@ while(<CVS>) { $state = 4; } elsif($state == 4 and s/^Branch:\s+//) { s/\s+$//; + s/[\/]/$opt_s/g; $branch = $_; $state = 5; } elsif($state == 5 and s/^Ancestor branch:\s+//) { - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html