James Moger
2011-05-11 dfb88962fdbd29f59abe92178bb042738d57c3e1
commit | author | age
608ece 1 package com.gitblit.wicket.pages;
JM 2
3 import org.apache.wicket.PageParameters;
4 import org.apache.wicket.markup.html.WebPage;
5 import org.apache.wicket.markup.html.basic.Label;
6 import org.eclipse.jgit.lib.Repository;
7 import org.eclipse.jgit.revwalk.RevCommit;
8
fc948c 9 import com.gitblit.GitBlit;
608ece 10 import com.gitblit.utils.JGitUtils;
ce119a 11 import com.gitblit.utils.StringUtils;
bc9d4a 12 import com.gitblit.wicket.GitBlitWebSession;
608ece 13 import com.gitblit.wicket.WicketUtils;
JM 14
15 public class PatchPage extends WebPage {
16
17     public PatchPage(PageParameters params) {
18         super(params);
19
20         if (!params.containsKey("r")) {
bc9d4a 21             GitBlitWebSession.get().cacheErrorMessage("Repository not specified!");
608ece 22             redirectToInterceptPage(new RepositoriesPage());
bc9d4a 23             return;
608ece 24         }
bc9d4a 25         
608ece 26         final String repositoryName = WicketUtils.getRepositoryName(params);
ce119a 27         final String baseObjectId = WicketUtils.getBaseObjectId(params);
155bf7 28         final String objectId = WicketUtils.getObject(params);
608ece 29         final String blobPath = WicketUtils.getPath(params);
JM 30
f5d0ad 31         Repository r = GitBlit.self().getRepository(repositoryName);
608ece 32         if (r == null) {
bc9d4a 33             GitBlitWebSession.get().cacheErrorMessage("Can not load repository " + repositoryName);
608ece 34             redirectToInterceptPage(new RepositoriesPage());
JM 35             return;
36         }
37
38         RevCommit commit = JGitUtils.getCommit(r, objectId);
bc9d4a 39         if (commit == null) {
JM 40             GitBlitWebSession.get().cacheErrorMessage("Commit is null");
41             redirectToInterceptPage(new RepositoriesPage());
42             return;
43         }
44         
ce119a 45         String patch;
JM 46         if (StringUtils.isEmpty(baseObjectId)) {
47             patch = JGitUtils.getCommitPatch(r, commit, blobPath);
48         } else {
49             RevCommit baseCommit = JGitUtils.getCommit(r, baseObjectId);
50             patch = JGitUtils.getCommitPatch(r, baseCommit, commit, blobPath);            
51         }
608ece 52         add(new Label("patchText", patch));
JM 53         r.close();
155bf7 54     }
608ece 55 }