Refactor out ReflogEntry
It's useful to have ReflogEntry refactored out so it can be used by clients via the JGit API. Change-Id: I03044df9af9f9547777545b7c9b93bdf5f8b7cb5 Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
This commit is contained in:
parent
b19924f150
commit
65606dc086
|
@ -89,6 +89,7 @@
|
||||||
import org.eclipse.jgit.lib.Repository;
|
import org.eclipse.jgit.lib.Repository;
|
||||||
import org.eclipse.jgit.revwalk.RevBlob;
|
import org.eclipse.jgit.revwalk.RevBlob;
|
||||||
import org.eclipse.jgit.revwalk.RevCommit;
|
import org.eclipse.jgit.revwalk.RevCommit;
|
||||||
|
import org.eclipse.jgit.storage.file.ReflogEntry;
|
||||||
import org.eclipse.jgit.storage.file.FileBasedConfig;
|
import org.eclipse.jgit.storage.file.FileBasedConfig;
|
||||||
import org.eclipse.jgit.storage.file.FileRepository;
|
import org.eclipse.jgit.storage.file.FileRepository;
|
||||||
import org.eclipse.jgit.storage.file.ReflogReader;
|
import org.eclipse.jgit.storage.file.ReflogReader;
|
||||||
|
@ -558,7 +559,7 @@ public void testPush_CreateBranch() throws Exception {
|
||||||
final ReflogReader log = remoteRepository.getReflogReader(dstName);
|
final ReflogReader log = remoteRepository.getReflogReader(dstName);
|
||||||
assertNotNull("has log for " + dstName);
|
assertNotNull("has log for " + dstName);
|
||||||
|
|
||||||
final ReflogReader.Entry last = log.getLastEntry();
|
final ReflogEntry last = log.getLastEntry();
|
||||||
assertNotNull("has last entry", last);
|
assertNotNull("has last entry", last);
|
||||||
assertEquals(ObjectId.zeroId(), last.getOldId());
|
assertEquals(ObjectId.zeroId(), last.getOldId());
|
||||||
assertEquals(Q, last.getNewId());
|
assertEquals(Q, last.getNewId());
|
||||||
|
|
|
@ -121,14 +121,14 @@ public void testNoCacheObjectIdSubclass() throws IOException {
|
||||||
assertNotSame(newid, r.getObjectId());
|
assertNotSame(newid, r.getObjectId());
|
||||||
assertSame(ObjectId.class, r.getObjectId().getClass());
|
assertSame(ObjectId.class, r.getObjectId().getClass());
|
||||||
assertEquals(newid, r.getObjectId());
|
assertEquals(newid, r.getObjectId());
|
||||||
List<org.eclipse.jgit.storage.file.ReflogReader.Entry> reverseEntries1 = db.getReflogReader("refs/heads/abc").getReverseEntries();
|
List<org.eclipse.jgit.storage.file.ReflogEntry> reverseEntries1 = db.getReflogReader("refs/heads/abc").getReverseEntries();
|
||||||
org.eclipse.jgit.storage.file.ReflogReader.Entry entry1 = reverseEntries1.get(0);
|
org.eclipse.jgit.storage.file.ReflogEntry entry1 = reverseEntries1.get(0);
|
||||||
assertEquals(1, reverseEntries1.size());
|
assertEquals(1, reverseEntries1.size());
|
||||||
assertEquals(ObjectId.zeroId(), entry1.getOldId());
|
assertEquals(ObjectId.zeroId(), entry1.getOldId());
|
||||||
assertEquals(r.getObjectId(), entry1.getNewId());
|
assertEquals(r.getObjectId(), entry1.getNewId());
|
||||||
assertEquals(new PersonIdent(db).toString(), entry1.getWho().toString());
|
assertEquals(new PersonIdent(db).toString(), entry1.getWho().toString());
|
||||||
assertEquals("", entry1.getComment());
|
assertEquals("", entry1.getComment());
|
||||||
List<org.eclipse.jgit.storage.file.ReflogReader.Entry> reverseEntries2 = db.getReflogReader("HEAD").getReverseEntries();
|
List<org.eclipse.jgit.storage.file.ReflogEntry> reverseEntries2 = db.getReflogReader("HEAD").getReverseEntries();
|
||||||
assertEquals(0, reverseEntries2.size());
|
assertEquals(0, reverseEntries2.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -334,7 +334,7 @@ public void testUpdateRefDetached() throws Exception {
|
||||||
// the branch HEAD referred to is left untouched
|
// the branch HEAD referred to is left untouched
|
||||||
assertEquals(pid, db.resolve("refs/heads/master"));
|
assertEquals(pid, db.resolve("refs/heads/master"));
|
||||||
ReflogReader reflogReader = new ReflogReader(db, "HEAD");
|
ReflogReader reflogReader = new ReflogReader(db, "HEAD");
|
||||||
org.eclipse.jgit.storage.file.ReflogReader.Entry e = reflogReader.getReverseEntries().get(0);
|
org.eclipse.jgit.storage.file.ReflogEntry e = reflogReader.getReverseEntries().get(0);
|
||||||
assertEquals(pid, e.getOldId());
|
assertEquals(pid, e.getOldId());
|
||||||
assertEquals(ppid, e.getNewId());
|
assertEquals(ppid, e.getNewId());
|
||||||
assertEquals("GIT_COMMITTER_EMAIL", e.getWho().getEmailAddress());
|
assertEquals("GIT_COMMITTER_EMAIL", e.getWho().getEmailAddress());
|
||||||
|
@ -364,7 +364,7 @@ public void testUpdateRefDetachedUnbornHead() throws Exception {
|
||||||
// the branch HEAD referred to is left untouched
|
// the branch HEAD referred to is left untouched
|
||||||
assertNull(db.resolve("refs/heads/unborn"));
|
assertNull(db.resolve("refs/heads/unborn"));
|
||||||
ReflogReader reflogReader = new ReflogReader(db, "HEAD");
|
ReflogReader reflogReader = new ReflogReader(db, "HEAD");
|
||||||
org.eclipse.jgit.storage.file.ReflogReader.Entry e = reflogReader.getReverseEntries().get(0);
|
org.eclipse.jgit.storage.file.ReflogEntry e = reflogReader.getReverseEntries().get(0);
|
||||||
assertEquals(ObjectId.zeroId(), e.getOldId());
|
assertEquals(ObjectId.zeroId(), e.getOldId());
|
||||||
assertEquals(ppid, e.getNewId());
|
assertEquals(ppid, e.getNewId());
|
||||||
assertEquals("GIT_COMMITTER_EMAIL", e.getWho().getEmailAddress());
|
assertEquals("GIT_COMMITTER_EMAIL", e.getWho().getEmailAddress());
|
||||||
|
@ -701,9 +701,9 @@ public void tryRenameWhenLocked(String toLock, String fromName,
|
||||||
ObjectId oldHeadId = db.resolve(Constants.HEAD);
|
ObjectId oldHeadId = db.resolve(Constants.HEAD);
|
||||||
writeReflog(db, oldfromId, oldfromId, "Just a message",
|
writeReflog(db, oldfromId, oldfromId, "Just a message",
|
||||||
fromName);
|
fromName);
|
||||||
List<org.eclipse.jgit.storage.file.ReflogReader.Entry> oldFromLog = db
|
List<org.eclipse.jgit.storage.file.ReflogEntry> oldFromLog = db
|
||||||
.getReflogReader(fromName).getReverseEntries();
|
.getReflogReader(fromName).getReverseEntries();
|
||||||
List<org.eclipse.jgit.storage.file.ReflogReader.Entry> oldHeadLog = oldHeadId != null ? db
|
List<org.eclipse.jgit.storage.file.ReflogEntry> oldHeadLog = oldHeadId != null ? db
|
||||||
.getReflogReader(Constants.HEAD).getReverseEntries() : null;
|
.getReflogReader(Constants.HEAD).getReverseEntries() : null;
|
||||||
|
|
||||||
assertTrue("internal check, we have a log", new File(db.getDirectory(),
|
assertTrue("internal check, we have a log", new File(db.getDirectory(),
|
||||||
|
|
|
@ -57,7 +57,6 @@
|
||||||
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.SampleDataRepositoryTestCase;
|
import org.eclipse.jgit.lib.SampleDataRepositoryTestCase;
|
||||||
import org.eclipse.jgit.storage.file.ReflogReader.Entry;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
public class ReflogReaderTest extends SampleDataRepositoryTestCase {
|
public class ReflogReaderTest extends SampleDataRepositoryTestCase {
|
||||||
|
@ -91,7 +90,7 @@ public void testReadOneLine() throws Exception {
|
||||||
setupReflog("logs/refs/heads/master", oneLine);
|
setupReflog("logs/refs/heads/master", oneLine);
|
||||||
|
|
||||||
ReflogReader reader = new ReflogReader(db, "refs/heads/master");
|
ReflogReader reader = new ReflogReader(db, "refs/heads/master");
|
||||||
Entry e = reader.getLastEntry();
|
ReflogEntry e = reader.getLastEntry();
|
||||||
assertEquals(ObjectId
|
assertEquals(ObjectId
|
||||||
.fromString("da85355dfc525c9f6f3927b876f379f46ccf826e"), e
|
.fromString("da85355dfc525c9f6f3927b876f379f46ccf826e"), e
|
||||||
.getOldId());
|
.getOldId());
|
||||||
|
@ -118,9 +117,9 @@ public void testReadTwoLine() throws Exception {
|
||||||
setupReflog("logs/refs/heads/master", twoLine);
|
setupReflog("logs/refs/heads/master", twoLine);
|
||||||
|
|
||||||
ReflogReader reader = new ReflogReader(db, "refs/heads/master");
|
ReflogReader reader = new ReflogReader(db, "refs/heads/master");
|
||||||
List<Entry> reverseEntries = reader.getReverseEntries();
|
List<ReflogEntry> reverseEntries = reader.getReverseEntries();
|
||||||
assertEquals(2, reverseEntries.size());
|
assertEquals(2, reverseEntries.size());
|
||||||
Entry e = reverseEntries.get(0);
|
ReflogEntry e = reverseEntries.get(0);
|
||||||
assertEquals(ObjectId
|
assertEquals(ObjectId
|
||||||
.fromString("c6734895958052a9dbc396cff4459dc1a25029ab"), e
|
.fromString("c6734895958052a9dbc396cff4459dc1a25029ab"), e
|
||||||
.getOldId());
|
.getOldId());
|
||||||
|
@ -153,9 +152,9 @@ public void testReadTwoLine() throws Exception {
|
||||||
public void testReadWhileAppendIsInProgress() throws Exception {
|
public void testReadWhileAppendIsInProgress() throws Exception {
|
||||||
setupReflog("logs/refs/heads/master", twoLineWithAppendInProgress);
|
setupReflog("logs/refs/heads/master", twoLineWithAppendInProgress);
|
||||||
ReflogReader reader = new ReflogReader(db, "refs/heads/master");
|
ReflogReader reader = new ReflogReader(db, "refs/heads/master");
|
||||||
List<Entry> reverseEntries = reader.getReverseEntries();
|
List<ReflogEntry> reverseEntries = reader.getReverseEntries();
|
||||||
assertEquals(2, reverseEntries.size());
|
assertEquals(2, reverseEntries.size());
|
||||||
Entry e = reverseEntries.get(0);
|
ReflogEntry e = reverseEntries.get(0);
|
||||||
assertEquals(ObjectId
|
assertEquals(ObjectId
|
||||||
.fromString("c6734895958052a9dbc396cff4459dc1a25029ab"), e
|
.fromString("c6734895958052a9dbc396cff4459dc1a25029ab"), e
|
||||||
.getOldId());
|
.getOldId());
|
||||||
|
@ -191,7 +190,7 @@ public void testReadRightLog() throws Exception {
|
||||||
public void testReadLineWithMissingComment() throws Exception {
|
public void testReadLineWithMissingComment() throws Exception {
|
||||||
setupReflog("logs/refs/heads/master", oneLineWithoutComment);
|
setupReflog("logs/refs/heads/master", oneLineWithoutComment);
|
||||||
final ReflogReader reader = db.getReflogReader("master");
|
final ReflogReader reader = db.getReflogReader("master");
|
||||||
Entry e = reader.getLastEntry();
|
ReflogEntry e = reader.getLastEntry();
|
||||||
assertEquals(ObjectId
|
assertEquals(ObjectId
|
||||||
.fromString("da85355dfc525c9f6f3927b876f379f46ccf826e"), e
|
.fromString("da85355dfc525c9f6f3927b876f379f46ccf826e"), e
|
||||||
.getOldId());
|
.getOldId());
|
||||||
|
|
|
@ -0,0 +1,120 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2011, Chris Aniszczyk <caniszczyk@gmail.com>
|
||||||
|
* Copyright (C) 2009, Robin Rosenberg <robin.rosenberg@dewire.com>
|
||||||
|
* and other copyright owners as documented in the project's IP log.
|
||||||
|
*
|
||||||
|
* This program and the accompanying materials are made available
|
||||||
|
* under the terms of the Eclipse Distribution License v1.0 which
|
||||||
|
* accompanies this distribution, is reproduced below, and is
|
||||||
|
* available at http://www.eclipse.org/org/documents/edl-v10.php
|
||||||
|
*
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or
|
||||||
|
* without modification, are permitted provided that the following
|
||||||
|
* conditions are met:
|
||||||
|
*
|
||||||
|
* - Redistributions of source code must retain the above copyright
|
||||||
|
* notice, this list of conditions and the following disclaimer.
|
||||||
|
*
|
||||||
|
* - Redistributions in binary form must reproduce the above
|
||||||
|
* copyright notice, this list of conditions and the following
|
||||||
|
* disclaimer in the documentation and/or other materials provided
|
||||||
|
* with the distribution.
|
||||||
|
*
|
||||||
|
* - Neither the name of the Eclipse Foundation, Inc. nor the
|
||||||
|
* names of its contributors may be used to endorse or promote
|
||||||
|
* products derived from this software without specific prior
|
||||||
|
* written permission.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
||||||
|
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
||||||
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
||||||
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
||||||
|
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||||
|
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.eclipse.jgit.storage.file;
|
||||||
|
|
||||||
|
import org.eclipse.jgit.JGitText;
|
||||||
|
import org.eclipse.jgit.lib.Constants;
|
||||||
|
import org.eclipse.jgit.lib.ObjectId;
|
||||||
|
import org.eclipse.jgit.lib.PersonIdent;
|
||||||
|
import org.eclipse.jgit.util.RawParseUtils;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parsed reflog entry
|
||||||
|
*/
|
||||||
|
public class ReflogEntry {
|
||||||
|
private ObjectId oldId;
|
||||||
|
|
||||||
|
private ObjectId newId;
|
||||||
|
|
||||||
|
private PersonIdent who;
|
||||||
|
|
||||||
|
private String comment;
|
||||||
|
|
||||||
|
ReflogEntry(byte[] raw, int pos) {
|
||||||
|
oldId = ObjectId.fromString(raw, pos);
|
||||||
|
pos += Constants.OBJECT_ID_STRING_LENGTH;
|
||||||
|
if (raw[pos++] != ' ')
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
JGitText.get().rawLogMessageDoesNotParseAsLogEntry);
|
||||||
|
newId = ObjectId.fromString(raw, pos);
|
||||||
|
pos += Constants.OBJECT_ID_STRING_LENGTH;
|
||||||
|
if (raw[pos++] != ' ') {
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
JGitText.get().rawLogMessageDoesNotParseAsLogEntry);
|
||||||
|
}
|
||||||
|
who = RawParseUtils.parsePersonIdentOnly(raw, pos);
|
||||||
|
int p0 = RawParseUtils.next(raw, pos, '\t');
|
||||||
|
if (p0 >= raw.length)
|
||||||
|
comment = ""; // personident has no \t, no comment present
|
||||||
|
else {
|
||||||
|
int p1 = RawParseUtils.nextLF(raw, p0);
|
||||||
|
comment = p1 > p0 ? RawParseUtils.decode(raw, p0, p1 - 1) : "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the commit id before the change
|
||||||
|
*/
|
||||||
|
public ObjectId getOldId() {
|
||||||
|
return oldId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the commit id after the change
|
||||||
|
*/
|
||||||
|
public ObjectId getNewId() {
|
||||||
|
return newId;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return user performin the change
|
||||||
|
*/
|
||||||
|
public PersonIdent getWho() {
|
||||||
|
return who;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return textual description of the change
|
||||||
|
*/
|
||||||
|
public String getComment() {
|
||||||
|
return comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Entry[" + oldId.name() + ", " + newId.name() + ", " + getWho() + ", "
|
||||||
|
+ getComment() + "]";
|
||||||
|
}
|
||||||
|
}
|
|
@ -51,10 +51,6 @@
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.eclipse.jgit.JGitText;
|
|
||||||
import org.eclipse.jgit.lib.Constants;
|
|
||||||
import org.eclipse.jgit.lib.ObjectId;
|
|
||||||
import org.eclipse.jgit.lib.PersonIdent;
|
|
||||||
import org.eclipse.jgit.lib.Repository;
|
import org.eclipse.jgit.lib.Repository;
|
||||||
import org.eclipse.jgit.util.IO;
|
import org.eclipse.jgit.util.IO;
|
||||||
import org.eclipse.jgit.util.RawParseUtils;
|
import org.eclipse.jgit.util.RawParseUtils;
|
||||||
|
@ -63,78 +59,13 @@
|
||||||
* Utility for reading reflog entries
|
* Utility for reading reflog entries
|
||||||
*/
|
*/
|
||||||
public class ReflogReader {
|
public class ReflogReader {
|
||||||
/**
|
|
||||||
* Parsed reflog entry
|
|
||||||
*/
|
|
||||||
static public class Entry {
|
|
||||||
private ObjectId oldId;
|
|
||||||
|
|
||||||
private ObjectId newId;
|
|
||||||
|
|
||||||
private PersonIdent who;
|
|
||||||
|
|
||||||
private String comment;
|
|
||||||
|
|
||||||
Entry(byte[] raw, int pos) {
|
|
||||||
oldId = ObjectId.fromString(raw, pos);
|
|
||||||
pos += Constants.OBJECT_ID_STRING_LENGTH;
|
|
||||||
if (raw[pos++] != ' ')
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
JGitText.get().rawLogMessageDoesNotParseAsLogEntry);
|
|
||||||
newId = ObjectId.fromString(raw, pos);
|
|
||||||
pos += Constants.OBJECT_ID_STRING_LENGTH;
|
|
||||||
if (raw[pos++] != ' ') {
|
|
||||||
throw new IllegalArgumentException(
|
|
||||||
JGitText.get().rawLogMessageDoesNotParseAsLogEntry);
|
|
||||||
}
|
|
||||||
who = RawParseUtils.parsePersonIdentOnly(raw, pos);
|
|
||||||
int p0 = RawParseUtils.next(raw, pos, '\t');
|
|
||||||
if (p0 >= raw.length)
|
|
||||||
comment = ""; // personident has no \t, no comment present
|
|
||||||
else {
|
|
||||||
int p1 = RawParseUtils.nextLF(raw, p0);
|
|
||||||
comment = p1 > p0 ? RawParseUtils.decode(raw, p0, p1 - 1) : "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the commit id before the change
|
|
||||||
*/
|
|
||||||
public ObjectId getOldId() {
|
|
||||||
return oldId;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return the commit id after the change
|
|
||||||
*/
|
|
||||||
public ObjectId getNewId() {
|
|
||||||
return newId;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return user performin the change
|
|
||||||
*/
|
|
||||||
public PersonIdent getWho() {
|
|
||||||
return who;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return textual description of the change
|
|
||||||
*/
|
|
||||||
public String getComment() {
|
|
||||||
return comment;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Entry[" + oldId.name() + ", " + newId.name() + ", " + getWho() + ", "
|
|
||||||
+ getComment() + "]";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private File logName;
|
private File logName;
|
||||||
|
|
||||||
ReflogReader(Repository db, String refname) {
|
/**
|
||||||
|
* @param db
|
||||||
|
* @param refname
|
||||||
|
*/
|
||||||
|
public ReflogReader(Repository db, String refname) {
|
||||||
logName = new File(db.getDirectory(), "logs/" + refname);
|
logName = new File(db.getDirectory(), "logs/" + refname);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,8 +75,8 @@ public String toString() {
|
||||||
* @return the latest reflog entry, or null if no log
|
* @return the latest reflog entry, or null if no log
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public Entry getLastEntry() throws IOException {
|
public ReflogEntry getLastEntry() throws IOException {
|
||||||
List<Entry> entries = getReverseEntries(1);
|
List<ReflogEntry> entries = getReverseEntries(1);
|
||||||
return entries.size() > 0 ? entries.get(0) : null;
|
return entries.size() > 0 ? entries.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,7 +84,7 @@ public Entry getLastEntry() throws IOException {
|
||||||
* @return all reflog entries in reverse order
|
* @return all reflog entries in reverse order
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public List<Entry> getReverseEntries() throws IOException {
|
public List<ReflogEntry> getReverseEntries() throws IOException {
|
||||||
return getReverseEntries(Integer.MAX_VALUE);
|
return getReverseEntries(Integer.MAX_VALUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,7 +94,7 @@ public List<Entry> getReverseEntries() throws IOException {
|
||||||
* @return all reflog entries in reverse order
|
* @return all reflog entries in reverse order
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public List<Entry> getReverseEntries(int max) throws IOException {
|
public List<ReflogEntry> getReverseEntries(int max) throws IOException {
|
||||||
final byte[] log;
|
final byte[] log;
|
||||||
try {
|
try {
|
||||||
log = IO.readFully(logName);
|
log = IO.readFully(logName);
|
||||||
|
@ -172,10 +103,10 @@ public List<Entry> getReverseEntries(int max) throws IOException {
|
||||||
}
|
}
|
||||||
|
|
||||||
int rs = RawParseUtils.prevLF(log, log.length);
|
int rs = RawParseUtils.prevLF(log, log.length);
|
||||||
List<Entry> ret = new ArrayList<Entry>();
|
List<ReflogEntry> ret = new ArrayList<ReflogEntry>();
|
||||||
while (rs >= 0 && max-- > 0) {
|
while (rs >= 0 && max-- > 0) {
|
||||||
rs = RawParseUtils.prevLF(log, rs);
|
rs = RawParseUtils.prevLF(log, rs);
|
||||||
Entry entry = new Entry(log, rs < 0 ? 0 : rs + 2);
|
ReflogEntry entry = new ReflogEntry(log, rs < 0 ? 0 : rs + 2);
|
||||||
ret.add(entry);
|
ret.add(entry);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue