Ken Dreyer [off-list ref] writes:
quoted hunk
The "?" character can be present in a CVS tag name, but git's
bad_ref_char does not allow question marks in git tags. If
git-cvsimport encounters a CVS tag with a question mark, it will error
and refuse to continue the import beyond that point.
When importing CVS tags, strip "?" characters from the tag names as we
translate them to git tag names.
Signed-off-by: Ken Dreyer <redacted>
---
git-cvsimport.perl | 1 +
1 file changed, 1 insertion(+)
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index 8d41610..36f59fe 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -890,6 +890,7 @@ sub commit {
$xtag =~ tr/_/\./ if ( $opt_u );
$xtag =~ s/[\/]/$opt_s/g;
$xtag =~ s/\[//g;
+ $xtag =~ s/\?//g;
I do not think this is a right and sustainable approach. The next
patch would probably be to strip "~" and then another patch that
strips "^", and yet another that squashes ".." into one would surely
follow.
How about extending the s/\[//g we can see in the context to cover
everything that are unacceptable (see refs.c:bad_ref_char()) once
and for all? The result needs to be further massaged to avoid
component that has two or more dots in a row, a dot at the beginning
or at the end (see the comment at the beginning of refs.c, and also
refs.c:check_refname_component()).
system('git' , 'tag', '-f', $xtag, $cid) == 0
or die "Cannot create tag $xtag: $!\n";