Removed GitWeb-style diff renderer
1 files deleted
7 files modified
| | |
| | | # SINCE 1.4.0
|
| | | web.commitMessageRenderer = plain
|
| | |
|
| | | # Choose the diff presentation style: gitblt, gitweb, or plain
|
| | | #
|
| | | # SINCE 0.5.0
|
| | | web.diffStyle = gitblit
|
| | |
|
| | | # Control if email addresses are shown in web ui
|
| | | #
|
| | | # SINCE 0.5.0
|
| | |
| | | * Enumeration for the diff output types.
|
| | | */
|
| | | public static enum DiffOutputType {
|
| | | PLAIN, GITWEB, GITBLIT;
|
| | | PLAIN, HTML;
|
| | |
|
| | | public static DiffOutputType forName(String name) {
|
| | | for (DiffOutputType type : values()) {
|
| | |
| | | RawTextComparator cmp = RawTextComparator.DEFAULT;
|
| | | DiffFormatter df;
|
| | | switch (outputType) {
|
| | | case GITWEB:
|
| | | df = new GitWebDiffFormatter(os);
|
| | | break;
|
| | | case GITBLIT:
|
| | | case HTML:
|
| | | df = new GitBlitDiffFormatter(os);
|
| | | break;
|
| | | case PLAIN:
|
| | |
| | | } else {
|
| | | df.format(diffEntries);
|
| | | }
|
| | | if (df instanceof GitWebDiffFormatter) {
|
| | | if (df instanceof GitBlitDiffFormatter) {
|
| | | // workaround for complex private methods in DiffFormatter
|
| | | diff = ((GitWebDiffFormatter) df).getHtml();
|
| | | diff = ((GitBlitDiffFormatter) df).getHtml();
|
| | | } else {
|
| | | diff = os.toString();
|
| | | }
|
| | |
| | | package com.gitblit.utils;
|
| | |
|
| | | import static org.eclipse.jgit.lib.Constants.encode;
|
| | | import static org.eclipse.jgit.lib.Constants.encodeASCII;
|
| | |
|
| | | import java.io.ByteArrayOutputStream;
|
| | | import java.io.IOException;
|
| | | import java.io.OutputStream;
|
| | | import java.text.MessageFormat;
|
| | |
|
| | | import org.eclipse.jgit.diff.DiffFormatter;
|
| | | import org.eclipse.jgit.diff.RawText;
|
| | | import org.eclipse.jgit.util.RawParseUtils;
|
| | |
|
| | |
| | | * @author James Moger
|
| | | *
|
| | | */
|
| | | public class GitBlitDiffFormatter extends GitWebDiffFormatter {
|
| | | public class GitBlitDiffFormatter extends DiffFormatter {
|
| | |
|
| | | private final OutputStream os;
|
| | |
|
| | |
| | | os.write("</td></tr>\n".getBytes());
|
| | | left = aStartLine + 1;
|
| | | right = bStartLine + 1;
|
| | | }
|
| | | |
| | | protected void writeRange(final char prefix, final int begin, final int cnt) throws IOException {
|
| | | os.write(' ');
|
| | | os.write(prefix);
|
| | | switch (cnt) {
|
| | | case 0:
|
| | | // If the range is empty, its beginning number must
|
| | | // be the
|
| | | // line just before the range, or 0 if the range is
|
| | | // at the
|
| | | // start of the file stream. Here, begin is always 1
|
| | | // based,
|
| | | // so an empty file would produce "0,0".
|
| | | //
|
| | | os.write(encodeASCII(begin - 1));
|
| | | os.write(',');
|
| | | os.write('0');
|
| | | break;
|
| | |
|
| | | case 1:
|
| | | // If the range is exactly one line, produce only
|
| | | // the number.
|
| | | //
|
| | | os.write(encodeASCII(begin));
|
| | | break;
|
| | |
|
| | | default:
|
| | | os.write(encodeASCII(begin));
|
| | | os.write(',');
|
| | | os.write(encodeASCII(cnt));
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | @Override
|
| | |
| | | *
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | public String getHtml() {
|
| | | ByteArrayOutputStream bos = (ByteArrayOutputStream) os;
|
| | | String html = RawParseUtils.decode(bos.toByteArray());
|
| | |
| | | import org.eclipse.jgit.lib.Repository;
|
| | | import org.eclipse.jgit.revwalk.RevCommit;
|
| | |
|
| | | import com.gitblit.GitBlit;
|
| | | import com.gitblit.Keys;
|
| | | import com.gitblit.utils.DiffUtils;
|
| | | import com.gitblit.utils.DiffUtils.DiffOutputType;
|
| | | import com.gitblit.utils.JGitUtils;
|
| | |
| | | Repository r = getRepository();
|
| | | RevCommit commit = getCommit();
|
| | |
|
| | | DiffOutputType diffType = DiffOutputType.forName(GitBlit.getString(Keys.web.diffStyle,
|
| | | DiffOutputType.GITBLIT.name()));
|
| | |
|
| | | String diff;
|
| | | if (StringUtils.isEmpty(baseObjectId)) {
|
| | | // use first parent
|
| | | diff = DiffUtils.getDiff(r, commit, blobPath, diffType);
|
| | | diff = DiffUtils.getDiff(r, commit, blobPath, DiffOutputType.HTML);
|
| | | add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | | } else {
|
| | | // base commit specified
|
| | | RevCommit baseCommit = JGitUtils.getCommit(r, baseObjectId);
|
| | | diff = DiffUtils.getDiff(r, baseCommit, commit, blobPath, diffType);
|
| | | diff = DiffUtils.getDiff(r, baseCommit, commit, blobPath, DiffOutputType.HTML);
|
| | | add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class,
|
| | | WicketUtils.newBlobDiffParameter(repositoryName, baseObjectId, objectId,
|
| | | blobPath)));
|
| | |
| | | import org.eclipse.jgit.revwalk.RevCommit; |
| | | |
| | | import com.gitblit.GitBlit; |
| | | import com.gitblit.Keys; |
| | | import com.gitblit.models.PathModel.PathChangeModel; |
| | | import com.gitblit.models.SubmoduleModel; |
| | | import com.gitblit.utils.DiffUtils; |
| | |
| | | |
| | | Repository r = getRepository(); |
| | | |
| | | DiffOutputType diffType = DiffOutputType.forName(GitBlit.getString(Keys.web.diffStyle, |
| | | DiffOutputType.GITBLIT.name())); |
| | | |
| | | RevCommit commit = getCommit(); |
| | | |
| | | String diff = DiffUtils.getCommitDiff(r, commit, diffType); |
| | | String diff = DiffUtils.getCommitDiff(r, commit, DiffOutputType.HTML); |
| | | |
| | | List<String> parents = new ArrayList<String>(); |
| | | if (commit.getParentCount() > 0) { |
| | |
| | | import org.eclipse.jgit.lib.Repository; |
| | | import org.eclipse.jgit.revwalk.RevCommit; |
| | | |
| | | import com.gitblit.GitBlit; |
| | | import com.gitblit.Keys; |
| | | import com.gitblit.models.PathModel.PathChangeModel; |
| | | import com.gitblit.models.RefModel; |
| | | import com.gitblit.models.RepositoryModel; |
| | |
| | | Fragment comparison = new Fragment("comparison", "comparisonFragment", this); |
| | | add(comparison); |
| | | |
| | | DiffOutputType diffType = DiffOutputType.forName(GitBlit.getString(Keys.web.diffStyle, |
| | | DiffOutputType.GITBLIT.name())); |
| | | |
| | | RevCommit fromCommit; |
| | | RevCommit toCommit; |
| | | |
| | |
| | | fromCommitId.setObject(startId); |
| | | toCommitId.setObject(endId); |
| | | |
| | | String diff = DiffUtils.getDiff(r, fromCommit, toCommit, diffType); |
| | | String diff = DiffUtils.getDiff(r, fromCommit, toCommit, DiffOutputType.HTML); |
| | | |
| | | // compare page links |
| | | // comparison.add(new BookmarkablePageLink<Void>("patchLink", PatchPage.class, |
| | |
| | | @Test
|
| | | public void testDiffOutputTypes() throws Exception {
|
| | | assertEquals(DiffOutputType.PLAIN, DiffOutputType.forName("plain"));
|
| | | assertEquals(DiffOutputType.GITWEB, DiffOutputType.forName("gitweb"));
|
| | | assertEquals(DiffOutputType.GITBLIT, DiffOutputType.forName("gitblit"));
|
| | | assertEquals(DiffOutputType.HTML, DiffOutputType.forName("html"));
|
| | | assertEquals(null, DiffOutputType.forName(null));
|
| | | }
|
| | |
|