Stubbed out Blame. Added Github banner to site. Documentation.
2 files added
17 files modified
| | |
| | | -------
|
| | |
|
| | | Gitblit is distributed under the terms of the Apache Software Foundation
|
| | | license, version 2.0. The text is included in the file LICENSE in the root
|
| | | license, version 2.0. The text of the license is included in the file LICENSE in the root
|
| | | of the project.
|
| | |
|
| | | Java/Application server requirements
|
| | |
| | | set JVM=C:\Program Files\Java\JVM1.6.0_21
|
| | | set JVM=C:\Program Files\Java\jdk1.6.0_26
|
| | | JavaService.exe -install gitblit "%JVM%\jre\bin\server\jvm.dll" -Xmx1024M -Djava.class.path=%CD%\gitblit.jar;"%JVM%\lib\tools.jar" -start com.gitblit.Launcher -params --storePassword dosomegit -stop com.gitblit.Launcher -params --stop -out %CD%\logs\stdout.log -err %CD%\logs\stderr.log -current %CD% |
| | |
| | | set JVM=C:\Program Files\Java\JVM1.6.0_21
|
| | | set JVM=C:\Program Files\Java\jdk1.6.0_26
|
| | | JavaService64.exe -install gitblit "%JVM%\jre\bin\server\jvm.dll" -Djava.class.path=%CD%\gitblit.jar;"%JVM%\lib\tools.jar" -start com.gitblit.Launcher -params --storePassword dosomegit -stop com.gitblit.Launcher -params --stop -out %CD%\logs\stdout.log -err %CD%\logs\stderr.log -current %CD% |
| | |
| | | ## Git:Blit realm file format: username=password,\#permission,repository1,repository2...
|
| | | #Sat Jun 04 14:21:04 EDT 2011
|
| | | #Tue Jun 07 20:57:42 EDT 2011
|
| | | admin=admin,\#admin
|
| | |
| | | - Repository Owners may edit repositories through the web UI
|
| | | - Automatically generates a self-signed certificate for https communications
|
| | | - Git-notes support
|
| | | - Branch-selectable metrics
|
| | | - Branch metrics
|
| | | - Blame annotations view
|
| | | - Dates can optionally be displayed using the browser's reported timezone
|
| | | - Author and Committer email address display can be controlled
|
| | | - Search commit messages, authors, and committers
|
| | | - Dynamic zip downloads feature
|
| | | - Markdown view support
|
| | | - Syntax highlighting
|
| | |
| | | </ul>
|
| | |
|
| | | ### Limitations
|
| | | - [%JGIT%][jgit] does not [garbage collect or repack](http://www.kernel.org/pub/software/scm/git/docs/git-gc.html)
|
| | | - HTTP/HTTPS are the only supported protocols
|
| | | - Access controls are not path-based, they are repository-based
|
| | | - Only Administrators can create, rename or delete repositories
|
| | | - Gitblit is an integrated, full-stack solution. There is no WAR build at this time.
|
| | |
|
| | | ### Caveats
|
| | | - I don't know everything there is to know about [Git][git] nor [JGit][jgit].
|
| | | - Gitblit may eat your data. Use at your own risk.
|
| | | - Gitblit may have security holes. Patches welcome. :)
|
| | |
|
| | | ### Todo List
|
| | | - Code documentation
|
| | | - Unit testing
|
| | | - Blame
|
| | | - Finish Blame (waiting for JGit 1.0.0 release)
|
| | | - Clone remote repository
|
| | |
|
| | | ### Idea List
|
| | | - Ticgit activity/timeline
|
| | | - Ticgit query feature with paging support
|
| | | - Ticgit ticket change history
|
| | | - View images on Blob page
|
| | | - View other binary files on Blob page
|
| | | - Consider [Apache Shiro](http://shiro.apache.org) for authentication
|
| | | - Stronger Ticgit read-only integration
|
| | | - activity/timeline
|
| | | - query feature with paging support
|
| | | - change history
|
| | | - Ticgit write integration
|
| | | - Blob page improvements
|
| | | - view images
|
| | | - view other binary files (pdf, doc, etc)
|
| | | - Markdown editing feature
|
| | |
|
| | | ### License
|
| | | Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
|
| | | Gitblit is distributed under the terms of the [Apache Software Foundation license, version 2.0][apachelicense]
|
| | |
|
| | | ### Inspirations
|
| | | - [Gitweb](http://www.git-scm.com)
|
| | |
| | | - If running on Linux you may have to change the served port(s) to > 1024 unless you are developing as the root user.
|
| | | 6. Execute the *com.gitblit.Launcher* class to start Gitblit.
|
| | |
|
| | |
|
| | | ## Contributing
|
| | | Patches welcome in any form.
|
| | |
|
| | | Contributions must be your own original work and must licensed under the [Apache License, Version 2.0][apachelicense], the same license used by Gitblit.
|
| | |
|
| | | [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
|
| | | [git]: http://git-scm.com "Official Git Site"
|
| | | [gitbltsrc]: http://somewhere.com "gitblit git repository" |
| | | [apachelicense]: http://www.apache.org/licenses/LICENSE-2.0 "Apache License, Version 2.0" |
| | |
| | | As a Java developer I prefer that as much of my tooling as possible is Java.<br/>
|
| | | Originally, I was going to use [Mercurial](http://mercurial.selenic.com) but...
|
| | |
|
| | | - MercurialEclipse [shells to Python and captures System.in](http://mercurial.808500.n3.nabble.com/Hg4J-Mercurial-pure-Java-library-tp2693090p2694555.html)<br/>
|
| | | - MercurialEclipse [shells to Python, writes to System.out, and captures System.in](http://mercurial.808500.n3.nabble.com/Hg4J-Mercurial-pure-Java-library-tp2693090p2694555.html)<br/>
|
| | | Parsing command-line output is fragile and suboptimal.<br/>Unfortunately this is necessary because Mercurial is an application, not a library.
|
| | | - Mercurial seems to [frown](http://mercurial.808500.n3.nabble.com/Hg4J-Mercurial-pure-Java-library-tp2693090p2695051.html) on the fledgling [Hg4j][hg4j] (pure Java Mercurial) project.
|
| | | - Mercurial HTTP/HTTPS needs to run as CGI through Apache/IIS/etc, as mod_python through Apache, or served with a built-in http server.<br/>
|
| | | This requires setup and maintenance of multiple, mixed 3rd party components.
|
| | |
|
| | |
| | | ### Do I need real Git?
|
| | | No. Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/>
|
| | | Everything you need for Gitblit is either in the zip distribution file or automatically downloaded on execution.
|
| | |
|
| | | ### What about periodic Git garbage collection (git-gc)?
|
| | | Good question. I'm not sure.
|
| | |
|
| | | Git repositories grow and grow and periodically need to be repacked every once in a while. Git calls this process [garbage collection](http://www.kernel.org/pub/software/scm/git/docs/git-gc.html) (which is not to be confused with [garbage collection](http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)).)
|
| | |
|
| | | [JGit's][jgit] documentation is sparse and its unclear whether or not JGit performs this function.
|
| | |
|
| | | ### Can I run Gitblit in conjunction with my existing Git tooling?
|
| | | Yes. You can configure Gitblit to only be a repository viewer.
|
| | |
| | |
|
| | | ### Why doesn't Gitblit support SSH?
|
| | | Gitblit could integrate [Apache Mina][mina] to provide SSH access. However, doing so violates Gitblit's first design principle: [KISS](http://en.wikipedia.org/wiki/KISS_principle).<br/>
|
| | | SSH support requires creating, exchanging, and managing SSH keys. While this is possible, JGit's SmartHTTP implementation is a simpler and universal transport mechanism.
|
| | | SSH support requires creating, exchanging, and managing SSH keys (arguably not more complicated than managing users). While this is possible, JGit's SmartHTTP implementation is a simpler and universal transport mechanism.
|
| | |
|
| | | You might consider running [Gerrit](http://gerrit.googlecode.org) which does integrate [Apache Mina][mina] and supports SSH or you might consider serving [Git][git] on Linux which would offer real SSH support and also allow use of [many other compelling Git solutions](https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools).
|
| | |
|
| | |
| | |
|
| | | Alternatively, you could enable the search type dropdown list in your `gitblit.properties` file.
|
| | |
|
| | | ### I see a disabled "blame" link. How do I enable it? |
| | | Currently blame is not implemented. Those links are placeholders to remind me where Gitweb offers blame.
|
| | | ### Can Gitblit be translated?
|
| | |
|
| | | Yes. Most messages are localized to a standard Java properties file.
|
| | |
|
| | | [bitblt]: http://en.wikipedia.org/wiki/Bit_blit "Wikipedia Bitblt"
|
| | | [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"
|
| | |
| | | <script type="text/javascript" src="prettify/prettify.js"></script>
|
| | | <link href="prettify/prettify.css" type="text/css" rel="stylesheet" />
|
| | | </head>
|
| | | <body onload="prettyPrint()">
|
| | | <body style="width:900px" onload="prettyPrint()">
|
| | | <a href="http://github.com/gitblit"><img style="position: absolute; top: 0; right: 0; border: 0;" src="https://d3nwyuy0nl342s.cloudfront.net/img/30f550e0d38ceb6ef5b81500c64d970b7fb0f028/687474703a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6f72616e67655f6666373630302e706e67" alt="Fork me on GitHub"></a>
|
| | | <div class="page_header">
|
| | | <a title="gitblit homepage" href="http://gitblit.com/">
|
| | | <img src="./gitblt_25.png" width="79" height="25" alt="gitblit" class="logo"/>
|
| | |
| | |
|
| | | import com.gitblit.GitBlit;
|
| | | import com.gitblit.Keys;
|
| | | import com.gitblit.wicket.pages.BlamePage;
|
| | | import com.gitblit.wicket.pages.BlobDiffPage;
|
| | | import com.gitblit.wicket.pages.BlobPage;
|
| | | import com.gitblit.wicket.pages.BranchesPage;
|
| | |
| | | import com.gitblit.wicket.pages.LoginPage;
|
| | | import com.gitblit.wicket.pages.LogoutPage;
|
| | | import com.gitblit.wicket.pages.MarkdownPage;
|
| | | import com.gitblit.wicket.pages.MetricsPage;
|
| | | import com.gitblit.wicket.pages.PatchPage;
|
| | | import com.gitblit.wicket.pages.RawPage;
|
| | | import com.gitblit.wicket.pages.RepositoriesPage;
|
| | | import com.gitblit.wicket.pages.SearchPage;
|
| | | import com.gitblit.wicket.pages.MetricsPage;
|
| | | import com.gitblit.wicket.pages.SummaryPage;
|
| | | import com.gitblit.wicket.pages.TagPage;
|
| | | import com.gitblit.wicket.pages.TagsPage;
|
| | |
| | | mount("/history", HistoryPage.class, "r", "h", "f");
|
| | | mount("/search", SearchPage.class);
|
| | | mount("/metrics", MetricsPage.class, "r");
|
| | | mount("/blame", BlamePage.class, "r", "h", "f");
|
| | |
|
| | | // setup ticket urls
|
| | | mount("/tickets", TicketsPage.class, "r");
|
New file |
| | |
| | | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
| | | <html xmlns="http://www.w3.org/1999/xhtml" |
| | | xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" |
| | | xml:lang="en" |
| | | lang="en"> |
| | |
|
| | | <body>
|
| | | <wicket:extend>
|
| | | |
| | | <!-- blame nav links --> |
| | | <div class="page_nav2">
|
| | | <a wicket:id="blobLink"><wicket:message key="gb.view"></wicket:message></a> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="headLink"><wicket:message key="gb.head"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitDiffLink"><wicket:message key="gb.commitdiff"></wicket:message></a>
|
| | | </div> |
| | | |
| | | <!-- commit header -->
|
| | | <div wicket:id="commitHeader">[commit header]</div>
|
| | |
|
| | | <!-- breadcrumbs -->
|
| | | <div wicket:id="breadcrumbs">[breadcrumbs]</div>
|
| | | |
| | | <!-- blame content -->
|
| | | <table>
|
| | | <tbody>
|
| | | <tr>
|
| | | <th>Commit</th>
|
| | | <th>Line</th>
|
| | | <th>Data</th>
|
| | | </tr>
|
| | | <tr wicket:id="annotation">
|
| | | <td><span wicket:id="commit"></span></td>
|
| | | <td><span wicket:id="line"></span></td>
|
| | | <td><span wicket:id="data"></span></td>
|
| | | </tr>
|
| | | </tbody>
|
| | | </table>
|
| | | |
| | | </wicket:extend>
|
| | | </body>
|
| | | </html> |
New file |
| | |
| | | /*
|
| | | * Copyright 2011 gitblit.com.
|
| | | *
|
| | | * Licensed under the Apache License, Version 2.0 (the "License");
|
| | | * you may not use this file except in compliance with the License.
|
| | | * You may obtain a copy of the License at
|
| | | *
|
| | | * http://www.apache.org/licenses/LICENSE-2.0
|
| | | *
|
| | | * Unless required by applicable law or agreed to in writing, software
|
| | | * distributed under the License is distributed on an "AS IS" BASIS,
|
| | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| | | * See the License for the specific language governing permissions and
|
| | | * limitations under the License.
|
| | | */
|
| | | package com.gitblit.wicket.pages;
|
| | |
|
| | | import java.io.Serializable;
|
| | | import java.util.Arrays;
|
| | | import java.util.List;
|
| | |
|
| | | import org.apache.wicket.PageParameters;
|
| | | import org.apache.wicket.markup.html.basic.Label;
|
| | | import org.apache.wicket.markup.html.link.BookmarkablePageLink;
|
| | | import org.apache.wicket.markup.repeater.Item;
|
| | | import org.apache.wicket.markup.repeater.data.DataView;
|
| | | import org.apache.wicket.markup.repeater.data.ListDataProvider;
|
| | | import org.eclipse.jgit.lib.Constants;
|
| | | import org.eclipse.jgit.revwalk.RevCommit;
|
| | |
|
| | | import com.gitblit.wicket.WicketUtils;
|
| | | import com.gitblit.wicket.panels.CommitHeaderPanel;
|
| | | import com.gitblit.wicket.panels.LinkPanel;
|
| | | import com.gitblit.wicket.panels.PathBreadcrumbsPanel;
|
| | |
|
| | | public class BlamePage extends RepositoryPage {
|
| | |
|
| | | public BlamePage(PageParameters params) {
|
| | | super(params);
|
| | |
|
| | | final String blobPath = WicketUtils.getPath(params);
|
| | |
|
| | | RevCommit commit = getCommit();
|
| | |
|
| | | add(new BookmarkablePageLink<Void>("blobLink", BlobPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId,
|
| | | blobPath)));
|
| | | add(new BookmarkablePageLink<Void>("commitLink", CommitPage.class,
|
| | | WicketUtils.newObjectParameter(repositoryName, objectId)));
|
| | | add(new BookmarkablePageLink<Void>("commitDiffLink", CommitDiffPage.class,
|
| | | WicketUtils.newObjectParameter(repositoryName, objectId)));
|
| | |
|
| | | // blame page links
|
| | | add(new BookmarkablePageLink<Void>("headLink", BlamePage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, Constants.HEAD, blobPath)));
|
| | | add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | |
|
| | | add(new CommitHeaderPanel("commitHeader", repositoryName, commit));
|
| | |
|
| | | add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, blobPath, objectId));
|
| | |
|
| | | List<BlameLine> blame = Arrays.asList(new BlameLine("HEAD", "1", "Under Construction"));
|
| | | ListDataProvider<BlameLine> blameDp = new ListDataProvider<BlameLine>(blame);
|
| | | DataView<BlameLine> blameView = new DataView<BlameLine>("annotation", blameDp) {
|
| | | private static final long serialVersionUID = 1L;
|
| | |
|
| | | public void populateItem(final Item<BlameLine> item) {
|
| | | BlameLine entry = item.getModelObject();
|
| | | item.add(new LinkPanel("commit", "list", entry.objectId, CommitPage.class,
|
| | | newCommitParameter(entry.objectId)));
|
| | | item.add(new Label("line", entry.line));
|
| | | item.add(new Label("data", entry.data));
|
| | | }
|
| | | };
|
| | | add(blameView);
|
| | | }
|
| | |
|
| | | @Override
|
| | | protected String getPageName() {
|
| | | return getString("gb.blame");
|
| | | }
|
| | | |
| | | private class BlameLine implements Serializable {
|
| | | |
| | | private static final long serialVersionUID = 1L;
|
| | | |
| | | final String objectId;
|
| | | final String line;
|
| | | final String data;
|
| | | BlameLine(String objectId, String line, String data) {
|
| | | this.objectId = objectId;
|
| | | this.line = line;
|
| | | this.data = data;
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | |
|
| | | <!-- blob nav links -->
|
| | | <div class="page_nav2">
|
| | | <span wicket:id="blameLink">[blame link]</span> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitDiffLink"><wicket:message key="gb.commitdiff"></wicket:message></a>
|
| | | <a wicket:id="blameLink"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="patchLink"><wicket:message key="gb.patch"></wicket:message></a> | <a wicket:id="commitLink"><wicket:message key="gb.commit"></wicket:message></a> | <a wicket:id="commitDiffLink"><wicket:message key="gb.commitdiff"></wicket:message></a>
|
| | | </div>
|
| | |
|
| | | <!-- commit header -->
|
| | |
| | | WicketUtils.newObjectParameter(repositoryName, objectId)));
|
| | |
|
| | | // diff page links
|
| | | add(new Label("blameLink", getString("gb.blame")));
|
| | | add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | | add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | |
|
| | |
| | |
|
| | | <!-- blob nav links -->
|
| | | <div class="page_nav2">
|
| | | <span wicket:id="blameLink">[blame link]</span> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="rawLink"><wicket:message key="gb.raw"></wicket:message></a> | <a wicket:id="headLink"><wicket:message key="gb.head"></wicket:message></a>
|
| | | <a wicket:id="blameLink"><wicket:message key="gb.blame"></wicket:message></a> | <a wicket:id="historyLink"><wicket:message key="gb.history"></wicket:message></a> | <a wicket:id="rawLink"><wicket:message key="gb.raw"></wicket:message></a> | <a wicket:id="headLink"><wicket:message key="gb.head"></wicket:message></a>
|
| | | </div>
|
| | |
|
| | | <!-- commit header -->
|
| | |
| | | if (StringUtils.isEmpty(blobPath)) {
|
| | | // blob by objectid
|
| | |
|
| | | add(new Label("blameLink", getString("gb.blame")).setEnabled(false));
|
| | | add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)).setEnabled(false));
|
| | | add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class).setEnabled(false));
|
| | | add(new BookmarkablePageLink<Void>("rawLink", RawPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | |
| | | RevCommit commit = JGitUtils.getCommit(r, objectId);
|
| | |
|
| | | // blob page links
|
| | | add(new Label("blameLink", getString("gb.blame")));
|
| | | add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | | add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));
|
| | | add(new BookmarkablePageLink<Void>("rawLink", RawPage.class,
|
| | |
| | | newPathParameter(entry.path)));
|
| | | item.add(new BookmarkablePageLink<Void>("view", BlobPage.class,
|
| | | newPathParameter(entry.path)));
|
| | | item.add(new BookmarkablePageLink<Void>("blame", BlobPage.class).setEnabled(false));
|
| | | item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,
|
| | | newPathParameter(entry.path)));
|
| | | item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
|
| | | newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE)));
|
| | | newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD)));
|
| | |
|
| | | WicketUtils.setAlternatingBackground(item, counter);
|
| | | counter++;
|
| | |
| | | public void populateItem(final Item<GitNote> item) {
|
| | | GitNote entry = item.getModelObject();
|
| | | item.add(new RefsPanel("refName", repositoryName, Arrays.asList(entry.notesRef)));
|
| | | item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(), SearchType.AUTHOR));
|
| | | item.add(WicketUtils.createTimestampLabel("authorDate",
|
| | | entry.notesRef.getAuthorIdent().getWhen(), getTimeZone()));
|
| | | item.add(new Label("noteContent", StringUtils.breakLinesForHtml(entry.content)).setEscapeModelStrings(false));
|
| | | item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(),
|
| | | SearchType.AUTHOR));
|
| | | item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef
|
| | | .getAuthorIdent().getWhen(), getTimeZone()));
|
| | | item.add(new Label("noteContent", StringUtils.breakLinesForHtml(entry.content))
|
| | | .setEscapeModelStrings(false));
|
| | | }
|
| | | };
|
| | | add(notesView.setVisible(notes.size() > 0));
|
| | | |
| | |
|
| | | // changed paths list
|
| | | List<PathChangeModel> paths = JGitUtils.getFilesInCommit(r, c);
|
| | |
| | | }
|
| | |
|
| | | item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class,
|
| | | newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE)));
|
| | | newPathParameter(entry.path)).setEnabled(!entry.changeType
|
| | | .equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE)));
|
| | | item.add(new BookmarkablePageLink<Void>("view", BlobPage.class,
|
| | | newPathParameter(entry.path)));
|
| | | item.add(new BookmarkablePageLink<Void>("blame", BlobPage.class).setEnabled(false));
|
| | | item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,
|
| | | newPathParameter(entry.path)));
|
| | | item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
|
| | | newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD)));
|
| | | newPathParameter(entry.path)).setEnabled(!entry.changeType
|
| | | .equals(ChangeType.ADD)));
|
| | |
|
| | | WicketUtils.setAlternatingBackground(item, counter);
|
| | | counter++;
|
| | |
| | | commitAxis.setLabels(new String[] { "",
|
| | | String.valueOf((int) WicketUtils.maxValue(metrics)) });
|
| | | provider.addAxis(commitAxis);
|
| | |
|
| | | provider.setLineStyles(new LineStyle[] { new LineStyle(2, 4, 0), new LineStyle(0, 4, 1) });
|
| | | provider.addShapeMarker(new ShapeMarker(MarkerType.CIRCLE, Color.BLUE, 1, -1, 5));
|
| | |
|
| | |
| | | entry.path)));
|
| | | links.add(new BookmarkablePageLink<Void>("raw", RawPage.class, WicketUtils
|
| | | .newPathParameter(repositoryName, entry.commitId, entry.path)));
|
| | | links.add(new BookmarkablePageLink<Void>("blame", BlobPage.class)
|
| | | .setEnabled(false));
|
| | | links.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, entry.commitId,
|
| | | entry.path)));
|
| | | links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,
|
| | | WicketUtils.newPathParameter(repositoryName, entry.commitId,
|
| | | entry.path)));
|
| | |
| | | }
|
| | |
|
| | | span .otherRef {
|
| | | background-color: #80ccdd;
|
| | | background-color: #b0e0f0;
|
| | | border-color: #80aaaa;
|
| | | }
|
| | |
|