- added: Gitblit Manager (Java/Swing Application) for remote administration of a Gitblit server.\r
- fixed: federation protocol timestamps. dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard. \r
**This breaks 0.6.0 federation clients/servers.**\r
-- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8)\r
+- fixed: Gitblit can now browse the Linux kernel repository (issue 25)\r
+- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8) (issue 23)\r
- fixed: Set the RSS content type for Firefox 4 (issue 22)\r
- fixed: Null pointer exception if did not set federation strategy (issue 20)\r
- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later\r
- added: Gitblit Manager (Java/Swing Application) for remote administration of a Gitblit server.\r
- fixed: federation protocol timestamps. dates are now serialized to the [iso8601](http://en.wikipedia.org/wiki/ISO_8601) standard. \r
**This breaks 0.6.0 federation clients/servers.**\r
-- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8)\r
+- fixed: Gitblit can now browse the Linux kernel repository (issue 25)\r
+- fixed: Gitblit now runs on Servlet 3.0 webservers (e.g. Tomcat 7, Jetty 8) (issue 23)\r
- fixed: Set the RSS content type for Firefox 4 (issue 22)\r
- fixed: Null pointer exception if did not set federation strategy (issue 20)\r
- fixed: Gitblit GO allows SSL renegotiation if running on Java 1.6.0_22 or later\r
import org.eclipse.jgit.revwalk.RevCommit;\r
import org.eclipse.jgit.revwalk.RevObject;\r
import org.eclipse.jgit.revwalk.RevTag;\r
+import org.eclipse.jgit.revwalk.RevTree;\r
\r
/**\r
* RefModel is a serializable model class that represents a tag or branch and\r
Date date = new Date(0);\r
if (referencedObject != null) {\r
if (referencedObject instanceof RevTag) {\r
- date = ((RevTag) referencedObject).getTaggerIdent().getWhen();\r
+ RevTag tag = (RevTag) referencedObject;\r
+ if (tag.getTaggerIdent() != null) {\r
+ date = tag.getTaggerIdent().getWhen();\r
+ }\r
} else if (referencedObject instanceof RevCommit) {\r
date = ((RevCommit) referencedObject).getCommitterIdent().getWhen();\r
}\r
\r
protected Component createPersonPanel(String wicketId, PersonIdent identity,\r
SearchType searchType) {\r
+ String name = identity == null ? "" : identity.getName();\r
+ String address = identity == null ? "" : identity.getEmailAddress();\r
boolean showEmail = GitBlit.getBoolean(Keys.web.showEmailAddresses, false);\r
- if (!showEmail || StringUtils.isEmpty(identity.getName())\r
- || StringUtils.isEmpty(identity.getEmailAddress())) {\r
- String value = identity.getName();\r
+ if (!showEmail || StringUtils.isEmpty(name) || StringUtils.isEmpty(address)) {\r
+ String value = name;\r
if (StringUtils.isEmpty(value)) {\r
if (showEmail) {\r
- value = identity.getEmailAddress();\r
+ value = address;\r
} else {\r
value = getString("gb.missingUsername");\r
}\r
return partial;\r
} else {\r
Fragment fullPerson = new Fragment(wicketId, "fullPersonIdent", this);\r
- LinkPanel nameLink = new LinkPanel("personName", "list", identity.getName(),\r
- SearchPage.class, WicketUtils.newSearchParameter(repositoryName, objectId,\r
- identity.getName(), searchType));\r
- setPersonSearchTooltip(nameLink, identity.getName(), searchType);\r
+ LinkPanel nameLink = new LinkPanel("personName", "list", name, SearchPage.class,\r
+ WicketUtils.newSearchParameter(repositoryName, objectId, name, searchType));\r
+ setPersonSearchTooltip(nameLink, name, searchType);\r
fullPerson.add(nameLink);\r
\r
- LinkPanel addressLink = new LinkPanel("personAddress", "list", "<"\r
- + identity.getEmailAddress() + ">", SearchPage.class,\r
- WicketUtils.newSearchParameter(repositoryName, objectId,\r
- identity.getEmailAddress(), searchType));\r
- setPersonSearchTooltip(addressLink, identity.getEmailAddress(), searchType);\r
+ LinkPanel addressLink = new LinkPanel("personAddress", "list", "<" + address + ">",\r
+ SearchPage.class, WicketUtils.newSearchParameter(repositoryName, objectId,\r
+ address, searchType));\r
+ setPersonSearchTooltip(addressLink, address, searchType);\r
fullPerson.add(addressLink);\r
return fullPerson;\r
}\r
\r
import java.text.MessageFormat;\r
import java.util.Arrays;\r
+import java.util.Date;\r
import java.util.List;\r
\r
import org.apache.wicket.PageParameters;\r
add(new Label("taggedObjectType", getString(typeKey)));\r
\r
add(createPersonPanel("tagger", tagRef.getAuthorIdent(), SearchType.AUTHOR));\r
- add(WicketUtils.createTimestampLabel("tagDate", tagRef.getAuthorIdent().getWhen(),\r
- getTimeZone()));\r
+ Date when = new Date(0);\r
+ if (tagRef.getAuthorIdent() != null) {\r
+ when = tagRef.getAuthorIdent().getWhen();\r
+ }\r
+ add(WicketUtils.createTimestampLabel("tagDate", when, getTimeZone()));\r
\r
addFullText("fullMessage", tagRef.getFullMessage(), true);\r
}\r