]> source.dussan.org Git - gitblit.git/commitdiff
Stubbed out Blame. Added Github banner to site. Documentation.
authorJames Moger <james.moger@gitblit.com>
Wed, 8 Jun 2011 21:38:11 +0000 (17:38 -0400)
committerJames Moger <james.moger@gitblit.com>
Wed, 8 Jun 2011 21:38:11 +0000 (17:38 -0400)
19 files changed:
README.MKD
distrib/installService.cmd
distrib/installService64.cmd
distrib/users.properties
docs/00_index.mkd
docs/01_faq.mkd
docs/page_header.html
src/com/gitblit/wicket/GitBlitWebApp.java
src/com/gitblit/wicket/pages/BlamePage.html [new file with mode: 0644]
src/com/gitblit/wicket/pages/BlamePage.java [new file with mode: 0644]
src/com/gitblit/wicket/pages/BlobDiffPage.html
src/com/gitblit/wicket/pages/BlobDiffPage.java
src/com/gitblit/wicket/pages/BlobPage.html
src/com/gitblit/wicket/pages/BlobPage.java
src/com/gitblit/wicket/pages/CommitDiffPage.java
src/com/gitblit/wicket/pages/CommitPage.java
src/com/gitblit/wicket/pages/SummaryPage.java
src/com/gitblit/wicket/pages/TreePage.java
src/com/gitblit/wicket/resources/gitblit.css

index 2a94730f60fc22ff3912b62ac3672082133e1b81..bb272b38d7db065705becbe8a5d918172366ef65 100644 (file)
@@ -8,7 +8,7 @@ License
 -------\r
 \r
 Gitblit is distributed under the terms of the Apache Software Foundation\r
-license, version 2.0. The text is included in the file LICENSE in the root\r
+license, version 2.0. The text of the license is included in the file LICENSE in the root\r
 of the project.\r
 \r
 Java/Application server requirements\r
index 0d181e1371edbe4aea528cfae1f84f90666ea774..093c8773a096835c5bf5f0ec977f35ce36954a6e 100644 (file)
@@ -1,2 +1,2 @@
-set JVM=C:\Program Files\Java\JVM1.6.0_21\r
+set JVM=C:\Program Files\Java\jdk1.6.0_26\r
 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%
\ No newline at end of file
index 10a34443333064610a6cd541c2a678fdaca5f5f7..42d2ca5a1a056f4b43b128bacc44c1fe5b9584f5 100644 (file)
@@ -1,2 +1,2 @@
-set JVM=C:\Program Files\Java\JVM1.6.0_21\r
+set JVM=C:\Program Files\Java\jdk1.6.0_26\r
 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%
\ No newline at end of file
index f3e50752296c0255b31bd2c426d224cc3c74c91b..56142dfa3454f4c9f1bc701b96319482bc25a224 100644 (file)
@@ -1,3 +1,3 @@
 ## Git:Blit realm file format: username=password,\#permission,repository1,repository2...\r
-#Sat Jun 04 14:21:04 EDT 2011\r
+#Tue Jun 07 20:57:42 EDT 2011\r
 admin=admin,\#admin\r
index d13316367898718705bb2df9676c882cc9850f9a..2f15b38c4e00d9c6621579c7b122d6cf3c09ad7a 100644 (file)
@@ -31,9 +31,11 @@ sources @ [Github][gitbltsrc]
 - Repository Owners may edit repositories through the web UI\r
 - Automatically generates a self-signed certificate for https communications\r
 - Git-notes support\r
-- Branch-selectable metrics\r
+- Branch metrics\r
+- Blame annotations view\r
 - Dates can optionally be displayed using the browser's reported timezone\r
 - Author and Committer email address display can be controlled\r
+- Search commit messages, authors, and committers\r
 - Dynamic zip downloads feature\r
 - Markdown view support\r
 - Syntax highlighting\r
@@ -48,27 +50,37 @@ sources @ [Github][gitbltsrc]
     </ul>\r
 \r
 ### Limitations\r
+- [%JGIT%][jgit] does not [garbage collect or repack](http://www.kernel.org/pub/software/scm/git/docs/git-gc.html)\r
 - HTTP/HTTPS are the only supported protocols\r
 - Access controls are not path-based, they are repository-based\r
 - Only Administrators can create, rename or delete repositories\r
 - Gitblit is an integrated, full-stack solution.  There is no WAR build at this time.\r
 \r
+### Caveats\r
+- I don't know everything there is to know about [Git][git] nor [JGit][jgit].\r
+- Gitblit may eat your data.  Use at your own risk.\r
+- Gitblit may have security holes.  Patches welcome.  :)\r
+\r
 ### Todo List\r
 - Code documentation\r
 - Unit testing\r
