diff options
author | James Moger <james.moger@gitblit.com> | 2013-04-01 08:09:29 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2013-04-01 08:09:29 -0400 |
commit | 19c1af5650cd58228f78308d98a7c22f37e3dec3 (patch) | |
tree | 5d62736e3209a57d3ec5de9deac03df652253e10 /src/main/java/com/gitblit/GitServlet.java | |
parent | 2fe1e2d109fd84ec7a615c2d3d6740ff001dbf40 (diff) | |
parent | e0c37df7ca2fe51bb538bdfe2412f74d5880e17d (diff) | |
download | gitblit-19c1af5650cd58228f78308d98a7c22f37e3dec3.tar.gz gitblit-19c1af5650cd58228f78308d98a7c22f37e3dec3.zip |
Merge branch 'autotagpush' of https://github.com/akquinet/gitblit into pushtags
Diffstat (limited to 'src/main/java/com/gitblit/GitServlet.java')
-rw-r--r-- | src/main/java/com/gitblit/GitServlet.java | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/src/main/java/com/gitblit/GitServlet.java b/src/main/java/com/gitblit/GitServlet.java index 77be963f..cb47b323 100644 --- a/src/main/java/com/gitblit/GitServlet.java +++ b/src/main/java/com/gitblit/GitServlet.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.text.MessageFormat;
import java.util.Collection;
import java.util.Enumeration;
+import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
@@ -32,7 +33,9 @@ import javax.servlet.ServletConfig; import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.Part;
+import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.http.server.resolver.DefaultReceivePackFactory;
import org.eclipse.jgit.http.server.resolver.DefaultUploadPackFactory;
import org.eclipse.jgit.lib.PersonIdent;
@@ -80,7 +83,7 @@ public class GitServlet extends org.eclipse.jgit.http.server.GitServlet { private GroovyScriptEngine gse;
private File groovyDir;
-
+
@Override
public void init(ServletConfig config) throws ServletException {
groovyDir = GitBlit.getGroovyScriptsFolder();
@@ -100,7 +103,6 @@ public class GitServlet extends org.eclipse.jgit.http.server.GitServlet { @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 +165,7 @@ public class GitServlet extends org.eclipse.jgit.http.server.GitServlet { return up;
}
});
+
super.init(new GitblitServletConfig(config));
}
@@ -296,7 +299,28 @@ public class GitServlet extends org.eclipse.jgit.http.server.GitServlet { UserModel user = getUserModel(rp);
RepositoryModel repository = GitBlit.self().getRepositoryModel(repositoryName);
-
+
+ if (repository.useIncrementalRevisionNumbers) {
+ List<ReceiveCommand> allCommands = rp.getAllCommands();
+ String cmds = "";
+ for (ReceiveCommand receiveCommand : allCommands) {
+ cmds += receiveCommand.getType() + "_"
+ + receiveCommand.getResult() + "_"
+ + receiveCommand.getMessage() + ", ";
+ if (receiveCommand.getType().equals(
+ ReceiveCommand.Type.UPDATE)
+ && receiveCommand.getResult().equals(
+ ReceiveCommand.Result.OK)) {
+ // if type=update and update was ok, autotag
+ String objectId = receiveCommand.getNewId().toString()
+ .replace("AnyObjectId[", "").replace("]", "");
+ boolean result = JGitUtils
+ .createIncrementalRevisionTag(
+ rp.getRepository(), objectId);
+ }
+ }
+ }
+
// log ref changes
for (ReceiveCommand cmd : commands) {
if (Result.OK.equals(cmd.getResult())) {
|