James Moger
2013-10-24 ab1e1148ba6ec2a0e53ff54398173204febc9a4a
Determine best commit id for the commit and use that in links

Change-Id: I2c0f5dbb479c06402645cbb92e4845eed29d6726
3 files modified
47 ■■■■ changed files
releases.moxie 1 ●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/wicket/pages/TreePage.java 22 ●●●● patch | view | raw | blame | history
releases.moxie
@@ -25,6 +25,7 @@
    - Removed internal Gitblit ref exclusions in the upload pack
    - Removed "show readme" setting in favor of automatic detection
    - Support plain text "readme" files
    - Determine best commit id (e.g. "master") for the tree and docs pages and use that in links
    additions:
    - Added branch graph image servlet based on EGit's branch graph renderer (issue-194)
    - Added option to render Markdown commit messages (issue-203)
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -399,6 +399,30 @@
        return commit;
    }
    protected String getBestCommitId(RevCommit commit) {
        String head = null;
        try {
            head = r.resolve(getRepositoryModel().HEAD).getName();
        } catch (Exception e) {
        }
        String id = commit.getName();
        if (!StringUtils.isEmpty(head) && head.equals(id)) {
            // match default branch
            return Repository.shortenRefName(getRepositoryModel().HEAD);
        }
        // find first branch match
        for (RefModel ref : JGitUtils.getLocalBranches(r, false, -1)) {
            if (ref.getObjectId().getName().equals(id)) {
                return ref.getName();
            }
        }
        // return sha
        return id;
    }
    protected Map<String, SubmoduleModel> getSubmodules(RevCommit commit) {
        if (submodules == null) {
            submodules = new HashMap<String, SubmoduleModel>();
src/main/java/com/gitblit/wicket/pages/TreePage.java
@@ -76,8 +76,8 @@
            paths.add(0, model);
        }
        final String id = getBestCommitId(commit);
        final ByteFormat byteFormat = new ByteFormat();
        final String baseUrl = WicketUtils.getGitblitURL(getRequest());
        // changed paths list
@@ -96,7 +96,7 @@
                    item.add(new Label("pathSize", ""));
                    item.add(new LinkPanel("pathName", null, entry.name, TreePage.class,
                            WicketUtils
                                    .newPathParameter(repositoryName, entry.commitId, entry.path)));
                                    .newPathParameter(repositoryName, id, entry.path)));
                    item.add(new Label("pathLinks", ""));
                } else {
                    if (entry.isTree()) {
@@ -104,16 +104,16 @@
                        item.add(WicketUtils.newImage("pathIcon", "folder_16x16.png"));
                        item.add(new Label("pathSize", ""));
                        item.add(new LinkPanel("pathName", "list", entry.name, TreePage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        entry.path)));
                        // links
                        Fragment links = new Fragment("pathLinks", "treeLinks", this);
                        links.add(new BookmarkablePageLink<Void>("tree", TreePage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        entry.path)));
                        links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        entry.path)));
                        links.add(new CompressedDownloadsPanel("compressedLinks", baseUrl,
                                repositoryName, objectId, entry.path));
@@ -141,7 +141,7 @@
                                WicketUtils.newPathParameter(submodulePath, submoduleId,
                                        "")).setEnabled(hasSubmodule));
                        links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        entry.path)));
                        links.add(new CompressedDownloadsPanel("compressedLinks", baseUrl,
                                submodulePath, submoduleId, "").setEnabled(hasSubmodule));
@@ -157,21 +157,21 @@
                        item.add(WicketUtils.getFileImage("pathIcon", entry.name));
                        item.add(new Label("pathSize", byteFormat.format(entry.size)));
                        item.add(new LinkPanel("pathName", "list", displayPath, BlobPage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        path)));
                        // links
                        Fragment links = new Fragment("pathLinks", "blobLinks", this);
                        links.add(new BookmarkablePageLink<Void>("view", BlobPage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        path)));
                        links.add(new BookmarkablePageLink<Void>("raw", RawPage.class, WicketUtils
                                .newPathParameter(repositoryName, entry.commitId, path)));
                                .newPathParameter(repositoryName, id, path)));
                        links.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        path)));
                        links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
                                WicketUtils.newPathParameter(repositoryName, entry.commitId,
                                WicketUtils.newPathParameter(repositoryName, id,
                                        path)));
                        item.add(links);
                    }