-- Blame\r
+- Finish Blame (waiting for JGit 1.0.0 release)\r
 - Clone remote repository\r
 \r
 ### Idea List\r
-- Ticgit activity/timeline\r
-- Ticgit query feature with paging support\r
-- Ticgit ticket change history\r
-- View images on Blob page\r
-- View other binary files on Blob page\r
+- Consider [Apache Shiro](http://shiro.apache.org) for authentication\r
+- Stronger Ticgit read-only integration\r
+    - activity/timeline\r
+    - query feature with paging support\r
+    - change history\r
+- Ticgit write integration\r
+- Blob page improvements\r
+    - view images\r
+    - view other binary files (pdf, doc, etc)\r
 - Markdown editing feature\r
 \r
 ### License\r
-Licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)\r
+Gitblit is distributed under the terms of the [Apache Software Foundation license, version 2.0][apachelicense]\r
 \r
 ### Inspirations\r
 - [Gitweb](http://www.git-scm.com)\r
@@ -123,6 +135,13 @@ Additionally, [Google CodePro AnalytiX](http://code.google.com/javadevtools), [e
     - If running on Linux you may have to change the served port(s) to > 1024 unless you are developing as the root user. \r
 6. Execute the *com.gitblit.Launcher* class to start Gitblit.\r
 \r
+\r
+## Contributing\r
+Patches welcome in any form.\r
+\r
+Contributions must be your own original work and must licensed under the [Apache License, Version 2.0][apachelicense], the same license used by Gitblit.\r
+\r
 [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"\r
 [git]: http://git-scm.com "Official Git Site"\r
-[gitbltsrc]: http://somewhere.com "gitblit git repository"
\ No newline at end of file
+[gitbltsrc]: http://somewhere.com "gitblit git repository"\r
+[apachelicense]: http://www.apache.org/licenses/LICENSE-2.0 "Apache License, Version 2.0"
\ No newline at end of file
index a80e4e29da11ebf53e2736008ca1d8a6cf216c36..e6760ced1dc2c2f1985493a604449a7c10023963 100644 (file)
@@ -36,9 +36,8 @@ Gitblit is not meant to be a social coding resource like [Github](http://github.
 As a Java developer I prefer that as much of my tooling as possible is Java.<br/>\r
 Originally, I was going to use [Mercurial](http://mercurial.selenic.com) but...\r
 \r
-- MercurialEclipse [shells to Python and captures System.in](http://mercurial.808500.n3.nabble.com/Hg4J-Mercurial-pure-Java-library-tp2693090p2694555.html)<br/>\r
+- 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/>\r
 Parsing command-line output is fragile and suboptimal.<br/>Unfortunately this is necessary because Mercurial is an application, not a library.\r
-- 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.\r
 - 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/>\r
 This requires setup and maintenance of multiple, mixed 3rd party components.\r
 \r
@@ -48,6 +47,13 @@ Gitblit eliminates all that complication with its 100% Java stack and simple sin
 No.  Gitblit is based on [JGit][jgit] which is a pure Java implementation of the [Git version control system][git].<br/>\r
 Everything you need for Gitblit is either in the zip distribution file or automatically downloaded on execution.\r
 \r
+### What about periodic Git garbage collection (git-gc)?\r
+Good question.  I'm not sure.\r
+\r
+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)).)\r
+\r
+[JGit's][jgit] documentation is sparse and its unclear whether or not JGit performs this function.\r
+\r
 ### Can I run Gitblit in conjunction with my existing Git tooling?\r
 Yes.  You can configure Gitblit to only be a repository viewer.\r
 \r
@@ -72,7 +78,7 @@ Gitblit's simple authentication and authorization mechanism can be used to facil
 \r
 ### Why doesn't Gitblit support SSH?\r
 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/>\r
-SSH support requires creating, exchanging, and managing SSH keys.  While this is possible, JGit's SmartHTTP implementation is a simpler and universal transport mechanism.\r
+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.\r
 \r
 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).\r
 \r
@@ -86,8 +92,9 @@ To search by *author* or *committer* use the following syntax in the search box:
     \r
 Alternatively, you could enable the search type dropdown list in your `gitblit.properties` file.\r
 \r
-### I see a disabled "blame" link. How do I enable it? \r
-Currently blame is not implemented.  Those links are placeholders to remind me where Gitweb offers blame.\r
+### Can Gitblit be translated?\r
+\r
+Yes.  Most messages are localized to a standard Java properties file.\r
 \r
 [bitblt]: http://en.wikipedia.org/wiki/Bit_blit "Wikipedia Bitblt"\r
 [jgit]: http://eclipse.org/jgit "Eclipse JGit Site"\r
index 4a2128e09d0721e1a91e41bf40e3adda646144ae..7b8f63d54baf1fc3c2d76c9579cf52af4e5941f5 100644 (file)
@@ -28,7 +28,8 @@
                <script type="text/javascript" src="prettify/prettify.js"></script>\r
                <link href="prettify/prettify.css" type="text/css" rel="stylesheet" />          \r
        </head>\r
-       <body onload="prettyPrint()">\r
+       <body style="width:900px"  onload="prettyPrint()">\r
+               <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>\r
                <div class="page_header">\r
                        <a title="gitblit homepage" href="http://gitblit.com/">\r
                                <img src="./gitblt_25.png" width="79" height="25" alt="gitblit" class="logo"/>\r
index 61b51e86c93c8773731f9486097723dc058a7954..daf10845bca4f5848539a3ce8d3be329bbe4c18a 100644 (file)
@@ -26,6 +26,7 @@ import org.apache.wicket.request.target.coding.MixedParamUrlCodingStrategy;
 \r
 import com.gitblit.GitBlit;\r
 import com.gitblit.Keys;\r
+import com.gitblit.wicket.pages.BlamePage;\r
 import com.gitblit.wicket.pages.BlobDiffPage;\r
 import com.gitblit.wicket.pages.BlobPage;\r
 import com.gitblit.wicket.pages.BranchesPage;\r
@@ -37,11 +38,11 @@ import com.gitblit.wicket.pages.LogPage;
 import com.gitblit.wicket.pages.LoginPage;\r
 import com.gitblit.wicket.pages.LogoutPage;\r
 import com.gitblit.wicket.pages.MarkdownPage;\r
+import com.gitblit.wicket.pages.MetricsPage;\r
 import com.gitblit.wicket.pages.PatchPage;\r
 import com.gitblit.wicket.pages.RawPage;\r
 import com.gitblit.wicket.pages.RepositoriesPage;\r
 import com.gitblit.wicket.pages.SearchPage;\r
-import com.gitblit.wicket.pages.MetricsPage;\r
 import com.gitblit.wicket.pages.SummaryPage;\r
 import com.gitblit.wicket.pages.TagPage;\r
 import com.gitblit.wicket.pages.TagsPage;\r
@@ -85,6 +86,7 @@ public class GitBlitWebApp extends WebApplication {
                mount("/history", HistoryPage.class, "r", "h", "f");\r
                mount("/search", SearchPage.class);\r
                mount("/metrics", MetricsPage.class, "r");\r
+               mount("/blame", BlamePage.class, "r", "h", "f");\r
                \r
                // setup ticket urls\r
                mount("/tickets", TicketsPage.class, "r");\r
diff --git a/src/com/gitblit/wicket/pages/BlamePage.html b/src/com/gitblit/wicket/pages/BlamePage.html
new file mode 100644 (file)
index 0000000..27ed734
--- /dev/null
@@ -0,0 +1,39 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
+<html xmlns="http://www.w3.org/1999/xhtml"  \r
+      xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd"  \r
+      xml:lang="en"  \r
+      lang="en"> \r
+\r
+<body>\r
+<wicket:extend>\r
+       \r
+       <!-- blame nav links -->        \r
+       <div class="page_nav2">\r
+               <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>\r
+       </div>  \r
+       \r
+       <!-- commit header -->\r
+       <div wicket:id="commitHeader">[commit header]</div>\r
+\r
+       <!-- breadcrumbs -->\r
+       <div wicket:id="breadcrumbs">[breadcrumbs]</div>\r
+               \r
+       <!--  blame content -->\r
+       <table>\r
+               <tbody>\r
+                       <tr>\r
+                               <th>Commit</th>\r
+                               <th>Line</th>\r
+                               <th>Data</th>\r
+                       </tr>\r
+                       <tr wicket:id="annotation">\r
+                               <td><span wicket:id="commit"></span></td>\r
+                               <td><span wicket:id="line"></span></td>\r
+                               <td><span wicket:id="data"></span></td>\r
+                       </tr>\r
+               </tbody>\r
+       </table>\r
+       \r
+</wicket:extend>\r
+</body>\r
+</html>
\ No newline at end of file
diff --git a/src/com/gitblit/wicket/pages/BlamePage.java b/src/com/gitblit/wicket/pages/BlamePage.java
new file mode 100644 (file)
index 0000000..dc6aa1f
--- /dev/null
@@ -0,0 +1,97 @@
+/*\r
+ * Copyright 2011 gitblit.com.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *     http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+package com.gitblit.wicket.pages;\r
+\r
+import java.io.Serializable;\r
+import java.util.Arrays;\r
+import java.util.List;\r
+\r
+import org.apache.wicket.PageParameters;\r
+import org.apache.wicket.markup.html.basic.Label;\r
+import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
+import org.apache.wicket.markup.repeater.Item;\r
+import org.apache.wicket.markup.repeater.data.DataView;\r
+import org.apache.wicket.markup.repeater.data.ListDataProvider;\r
+import org.eclipse.jgit.lib.Constants;\r
+import org.eclipse.jgit.revwalk.RevCommit;\r
+\r
+import com.gitblit.wicket.WicketUtils;\r
+import com.gitblit.wicket.panels.CommitHeaderPanel;\r
+import com.gitblit.wicket.panels.LinkPanel;\r
+import com.gitblit.wicket.panels.PathBreadcrumbsPanel;\r
+\r
+public class BlamePage extends RepositoryPage {\r
+\r
+       public BlamePage(PageParameters params) {\r
+               super(params);\r
+\r
+               final String blobPath = WicketUtils.getPath(params);\r
+\r
+               RevCommit commit = getCommit();\r
+\r
+               add(new BookmarkablePageLink<Void>("blobLink", BlobPage.class,\r
+                               WicketUtils.newPathParameter(repositoryName, objectId,\r
+                                                       blobPath)));\r
+               add(new BookmarkablePageLink<Void>("commitLink", CommitPage.class,\r
+                               WicketUtils.newObjectParameter(repositoryName, objectId)));\r
+               add(new BookmarkablePageLink<Void>("commitDiffLink", CommitDiffPage.class,\r
+                               WicketUtils.newObjectParameter(repositoryName, objectId)));\r
+\r
+               // blame page links\r
+               add(new BookmarkablePageLink<Void>("headLink", BlamePage.class,\r
+                               WicketUtils.newPathParameter(repositoryName, Constants.HEAD, blobPath)));\r
+               add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,\r
+                               WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));\r
+\r
+               add(new CommitHeaderPanel("commitHeader", repositoryName, commit));\r
+\r
+               add(new PathBreadcrumbsPanel("breadcrumbs", repositoryName, blobPath, objectId));\r
+\r
+               List<BlameLine> blame = Arrays.asList(new BlameLine("HEAD", "1", "Under Construction"));\r
+               ListDataProvider<BlameLine> blameDp = new ListDataProvider<BlameLine>(blame);\r
+               DataView<BlameLine> blameView = new DataView<BlameLine>("annotation", blameDp) {\r
+                       private static final long serialVersionUID = 1L;\r
+\r
+                       public void populateItem(final Item<BlameLine> item) {\r
+                               BlameLine entry = item.getModelObject();\r
+                               item.add(new LinkPanel("commit", "list", entry.objectId, CommitPage.class,\r
+                                               newCommitParameter(entry.objectId)));\r
+                               item.add(new Label("line", entry.line));\r
+                               item.add(new Label("data", entry.data));\r
+                       }\r
+               };\r
+               add(blameView);\r
+       }\r
+\r
+       @Override\r
+       protected String getPageName() {\r
+               return getString("gb.blame");\r
+       }\r
+       \r
+       private class BlameLine implements Serializable {\r
+               \r
+               private static final long serialVersionUID = 1L;\r
+               \r
+               final String objectId;\r
+               final String line;\r
+               final String data;\r
+               BlameLine(String objectId, String line, String data) {\r
+                       this.objectId = objectId;\r
+                       this.line = line;\r
+                       this.data = data;\r
+               }\r
+       }\r
+}\r
index 4818aa8c096beb4c914d9075b91d68560c5e0cdf..c63364290abc29f755afc578b8fcb3220af88961 100644 (file)
@@ -9,7 +9,7 @@
        \r
        <!-- blob nav links --> \r
        <div class="page_nav2">\r
-               <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>\r
+               <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>\r
        </div>  \r
        \r
        <!-- commit header -->\r
index a8f8b3c10126410f5e942073818b29292447d3e5..d86d2e63b872b067afe6e861e0e7a610dee464d8 100644 (file)
@@ -66,7 +66,8 @@ public class BlobDiffPage extends RepositoryPage {
                                WicketUtils.newObjectParameter(repositoryName, objectId)));\r
 \r
                // diff page links\r
-               add(new Label("blameLink", getString("gb.blame")));\r
+               add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,\r
+                               WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));\r
                add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,\r
                                WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));\r
 \r
index 523744375d2a7bf66443012c2df438cacb337879..3c8514196c863eb94d08a48be898b1bc6216b78e 100644 (file)
@@ -18,7 +18,7 @@
 \r
                <!-- blob nav links --> \r
                <div class="page_nav2">\r
-                       <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>\r
+                       <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>\r
                </div>  \r
        \r
                <!-- commit header -->\r
index 3c5c8e04ecde5a4c96b90ea0d7b44b4a97237848..47c8ca8266427e2419ed2c7495eb37df9b24455d 100644 (file)
@@ -45,7 +45,8 @@ public class BlobPage extends RepositoryPage {
                if (StringUtils.isEmpty(blobPath)) {\r
                        // blob by objectid\r
 \r
-                       add(new Label("blameLink", getString("gb.blame")).setEnabled(false));\r
+                       add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,\r
+                                       WicketUtils.newPathParameter(repositoryName, objectId, blobPath)).setEnabled(false));\r
                        add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class).setEnabled(false));\r
                        add(new BookmarkablePageLink<Void>("rawLink", RawPage.class,\r
                                        WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));\r
@@ -74,7 +75,8 @@ public class BlobPage extends RepositoryPage {
                        RevCommit commit = JGitUtils.getCommit(r, objectId);\r
 \r
                        // blob page links\r
-                       add(new Label("blameLink", getString("gb.blame")));\r
+                       add(new BookmarkablePageLink<Void>("blameLink", BlamePage.class,\r
+                                       WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));\r
                        add(new BookmarkablePageLink<Void>("historyLink", HistoryPage.class,\r
                                        WicketUtils.newPathParameter(repositoryName, objectId, blobPath)));\r
                        add(new BookmarkablePageLink<Void>("rawLink", RawPage.class,\r
index 4815b2c73bbc0834cc11e8f03c7316cd5c954877..3abcf131a26543733823e4342f087d9add45865d 100644 (file)
@@ -98,9 +98,10 @@ public class CommitDiffPage extends RepositoryPage {
                                                newPathParameter(entry.path)));\r
                                item.add(new BookmarkablePageLink<Void>("view", BlobPage.class,\r
                                                newPathParameter(entry.path)));\r
-                               item.add(new BookmarkablePageLink<Void>("blame", BlobPage.class).setEnabled(false));\r
+                               item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,\r
+                                               newPathParameter(entry.path)));\r
                                item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,\r
-                                               newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE)));\r
+                                               newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD)));\r
 \r
                                WicketUtils.setAlternatingBackground(item, counter);\r
                                counter++;\r
index 7b5fdbe07d6da89521afebabb25e44c05df38252..d9ff1b78e6c2f5c16edf94d8fe1013c53990a196 100644 (file)
@@ -125,15 +125,16 @@ public class CommitPage extends RepositoryPage {
                        public void populateItem(final Item<GitNote> item) {\r
                                GitNote entry = item.getModelObject();\r
                                item.add(new RefsPanel("refName", repositoryName, Arrays.asList(entry.notesRef)));\r
-                               item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(), SearchType.AUTHOR));\r
-                               item.add(WicketUtils.createTimestampLabel("authorDate",\r
-                                               entry.notesRef.getAuthorIdent().getWhen(), getTimeZone()));\r
-                               item.add(new Label("noteContent", StringUtils.breakLinesForHtml(entry.content)).setEscapeModelStrings(false));\r
+                               item.add(createPersonPanel("authorName", entry.notesRef.getAuthorIdent(),\r
+                                               SearchType.AUTHOR));\r
+                               item.add(WicketUtils.createTimestampLabel("authorDate", entry.notesRef\r
+                                               .getAuthorIdent().getWhen(), getTimeZone()));\r
+                               item.add(new Label("noteContent", StringUtils.breakLinesForHtml(entry.content))\r
+                                               .setEscapeModelStrings(false));\r
                        }\r
                };\r
                add(notesView.setVisible(notes.size() > 0));\r
-               \r
-               \r
+\r
                // changed paths list\r
                List<PathChangeModel> paths = JGitUtils.getFilesInCommit(r, c);\r
                add(new CommitLegendPanel("commitLegend", paths));\r
@@ -157,12 +158,15 @@ public class CommitPage extends RepositoryPage {
                                }\r
 \r
                                item.add(new BookmarkablePageLink<Void>("diff", BlobDiffPage.class,\r
-                                               newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE)));\r
+                                               newPathParameter(entry.path)).setEnabled(!entry.changeType\r
+                                               .equals(ChangeType.ADD) && !entry.changeType.equals(ChangeType.DELETE)));\r
                                item.add(new BookmarkablePageLink<Void>("view", BlobPage.class,\r
                                                newPathParameter(entry.path)));\r
-                               item.add(new BookmarkablePageLink<Void>("blame", BlobPage.class).setEnabled(false));\r
+                               item.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,\r
+                                               newPathParameter(entry.path)));\r
                                item.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,\r
-                                               newPathParameter(entry.path)).setEnabled(!entry.changeType.equals(ChangeType.ADD)));\r
+                                               newPathParameter(entry.path)).setEnabled(!entry.changeType\r
+                                               .equals(ChangeType.ADD)));\r
 \r
                                WicketUtils.setAlternatingBackground(item, counter);\r
                                counter++;\r
index 03b1b1c7c6c763b8156aea6b11c322655ff4aee9..37b0bcff71037d4947b39042cf87057a1f824c39 100644 (file)
@@ -203,11 +203,10 @@ public class SummaryPage extends RepositoryPage {
                                        metrics.get(metrics.size() / 2).name, metrics.get(metrics.size() - 1).name });\r
                        provider.addAxis(dateAxis);\r
 \r
-                       ChartAxis commitAxis = new ChartAxis(ChartAxisType.LEFT);\r
+                       ChartAxis commitAxis = new ChartAxis(ChartAxisType.LEFT);                       \r
                        commitAxis.setLabels(new String[] { "",\r
                                        String.valueOf((int) WicketUtils.maxValue(metrics)) });\r
                        provider.addAxis(commitAxis);\r
-\r
                        provider.setLineStyles(new LineStyle[] { new LineStyle(2, 4, 0), new LineStyle(0, 4, 1) });\r
                        provider.addShapeMarker(new ShapeMarker(MarkerType.CIRCLE, Color.BLUE, 1, -1, 5));\r
 \r
index f796266400e2ffa5ff9bafd8d594409a55c20391..68eecf0f8ad517e45ad902d5240508580278de42 100644 (file)
@@ -129,8 +129,9 @@ public class TreePage extends RepositoryPage {
                                                                                entry.path)));\r
                                                links.add(new BookmarkablePageLink<Void>("raw", RawPage.class, WicketUtils\r
                                                                .newPathParameter(repositoryName, entry.commitId, entry.path)));\r
-                                               links.add(new BookmarkablePageLink<Void>("blame", BlobPage.class)\r
-                                                               .setEnabled(false));\r
+                                               links.add(new BookmarkablePageLink<Void>("blame", BlamePage.class,\r
+                                                               WicketUtils.newPathParameter(repositoryName, entry.commitId,\r
+                                                                               entry.path)));\r
                                                links.add(new BookmarkablePageLink<Void>("history", HistoryPage.class,\r
                                                                WicketUtils.newPathParameter(repositoryName, entry.commitId,\r
                                                                                entry.path)));\r
index a0ab10ab6453006ef7a95b2b0deb19682950193d..7c896dffe8fbc8379bd86d61453cf618e4025f7a 100644 (file)
@@ -737,7 +737,7 @@ span .tagRef a:hover, span .headRef a:hover, span .localBranch a:hover, span .re
 }\r
 \r
 span .otherRef {\r
-       background-color: #80ccdd;\r
+       background-color: #b0e0f0;\r
        border-color: #80aaaa;  \r
 }\r
 \r