Add post-merge hook, related documentation, and tests.
[gitweb.git] / git-send-email.perl
index dd7560b180adcba90a1fc3dc94c206b567398e9e..4031e86b8688e62cc3a547ffd52dfc1b8234f0f4 100755 (executable)
@@ -361,7 +361,8 @@ sub expand_aliases {
        } while (!defined $_);
 
        $initial_reply_to = $_;
-       $initial_reply_to =~ s/(^\s+|\s+$)//g;
+       $initial_reply_to =~ s/^\s+<?/</;
+       $initial_reply_to =~ s/>?\s+$/>/;
 }
 
 if (!defined $smtp_server) {
@@ -477,10 +478,17 @@ sub extract_valid_address {
 
 # We'll setup a template for the message id, using the "from" address:
 
+my ($message_id_stamp, $message_id_serial);
 sub make_message_id
 {
-       my $date = time;
-       my $pseudo_rand = int (rand(4200));
+       my $uniq;
+       if (!defined $message_id_stamp) {
+               $message_id_stamp = sprintf("%s-%s", time, $$);
+               $message_id_serial = 0;
+       }
+       $message_id_serial++;
+       $uniq = "$message_id_stamp-$message_id_serial";
+
        my $du_part;
        for ($sender, $repocommitter, $repoauthor) {
                $du_part = extract_valid_address(sanitize_address($_));
@@ -490,8 +498,8 @@ sub make_message_id
                use Sys::Hostname qw();
                $du_part = 'user@' . Sys::Hostname::hostname();
        }
-       my $message_id_template = "<%s-git-send-email-$du_part>";
-       $message_id = sprintf $message_id_template, "$date$pseudo_rand";
+       my $message_id_template = "<%s-git-send-email-%s>";
+       $message_id = sprintf($message_id_template, $uniq, $du_part);
        #print "new message id = $message_id\n"; # Was useful for debugging
 }