mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-06 21:45:43 +01:00
fix wrong modification list in git getChangeset
This commit is contained in:
@@ -41,9 +41,13 @@ import org.eclipse.jgit.lib.PersonIdent;
|
||||
import org.eclipse.jgit.lib.Ref;
|
||||
import org.eclipse.jgit.revwalk.RevCommit;
|
||||
import org.eclipse.jgit.revwalk.RevTree;
|
||||
import org.eclipse.jgit.revwalk.RevWalk;
|
||||
import org.eclipse.jgit.treewalk.EmptyTreeIterator;
|
||||
import org.eclipse.jgit.treewalk.TreeWalk;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import sonia.scm.util.Util;
|
||||
|
||||
//~--- JDK imports ------------------------------------------------------------
|
||||
@@ -63,6 +67,14 @@ import java.util.Map;
|
||||
public class GitChangesetConverter implements Closeable
|
||||
{
|
||||
|
||||
/**
|
||||
* the logger for GitChangesetConverter
|
||||
*/
|
||||
private static final Logger logger =
|
||||
LoggerFactory.getLogger(GitChangesetConverter.class);
|
||||
|
||||
//~--- constructors ---------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
@@ -72,8 +84,23 @@ public class GitChangesetConverter implements Closeable
|
||||
*/
|
||||
public GitChangesetConverter(org.eclipse.jgit.lib.Repository repository,
|
||||
int idLength)
|
||||
{
|
||||
this(repository, null, idLength);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs ...
|
||||
*
|
||||
*
|
||||
* @param repository
|
||||
* @param revWalk
|
||||
* @param idLength
|
||||
*/
|
||||
public GitChangesetConverter(org.eclipse.jgit.lib.Repository repository,
|
||||
RevWalk revWalk, int idLength)
|
||||
{
|
||||
this.idLength = idLength;
|
||||
this.revWalk = revWalk;
|
||||
createTagMap(repository);
|
||||
treeWalk = new TreeWalk(repository);
|
||||
}
|
||||
@@ -195,7 +222,14 @@ public class GitChangesetConverter implements Closeable
|
||||
|
||||
if (commit.getParentCount() > 0)
|
||||
{
|
||||
RevTree tree = commit.getParent(0).getTree();
|
||||
RevCommit parent = commit.getParent(0);
|
||||
RevTree tree = parent.getTree();
|
||||
|
||||
if ((tree == null) && (revWalk != null))
|
||||
{
|
||||
revWalk.parseHeaders(parent);
|
||||
tree = parent.getTree();
|
||||
}
|
||||
|
||||
if (tree != null)
|
||||
{
|
||||
@@ -203,11 +237,21 @@ public class GitChangesetConverter implements Closeable
|
||||
}
|
||||
else
|
||||
{
|
||||
if (logger.isWarnEnabled())
|
||||
{
|
||||
logger.warn("no parent at position 0 for commit {}", commit);
|
||||
}
|
||||
|
||||
treeWalk.addTree(new EmptyTreeIterator());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (logger.isWarnEnabled())
|
||||
{
|
||||
logger.warn("no parent available for commit {}", commit);
|
||||
}
|
||||
|
||||
treeWalk.addTree(new EmptyTreeIterator());
|
||||
}
|
||||
|
||||
@@ -258,6 +302,9 @@ public class GitChangesetConverter implements Closeable
|
||||
/** Field description */
|
||||
private int idLength;
|
||||
|
||||
/** Field description */
|
||||
private RevWalk revWalk;
|
||||
|
||||
/** Field description */
|
||||
private Map<ObjectId, String> tags;
|
||||
|
||||
|
||||
@@ -40,6 +40,7 @@ import org.eclipse.jgit.api.errors.NoHeadException;
|
||||
import org.eclipse.jgit.lib.ObjectId;
|
||||
import org.eclipse.jgit.revwalk.RevCommit;
|
||||
import org.eclipse.jgit.revwalk.RevWalk;
|
||||
import org.eclipse.jgit.treewalk.TreeWalk;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -115,7 +116,7 @@ public class GitChangesetViewer implements ChangesetViewer
|
||||
|
||||
if (commit != null)
|
||||
{
|
||||
converter = new GitChangesetConverter(gr, GitUtil.ID_LENGTH);
|
||||
converter = new GitChangesetConverter(gr, revWalk, GitUtil.ID_LENGTH);
|
||||
changeset = converter.createChangeset(commit);
|
||||
}
|
||||
else if (logger.isWarnEnabled())
|
||||
|
||||
Reference in New Issue
Block a user