| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package uk.ac.ic.wlgitbridge.git;
- import org.eclipse.jgit.api.AddCommand;
- import org.eclipse.jgit.api.CommitCommand;
- import org.eclipse.jgit.api.Git;
- import org.eclipse.jgit.api.errors.GitAPIException;
- import org.eclipse.jgit.errors.RepositoryNotFoundException;
- import org.eclipse.jgit.lib.Repository;
- import org.eclipse.jgit.storage.file.FileRepositoryBuilder;
- import org.eclipse.jgit.transport.ServiceMayNotContinueException;
- import org.eclipse.jgit.transport.resolver.RepositoryResolver;
- import org.eclipse.jgit.transport.resolver.ServiceNotAuthorizedException;
- import org.eclipse.jgit.transport.resolver.ServiceNotEnabledException;
- import javax.servlet.http.HttpServletRequest;
- import java.io.File;
- import java.io.IOException;
- /**
- * Created by Winston on 02/11/14.
- */
- public class WLRepositoryResolver implements RepositoryResolver<HttpServletRequest> {
- @Override
- public Repository open(HttpServletRequest httpServletRequest, String name) throws RepositoryNotFoundException, ServiceNotAuthorizedException, ServiceNotEnabledException, ServiceMayNotContinueException {
- System.out.println(name);
- File workspace = new File("/Users/Roxy/git-test/hello");
- workspace.mkdirs();
- Repository r = null;
- try {
- r = new FileRepositoryBuilder().setWorkTree(workspace).build();
- } catch (IOException e) {
- e.printStackTrace();
- }
- // if the repository doesn't exist, create it
- if (!r.getObjectDatabase().exists()) {
- try {
- r.create();
- } catch (IOException e) {
- e.printStackTrace();
- }
- try {
- // import initial content
- Git git = new Git(r);
- AddCommand cmd = git.add();
- cmd.addFilepattern(".");
- cmd.call();
- CommitCommand co = git.commit();
- co.setAuthor("Winston", "wl3912@ic.ac.uk");
- co.setMessage("i am java miaow");
- co.call();
- } catch (GitAPIException e) {
- e.printStackTrace();
- }
- }
- return r;
- }
- }
|