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

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

From
Damien Diederen <dash@foobox.net>
Date
Mar 24, 2008, 22:50 UTC
Message-ID
<01e5947cde524f4eb97a86785d0e1f28e2d040e0.1206393086.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 |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/git-cvsserver.perl b/git-cvsserver.perl
index 3c97226..9d845c8 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",
@@ -2136,6 +2134,18 @@ 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 = shift;
+
+    $author =~ s/.*<([^>]+)\@[^>]+>$/$1/;
+    $author =~ s/^(.{8}).*/$1/;
+
+    $author;
+}
+
 package GITCVS::log;
 
 ####
-- 
1.5.5.rc1.6.gd183
Previous: Damien DiederenNext: Frank Lichtenheld
Message 9 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.