James Moger
2013-09-18 0250286553ca93406bfaa976d6aae61e76a9d55f
Removed GitWeb-style diff renderer
7 files modified
1 files deleted
234 ■■■■ changed files
src/main/distrib/data/gitblit.properties 5 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/utils/DiffUtils.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/utils/GitWebDiffFormatter.java 155 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java 9 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java 6 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/ComparePage.java 7 ●●●● patch | view | raw | blame | history
src/test/java/com/gitblit/tests/DiffUtilsTest.java 3 ●●●● patch | view | raw | blame | history
src/main/distrib/data/gitblit.properties
@@ -886,11 +886,6 @@
# 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
src/main/java/com/gitblit/utils/DiffUtils.java
@@ -53,7 +53,7 @@
     * 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()) {
@@ -130,10 +130,7 @@
            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:
@@ -172,9 +169,9 @@
            } 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();
            }
src/main/java/com/gitblit/utils/GitBlitDiffFormatter.java
@@ -16,12 +16,14 @@
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;
@@ -31,7 +33,7 @@
 * @author James Moger
 * 
 */
public class GitBlitDiffFormatter extends GitWebDiffFormatter {
public class GitBlitDiffFormatter extends DiffFormatter {
    private final OutputStream os;
@@ -69,6 +71,39 @@
        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
@@ -110,7 +145,6 @@
     * 
     * @return
     */
    @Override
    public String getHtml() {
        ByteArrayOutputStream bos = (ByteArrayOutputStream) os;
        String html = RawParseUtils.decode(bos.toByteArray());
src/main/java/com/gitblit/utils/GitWebDiffFormatter.java
File was deleted
src/main/java/com/gitblit/wicket/pages/BlobDiffPage.java
@@ -21,8 +21,6 @@
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;
@@ -45,19 +43,16 @@
        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)));
src/main/java/com/gitblit/wicket/pages/CommitDiffPage.java
@@ -30,7 +30,6 @@
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;
@@ -51,12 +50,9 @@
        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) {
src/main/java/com/gitblit/wicket/pages/ComparePage.java
@@ -37,8 +37,6 @@
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;
@@ -80,9 +78,6 @@
            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;
            
@@ -113,7 +108,7 @@
            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,
src/test/java/com/gitblit/tests/DiffUtilsTest.java
@@ -34,8 +34,7 @@
    @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));
    }