James Moger
2013-04-02 b9afce4d3db8dec34b22b07c952df814efc7335f
src/main/java/com/gitblit/GitServlet.java
@@ -52,6 +52,7 @@
import org.slf4j.LoggerFactory;
import com.gitblit.Constants.AccessRestrictionType;
import com.gitblit.client.Translation;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.UserModel;
import com.gitblit.utils.ClientLogger;
@@ -80,7 +81,7 @@
   private GroovyScriptEngine gse;
   private File groovyDir;
   @Override
   public void init(ServletConfig config) throws ServletException {
      groovyDir = GitBlit.getGroovyScriptsFolder();
@@ -100,7 +101,6 @@
         @Override
         public ReceivePack create(HttpServletRequest req, Repository db)
               throws ServiceNotEnabledException, ServiceNotAuthorizedException {
            // determine repository name from request
            String repositoryName = req.getPathInfo().substring(1);
            repositoryName = GitFilter.getRepositoryName(repositoryName);
@@ -163,6 +163,7 @@
            return up;
         }
      });
      super.init(new GitblitServletConfig(config));
   }
@@ -294,9 +295,45 @@
            return;
         }
         UserModel user = getUserModel(rp);
         UserModel user = getUserModel(rp);
         RepositoryModel repository = GitBlit.self().getRepositoryModel(repositoryName);
         if (repository.useIncrementalPushTags) {
            // tag each pushed branch tip
            String emailAddress = user.emailAddress == null ? rp.getRefLogIdent().getEmailAddress() : user.emailAddress;
            PersonIdent userIdent = new PersonIdent(user.getDisplayName(), emailAddress);
            for (ReceiveCommand cmd : commands) {
               if (!cmd.getRefName().startsWith("refs/heads/")) {
                  // only tag branch ref changes
                  continue;
               }
               if (!ReceiveCommand.Type.DELETE.equals(cmd.getType())
                     && ReceiveCommand.Result.OK.equals(cmd.getResult())) {
                  String objectId = cmd.getNewId().getName();
                  String branch = cmd.getRefName().substring("refs/heads/".length());
                  // get translation based on the server's locale setting
                  String template = Translation.get("gb.incrementalPushTagMessage");
                  String msg = MessageFormat.format(template, branch);
                  String prefix;
                  if (StringUtils.isEmpty(repository.incrementalPushTagPrefix)) {
                     prefix = GitBlit.getString(Keys.git.defaultIncrementalPushTagPrefix, "r");
                  } else {
                     prefix = repository.incrementalPushTagPrefix;
                  }
                  JGitUtils.createIncrementalRevisionTag(
                           rp.getRepository(),
                           objectId,
                           userIdent,
                           prefix,
                           "0",
                           msg);
               }
            }
         }
         // log ref changes
         for (ReceiveCommand cmd : commands) {
            if (Result.OK.equals(cmd.getResult())) {
@@ -308,6 +345,9 @@
               case CREATE:
                  logger.info(MessageFormat.format("{0} CREATED {1} in {2}", user.username, cmd.getRefName(), repository.name));
                  break;
               case UPDATE:
                  logger.info(MessageFormat.format("{0} UPDATED {1} in {2} (from {3} to {4})", user.username, cmd.getRefName(), repository.name, cmd.getOldId().name(), cmd.getNewId().name()));
                  break;
               case UPDATE_NONFASTFORWARD:
                  logger.info(MessageFormat.format("{0} UPDATED NON-FAST-FORWARD {1} in {2} (from {3} to {4})", user.username, cmd.getRefName(), repository.name, cmd.getOldId().name(), cmd.getNewId().name()));
                  break;