update jgit to version 2.0.0.201206130900-r

This commit is contained in:
Sebastian Sdorra
2012-06-26 21:25:57 +02:00
parent 76baa85187
commit 04939d5a4d
7 changed files with 121 additions and 62 deletions

View File

@@ -401,7 +401,7 @@
<jetty.version>7.6.4.v20120524</jetty.version> <jetty.version>7.6.4.v20120524</jetty.version>
<!-- repostitory libraries --> <!-- repostitory libraries -->
<jgit.version>1.3.0.201202151440-r</jgit.version> <jgit.version>2.0.0.201206130900-r</jgit.version>
<svnkit.version>1.7.5-1</svnkit.version> <svnkit.version>1.7.5-1</svnkit.version>
<!-- build properties --> <!-- build properties -->

View File

@@ -37,6 +37,7 @@ package sonia.scm.repository;
import org.eclipse.jgit.api.BlameCommand; import org.eclipse.jgit.api.BlameCommand;
import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.blame.BlameResult; import org.eclipse.jgit.blame.BlameResult;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.PersonIdent;
@@ -128,7 +129,7 @@ public class GitBlameViewer implements BlameViewer
{ {
RevCommit commit = gitBlameResult.getSourceCommit(i); RevCommit commit = gitBlameResult.getSourceCommit(i);
if ( commit != null ) if (commit != null)
{ {
PersonIdent author = gitBlameResult.getSourceAuthor(i); PersonIdent author = gitBlameResult.getSourceAuthor(i);
BlameLine blameLine = new BlameLine(); BlameLine blameLine = new BlameLine();
@@ -136,7 +137,6 @@ public class GitBlameViewer implements BlameViewer
blameLine.setLineNumber(i + 1); blameLine.setLineNumber(i + 1);
blameLine.setAuthor(new Person(author.getName(), blameLine.setAuthor(new Person(author.getName(),
author.getEmailAddress())); author.getEmailAddress()));
blameLine.setDescription(commit.getShortMessage()); blameLine.setDescription(commit.getShortMessage());
long when = GitUtil.getCommitTime(commit); long when = GitUtil.getCommitTime(commit);
@@ -160,6 +160,10 @@ public class GitBlameViewer implements BlameViewer
{ {
logger.error("could not open repository", ex); logger.error("could not open repository", ex);
} }
catch (GitAPIException ex)
{
logger.error("could not create blame view", ex);
}
return blameResult; return blameResult;
} }

View File

@@ -36,6 +36,7 @@ package sonia.scm.repository;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.NoHeadException; import org.eclipse.jgit.api.errors.NoHeadException;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
@@ -198,6 +199,10 @@ public class GitChangesetViewer implements ChangesetViewer
{ {
logger.error("could not read changesets", ex); logger.error("could not read changesets", ex);
} }
catch (GitAPIException ex)
{
logger.error("could not read changesets", ex);
}
catch (IOException ex) catch (IOException ex)
{ {
logger.error("could not open repository", ex); logger.error("could not open repository", ex);
@@ -279,6 +284,10 @@ public class GitChangesetViewer implements ChangesetViewer
{ {
logger.error("could not read changesets", ex); logger.error("could not read changesets", ex);
} }
catch (GitAPIException ex)
{
logger.error("could not read changesets", ex);
}
catch (IOException ex) catch (IOException ex)
{ {
logger.error("could not open repository", ex); logger.error("could not open repository", ex);

View File

@@ -30,6 +30,7 @@
*/ */
package sonia.scm.repository.spi; package sonia.scm.repository.spi;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
@@ -38,6 +39,7 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
@@ -113,6 +115,10 @@ public class GitBlameCommand extends AbstractGitCommand implements BlameCommand
Preconditions.checkArgument(!Strings.isNullOrEmpty(request.getPath()), Preconditions.checkArgument(!Strings.isNullOrEmpty(request.getPath()),
"path is empty or null"); "path is empty or null");
BlameResult result = null;
try
{
org.eclipse.jgit.lib.Repository gr = open(); org.eclipse.jgit.lib.Repository gr = open();
org.eclipse.jgit.api.BlameCommand blame = new Git(gr).blame(); org.eclipse.jgit.api.BlameCommand blame = new Git(gr).blame();
@@ -127,7 +133,8 @@ public class GitBlameCommand extends AbstractGitCommand implements BlameCommand
if (gitBlameResult == null) if (gitBlameResult == null)
{ {
throw new RepositoryException( throw new RepositoryException(
"could not create blame result for path ".concat(request.getPath())); "could not create blame result for path ".concat(
request.getPath()));
} }
List<BlameLine> blameLines = new ArrayList<BlameLine>(); List<BlameLine> blameLines = new ArrayList<BlameLine>();
@@ -163,6 +170,13 @@ public class GitBlameCommand extends AbstractGitCommand implements BlameCommand
} }
} }
return new sonia.scm.repository.BlameResult(i, blameLines); result = new BlameResult(i, blameLines);
}
catch (GitAPIException ex)
{
throw new RepositoryException("could not create blame view", ex);
}
return result;
} }
} }

