Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
git:generic-settings [2009/01/15 14:08]
213.192.30.143 Backslashes removed
git:generic-settings [2010/01/12 22:02] (current)
linulin no spam
Line 4: Line 4:
 ===== Mail Notifications ===== ===== Mail Notifications =====
  
-The central git repository can send email notifications whenever a contributor pushes commits into it. The mailing script is in $GIT_REPO/hooks/mail and it is called from $GIT_REPO/hooks/update. The notifications can be configured from the repository. To enable mail notifications you have to set mailNotifications to true in the hooks section:+The central git repository can send email notifications whenever a 
 +contributor pushes commits into it. The mailing script is in 
 +$GIT_REPO/hooks/mail and it is called from $GIT_REPO/hooks/update. The 
 +notifications can be configured from the repository. To enable mail 
 +notifications you have to set mailNotifications to true in the hooks 
 +section:
  
 <code> <code>
Line 11: Line 16:
 </code> </code>
  
-After that you need to configure the sender and recipient email addresses and a link to gitweb. These parameters belong to section mail:+After that you need to configure the sender and recipient email 
 +addresses and a link to gitweb. These parameters belong to section 
 +mail:
  
 <code> <code>
Line 20: Line 27:
 </code> </code>
  
-Parameter ''envelopeSender'' configures the sender address to be put in the message envelope. This is the email address that will receive delivery status notification and notifications of failures. This is not the email address that will be put in From header, the From header will be set to your name and email address which you configured in git and which appears in the commits.+Parameter ''envelopeSender'' configures the sender address to be put 
 +in the message envelope. This is the email address that will receive 
 +delivery status notification and notifications of failures. This is 
 +not the email address that will be put in From header, the From header 
 +will be set to your name and email address which you configured in git 
 +and which appears in the commits.
  
-Parameter ''recipient'' is the destination address, usually a development mailing list. Mail notifications can contain a link to gitweb in the body, configure ''gitwebURL'' with the URL to your gitweb if you want to have a link to gitweb in your email notifications.+Parameter ''recipient'' is the destination address, usually a 
 +development mailing list. Mail notifications can contain a link to 
 +gitweb in the body, configure ''gitwebURL'' with the URL to your 
 +gitweb if you want to have a link to gitweb in your email 
 +notifications.
  
-The mapping of usernames to email addresses is done using a static file. The original commitlog script used a static address in From. I then modified the script to extract the author information from the commit object so that we can use it in From and people can reply to commitlog messages directly -- reaching the author of the change. Unfortunately this did not work as I expected. A contributor might pull some changes from a private repository for somebody else and then the email address of that person would be in the author field and in From header of the commitlog, although the commit was done by somebody else. Then we tried to use the committer field from the commit object, but the result was the same, most of the time it contains the same email address as the author field.+The mapping of usernames to email addresses is done using a static 
 +file. The original commitlog script used a static address in From. I 
 +then modified the script to extract the author information from the 
 +commit object so that we can use it in From and people can reply to 
 +commitlog messages directly -- reaching the author of the 
 +change. Unfortunately this did not work as I expected. A contributor 
 +might pull some changes from a private repository for somebody else 
 +and then the email address of that person would be in the author field 
 +and in From header of the commitlog, although the commit was done by 
 +somebody else. Then we tried to use the committer field from the 
 +commit object, but the result was the same, most of the time it 
 +contains the same email address as the author field.
  
-It turned out that we couldn't use GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL environment variables in people's ''~/.bashrc'' either to be used in From, because git executes the shell as non-interactive and non-login so the startup files are ignored when git executes commands and hooks on the server.+It turned out that we couldn't use GIT_COMMITTER_NAME and 
 +GIT_COMMITTER_EMAIL environment variables in people's ''~/.bashrc'' 
 +either to be used in From, because git executes the shell as 
 +non-interactive and non-login so the startup files are ignored when 
 +git executes commands and hooks on the server.
  
 So I ended up adding a simple mapping file, it is in $GIT_DIR/email_map So I ended up adding a simple mapping file, it is in $GIT_DIR/email_map
  
-format is "username=First Last <email>"+format is  
 +<code> 
 +username=First Last <email> 
 +</code> 
 + 
 +You can define a catch-all rule in the mapping file which will be used 
 +whenever no matching username can be find if you replace the username 
 +with *:
  
-You can define a catch-all rule in the mapping file which will be used whenever no matching username can be find if you replace the username with *: 
 <code> <code>
 *=root@localhost *=root@localhost
 </code> </code>
  
-and I added a new configuration option to the git config where you can specify with mapping file will be used for the repository:+and I added a new configuration option to the git config where you can 
 +specify with mapping file will be used for the repository:
  
 <code> <code>
Line 47: Line 85:
 </code> </code>
  
-The mailing script dies if it cannot translate a username to email address. It is also possible specify a static From address in the git confiuration file, i.e:+The mailing script dies if it cannot translate a username to email 
 +address. It is also possible specify a static From address in the git 
 +confiuration file, i.e:
  
 <code> <code>
Line 54: Line 94:
 </code> </code>
  
-Then the static configuration takes precedence. Two more improvements to come are:+Then the static configuration takes precedence. Two more improvements 
 +to come are:
  
   * Update the cvs synchronization script so that we get notifications of commits from cvs.   * Update the cvs synchronization script so that we get notifications of commits from cvs.
Line 61: Line 102:
 ===== Branch ACLs ===== ===== Branch ACLs =====
  
-Write access to specific branches can be limited. This is implemented in the update hook. +Write access to specific branches can be limited. This is implemented 
-There are 2 files that control who can commit and on which branch:+in the update hook.  There are 2 files that control who can commit and 
 +on which branch:
     **$GIT_DIR/info/allowed-users** : contains one branch pattern and a user pattern list on each line (the patterns are      **$GIT_DIR/info/allowed-users** : contains one branch pattern and a user pattern list on each line (the patterns are 
  regular expressions separated by white space). Empty lines and comments (lines starting with '#') are allowed. The branch rules evaluate in the order  regular expressions separated by white space). Empty lines and comments (lines starting with '#') are allowed. The branch rules evaluate in the order

Navigation

Wiki

Other

QR Code
QR Code git:generic-settings (generated for current page)