git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 7/7] cvsserver: Use the user part of the email in log and annotate results

From
Damien Diederen <dash@foobox.net>
Date
Mar 27, 2008, 22:18 UTC
Message-ID
<f7869cd4f5ed963cbc298ee64b77a43ebd778b0f.1206654905.git.dash@foobox.net>
In-Reply-To
<cover.1206393086.git.dash@foobox.net>

Generate the CVS author names by taking the first eight characters of the user part of the email address. The resulting names are more likely to make sense (or at least reduce ambiguities) in "corporate" environments.

Signed-off-by: Damien Diederen <dash@foobox.net>
---
 git-cvsserver.perl |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/git-cvsserver.perl b/git-cvsserver.perl
index 49c0ba2..dcca4e7 100755
--- a/git-cvsserver.perl
+++ b/git-cvsserver.perl
@@ -1728,8 +1728,7 @@ sub req_log
             print "M revision 1.$revision->{revision}\n";
             # reformat the date for log output
             $revision->{modified} = sprintf('%04d/%02d/%02d %s', $3, $DATE_LIST->{$2}, $1, $4 ) if ( $revision->{modified} =~ /(\d+)\s+(\w+)\s+(\d+)\s+(\S+)/ and defined($DATE_LIST->{$2}) );
-            $revision->{author} =~ s/\s+.*//;
-            $revision->{author} =~ s/^(.{8}).*/$1/;
+            $revision->{author} = cvs_author($revision->{author});
             print "M date: $revision->{modified};  author: $revision->{author};  state: " . ( $revision->{filehash} eq "deleted" ? "dead" : "Exp" ) . ";  lines: +2 -3\n";
             my $commitmessage = $updater->commitmessage($revision->{commithash});
             $commitmessage =~ s/^/M /mg;
@@ -1844,8 +1843,7 @@ sub req_annotate
                 unless ( defined ( $metadata->{$commithash} ) )
                 {
                     $metadata->{$commithash} = $updater->getmeta($filename, $commithash);
-                    $metadata->{$commithash}{author} =~ s/\s+.*//;
-                    $metadata->{$commithash}{author} =~ s/^(.{8}).*/$1/;
+                    $metadata->{$commithash}{author} = cvs_author($metadata->{$commithash}{author});
                     $metadata->{$commithash}{modified} = sprintf("%02d-%s-%02d", $1, $2, $3) if ( $metadata->{$commithash}{modified} =~ /^(\d+)\s(\w+)\s\d\d(\d\d)/ );
                 }
                 printf("M 1.%-5d      (%-8s %10s): %s\n",
@@ -2139,6 +2137,16 @@ sub kopts_from_path
     }
 }
 
+# Generate a CVS author name from Git author information, by taking
+# the first eight characters of the user part of the email address.
+sub cvs_author
+{
+    my $author_line = shift;
+    (my $author) = $author_line =~ /<([^>@]{1,8})/;
+
+    $author;
+}
+
 package GITCVS::log;
 
 ####
-- 
1.5.5.rc1.19.gfe7681
Previous: Damien Diederen
Message 22 of 22 in “Enhance TkCVS interoperability”
  1. 0/7 Enhance TkCVS interoperabilityDamien Diederen, Mar 24, 2008
  2. 1/7 cvsserver: Respond to the 'editors' commandDamien Diederen, Mar 24, 2008
  3. Frank LichtenheldMar 25, 2008
  4. 2/7 cvsserver: Only print the file part of the filename in status headerDamien Diederen, Mar 24, 2008
  5. 3/7 cvsserver: Do not include status output for subdirectories if -l is passedDamien Diederen, Mar 24, 2008
  6. 4/7 cvsserver: Add a few tests for 'status' commandDamien Diederen, Mar 24, 2008
  7. 5/7 cvsserver: Implemented update -p (print to stdout)Damien Diederen, Mar 24, 2008
  8. 6/7 cvsserver: Added test for update -pDamien Diederen, Mar 24, 2008
  9. 7/7 cvsserver: Use the user part of the email in log and annotate resultsDamien Diederen, Mar 24, 2008
  10. Frank LichtenheldMar 25, 2008
  11. Rafael Garcia-SuarezMar 25, 2008
  12. Damien DiederenMar 25, 2008
  13. Junio C HamanoMar 25, 2008
  14. 0/7 Enhance TkCVS interoperabilityDamien Diederen, Mar 27, 2008
  15. Junio C HamanoMar 28, 2008
  16. 1/7 cvsserver: Respond to the 'editors' and 'watchers' commandsDamien Diederen, Mar 27, 2008
  17. 2/7 cvsserver: Only print the file part of the filename in status headerDamien Diederen, Mar 27, 2008
  18. 3/7 cvsserver: Do not include status output for subdirectories if -l is passedDamien Diederen, Mar 27, 2008
  19. 4/7 cvsserver: Add a few tests for 'status' commandDamien Diederen, Mar 27, 2008
  20. 5/7 cvsserver: Implement update -p (print to stdout)Damien Diederen, Mar 27, 2008
  21. 6/7 cvsserver: Add test for update -pDamien Diederen, Mar 27, 2008
  22. 7/7 cvsserver: Use the user part of the email in log and annotate resultsDamien Diederen, Mar 27, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.