View File

@@ -30,6 +30,7 @@
*/ */
package sonia.scm.repository.spi; package sonia.scm.repository.spi;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
@@ -38,6 +39,7 @@ import com.google.common.base.Strings;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.NoHeadException; import org.eclipse.jgit.api.errors.NoHeadException;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Repository;
@@ -51,6 +53,7 @@ import sonia.scm.repository.Changeset;
import sonia.scm.repository.ChangesetPagingResult; import sonia.scm.repository.ChangesetPagingResult;
import sonia.scm.repository.GitChangesetConverter; import sonia.scm.repository.GitChangesetConverter;
import sonia.scm.repository.GitUtil; import sonia.scm.repository.GitUtil;
import sonia.scm.repository.RepositoryException;
import sonia.scm.util.IOUtil; import sonia.scm.util.IOUtil;
//~--- JDK imports ------------------------------------------------------------ //~--- JDK imports ------------------------------------------------------------
@@ -154,10 +157,11 @@ public class GitLogCommand extends AbstractGitCommand implements LogCommand
* @return * @return
* *
* @throws IOException * @throws IOException
* @throws RepositoryException
*/ */
@Override @Override
public ChangesetPagingResult getChangesets(LogCommandRequest request) public ChangesetPagingResult getChangesets(LogCommandRequest request)
throws IOException throws IOException, RepositoryException
{ {
if (logger.isDebugEnabled()) if (logger.isDebugEnabled())
{ {
@@ -257,6 +261,10 @@ public class GitLogCommand extends AbstractGitCommand implements LogCommand
changesets = new ChangesetPagingResult(0, new ArrayList<Changeset>()); changesets = new ChangesetPagingResult(0, new ArrayList<Changeset>());
} }
catch (GitAPIException ex)
{
throw new RepositoryException("could not create change log", ex);
}
finally finally
{ {
IOUtil.close(converter); IOUtil.close(converter);

View File

@@ -38,12 +38,16 @@ package sonia.scm.web;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringEscapeUtils;
import org.eclipse.jgit.api.Git; import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.api.errors.GitAPIException;
import org.eclipse.jgit.api.errors.NoHeadException; import org.eclipse.jgit.api.errors.NoHeadException;
import org.eclipse.jgit.lib.ObjectId; import org.eclipse.jgit.lib.ObjectId;
import org.eclipse.jgit.lib.PersonIdent; import org.eclipse.jgit.lib.PersonIdent;
import org.eclipse.jgit.lib.Repository; import org.eclipse.jgit.lib.Repository;
import org.eclipse.jgit.revwalk.RevCommit; import org.eclipse.jgit.revwalk.RevCommit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import sonia.scm.io.RegexResourceProcessor; import sonia.scm.io.RegexResourceProcessor;
import sonia.scm.io.ResourceProcessor; import sonia.scm.io.ResourceProcessor;
import sonia.scm.repository.GitUtil; import sonia.scm.repository.GitUtil;
@@ -75,6 +79,12 @@ public class GitRepositoryViewer
/** Field description */ /** Field description */
public static final String RESOURCE_GITINDEX = "/sonia/scm/git.index.html"; public static final String RESOURCE_GITINDEX = "/sonia/scm/git.index.html";
/**
* the logger for GitRepositoryViewer
*/
private static final Logger logger =
LoggerFactory.getLogger(GitRepositoryViewer.class);
//~--- methods -------------------------------------------------------------- //~--- methods --------------------------------------------------------------
/** /**
@@ -107,6 +117,8 @@ public class GitRepositoryViewer
int c = 0; int c = 0;
ObjectId head = GitUtil.getRepositoryHead(repository); ObjectId head = GitUtil.getRepositoryHead(repository);
try
{
for (RevCommit commit : git.log().add(head).call()) for (RevCommit commit : git.log().add(head).call())
{ {
appendCommit(sb, commit); appendCommit(sb, commit);
@@ -118,6 +130,11 @@ public class GitRepositoryViewer
} }
} }
} }
catch (GitAPIException ex)
{
logger.error("could not read changesets", ex);
}
}
processor.addVariable("commits", sb.toString()); processor.addVariable("commits", sb.toString());

View File

@@ -30,6 +30,7 @@
*/ */
package sonia.scm.repository.spi; package sonia.scm.repository.spi;
//~--- non-JDK imports -------------------------------------------------------- //~--- non-JDK imports --------------------------------------------------------
@@ -39,6 +40,7 @@ import org.junit.Test;
import sonia.scm.repository.Changeset; import sonia.scm.repository.Changeset;
import sonia.scm.repository.ChangesetPagingResult; import sonia.scm.repository.ChangesetPagingResult;
import sonia.scm.repository.Modifications; import sonia.scm.repository.Modifications;
import sonia.scm.repository.RepositoryException;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.*;
@@ -60,9 +62,10 @@ public class GitLogCommandTest extends AbstractGitCommandTestBase
* *
* *
* @throws IOException * @throws IOException
* @throws RepositoryException
*/ */
@Test @Test
public void testGetAll() throws IOException public void testGetAll() throws IOException, RepositoryException
{ {
ChangesetPagingResult result = ChangesetPagingResult result =
createCommand().getChangesets(new LogCommandRequest()); createCommand().getChangesets(new LogCommandRequest());
@@ -77,9 +80,10 @@ public class GitLogCommandTest extends AbstractGitCommandTestBase
* *
* *
* @throws IOException * @throws IOException
* @throws RepositoryException
*/ */
@Test @Test
public void testGetAllByPath() throws IOException public void testGetAllByPath() throws IOException, RepositoryException
{ {
LogCommandRequest request = new LogCommandRequest(); LogCommandRequest request = new LogCommandRequest();
@@ -100,9 +104,10 @@ public class GitLogCommandTest extends AbstractGitCommandTestBase
* *
* *
* @throws IOException * @throws IOException
* @throws RepositoryException
*/ */
@Test @Test
public void testGetAllWithLimit() throws IOException public void testGetAllWithLimit() throws IOException, RepositoryException
{ {
LogCommandRequest request = new LogCommandRequest(); LogCommandRequest request = new LogCommandRequest();
@@ -130,9 +135,10 @@ public class GitLogCommandTest extends AbstractGitCommandTestBase
* *
* *
* @throws IOException * @throws IOException
* @throws RepositoryException
*/ */
@Test @Test
public void testGetAllWithPaging() throws IOException public void testGetAllWithPaging() throws IOException, RepositoryException
{ {
LogCommandRequest request = new LogCommandRequest(); LogCommandRequest request = new LogCommandRequest();
@@ -189,9 +195,10 @@ public class GitLogCommandTest extends AbstractGitCommandTestBase
* *
* *
* @throws IOException * @throws IOException
* @throws RepositoryException
*/ */
@Test @Test
public void testGetRange() throws IOException public void testGetRange() throws IOException, RepositoryException
{ {
LogCommandRequest request = new LogCommandRequest(); LogCommandRequest request = new LogCommandRequest();