You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DiffPage.java 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package com.gitblit.wicket.pages;
  2. import org.apache.wicket.PageParameters;
  3. import org.apache.wicket.markup.html.basic.Label;
  4. import org.eclipse.jgit.lib.Repository;
  5. import org.eclipse.jgit.revwalk.RevCommit;
  6. import com.gitblit.utils.JGitUtils;
  7. import com.gitblit.wicket.LinkPanel;
  8. import com.gitblit.wicket.RepositoryPage;
  9. import com.gitblit.wicket.panels.PathBreadcrumbsPanel;
  10. public class DiffPage extends RepositoryPage {
  11. public DiffPage(PageParameters params) {
  12. super(params);
  13. final String blobPath = params.getString("f", null);
  14. Repository r = getRepository();
  15. RevCommit commit = JGitUtils.getCommit(r, commitId);
  16. String diff;
  17. if (blobPath != null && blobPath.length() > 0) {
  18. // blob diff
  19. diff = JGitUtils.getCommitDiff(r, commit, blobPath, true);
  20. } else {
  21. // commit diff
  22. diff = JGitUtils.getCommitDiff(r, commit, true);
  23. }
  24. // diff page links
  25. add(new Label("historyLink", "history"));
  26. add(new Label("rawLink", "raw"));
  27. add(new Label("headLink", "HEAD"));
  28. add(new LinkPanel("shortlog", "title", commit.getShortMessage(), CommitPage.class, newCommitParameter()));
  29. add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, blobPath, commitId));
  30. add(new Label("diffText", diff).setEscapeModelStrings(false));
  31. // footer
  32. addFooter();
  33. }
  34. @Override
  35. protected String getPageName() {
  36. return "diff";
  37. }
  38. }