Skip to content

Commit

Permalink
Merge branch 'fe/cvsserver'
Browse files Browse the repository at this point in the history
* fe/cvsserver:
  cvsserver: change generation of CVS author names
  cvsserver: add option to configure commit message
  • Loading branch information
Junio C Hamano committed Jan 14, 2009
2 parents 49129d3 + d500a1e commit d83fd33
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
4 changes: 4 additions & 0 deletions Documentation/config.txt
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,10 @@ gc.rerereunresolved::
kept for this many days when 'git-rerere gc' is run.
The default is 15 days. See linkgit:git-rerere[1].

gitcvs.commitmsgannotation::
Append this string to each commit message. Set to empty string
to disable this feature. Defaults to "via git-CVS emulator".

gitcvs.enabled::
Whether the CVS server interface is enabled for this repository.
See linkgit:git-cvsserver[1].
Expand Down
20 changes: 16 additions & 4 deletions git-cvsserver.perl
Original file line number Diff line number Diff line change
Expand Up @@ -1358,7 +1358,13 @@ sub req_ci
# write our commit message out if we have one ...
my ( $msg_fh, $msg_filename ) = tempfile( DIR => $TEMP_DIR );
print $msg_fh $state->{opt}{m};# if ( exists ( $state->{opt}{m} ) );
print $msg_fh "\n\nvia git-CVS emulator\n";
if ( defined ( $cfg->{gitcvs}{commitmsgannotation} ) ) {
if ($cfg->{gitcvs}{commitmsgannotation} !~ /^\s*$/ ) {
print $msg_fh "\n\n".$cfg->{gitcvs}{commitmsgannotation}."\n"
}
} else {
print $msg_fh "\n\nvia git-CVS emulator\n";
}
close $msg_fh;

my $commithash = `git-commit-tree $treehash -p $parenthash < $msg_filename`;
Expand Down Expand Up @@ -2527,12 +2533,18 @@ sub open_blob_or_die
return $fh;
}

# Generate a CVS author name from Git author information, by taking
# the first eight characters of the user part of the email address.
# Generate a CVS author name from Git author information, by taking the local
# part of the email address and replacing characters not in the Portable
# Filename Character Set (see IEEE Std 1003.1-2001, 3.276) by underscores. CVS
# Login names are Unix login names, which should be restricted to this
# character set.
sub cvs_author
{
my $author_line = shift;
(my $author) = $author_line =~ /<([^>@]{1,8})/;
(my $author) = $author_line =~ /<([^@>]*)/;

$author =~ s/[^-a-zA-Z0-9_.]/_/g;
$author =~ s/^-/_/;

$author;
}
Expand Down

0 comments on commit d83fd33

Please sign in to comment.