public static ArrayMemory valueOf(ReflogEntry value) { ArrayMemory memory = new ArrayMemory(); memory.refOfIndex("newId").assign(valueOf(value.getNewId())); memory.refOfIndex("oldId").assign(valueOf(value.getOldId())); memory.refOfIndex("who").assign(value.getWho() == null ? Memory.NULL : valueOf(value.getWho())); memory.refOfIndex("comment").assign(value.getComment()); return memory; }
/** * Write the given entry to the ref's log. * * @param refName * a {@link java.lang.String} object. * @param entry * a {@link org.eclipse.jgit.lib.ReflogEntry} object. * @return this writer * @throws java.io.IOException */ public ReflogWriter log(String refName, ReflogEntry entry) throws IOException { return log(refName, entry.getOldId(), entry.getNewId(), entry.getWho(), entry.getComment()); }
/** * @param ref * the ref which log should be inspected * @param minTime only reflog entries not older then this time are processed * @return the {@link ObjectId}s contained in the reflog * @throws IOException */ private Set<ObjectId> listRefLogObjects(Ref ref, long minTime) throws IOException { ReflogReader reflogReader = repo.getReflogReader(ref.getName()); if (reflogReader == null) { return Collections.emptySet(); } List<ReflogEntry> rlEntries = reflogReader .getReverseEntries(); if (rlEntries == null || rlEntries.isEmpty()) return Collections.emptySet(); Set<ObjectId> ret = new HashSet<>(); for (ReflogEntry e : rlEntries) { if (e.getWho().getWhen().getTime() < minTime) break; ObjectId newId = e.getNewId(); if (newId != null && !ObjectId.zeroId().equals(newId)) ret.add(newId); ObjectId oldId = e.getOldId(); if (oldId != null && !ObjectId.zeroId().equals(oldId)) ret.add(oldId); } return ret; }
private RevCommit resolveReflog(RevWalk rw, Ref ref, String time) throws IOException { int number; try { number = Integer.parseInt(time); } catch (NumberFormatException nfe) { throw new RevisionSyntaxException(MessageFormat.format( JGitText.get().invalidReflogRevision, time)); } assert number >= 0; ReflogReader reader = getReflogReader(ref.getName()); if (reader == null) { throw new RevisionSyntaxException( MessageFormat.format(JGitText.get().reflogEntryNotFound, Integer.valueOf(number), ref.getName())); } ReflogEntry entry = reader.getReverseEntry(number); if (entry == null) throw new RevisionSyntaxException(MessageFormat.format( JGitText.get().reflogEntryNotFound, Integer.valueOf(number), ref.getName())); return rw.parseCommit(entry.getNewId()); }
who, log.getOldId(), log.getNewId(), log.getComment());
@Override public String getToolTipText(Object element) { final ReflogEntry entry = (ReflogEntry) element; return entry.getNewId().name(); }
@Nonnull public static List<RevCommit> listStashes(Repository repo) throws IOException { List<RevCommit> ret = new ArrayList<>(); List<ReflogEntry> logs = RefUtils.getRefLogs(R_STASH, Integer.MAX_VALUE, repo); try(RevWalk rw = new RevWalk(repo)) { for(ReflogEntry log : logs) ret.add(rw.parseCommit(log.getNewId())); } return unmodifiableList(ret); }
private String toString(ReflogEntry entry, int i) { final StringBuilder s = new StringBuilder(); s.append(entry.getNewId().abbreviate(7).name()); s.append(" "); //$NON-NLS-1$ s.append(ref == null ? Constants.HEAD : Repository.shortenRefName(ref)); s.append("@{" + i + "}:"); //$NON-NLS-1$ //$NON-NLS-2$ s.append(" "); //$NON-NLS-1$ s.append(entry.getComment()); return s.toString(); } }
@Nonnull public static List<RevCommit> listStashes(Repository repo) throws IOException { List<RevCommit> ret = new ArrayList<>(); List<ReflogEntry> logs = RefUtils.getRefLogs(R_STASH, Integer.MAX_VALUE, repo); try(RevWalk rw = new RevWalk(repo)) { for(ReflogEntry log : logs) ret.add(rw.parseCommit(log.getNewId())); } return unmodifiableList(ret); }
@Override public String getText(Object element) { final ReflogEntry entry = (ReflogEntry) element; return entry.getNewId().abbreviate(7).name(); }
/** * Write the given {@link ReflogEntry} entry to the ref's log * * @param refName * * @param entry * @return this writer * @throws IOException */ public ReflogWriter log(final String refName, final ReflogEntry entry) throws IOException { return log(refName, entry.getOldId(), entry.getNewId(), entry.getWho(), entry.getComment()); }
/** * Write the given entry to the ref's log. * * @param refName * a {@link java.lang.String} object. * @param entry * a {@link org.eclipse.jgit.lib.ReflogEntry} object. * @return this writer * @throws java.io.IOException */ public ReflogWriter log(String refName, ReflogEntry entry) throws IOException { return log(refName, entry.getOldId(), entry.getNewId(), entry.getWho(), entry.getComment()); }
private RevCommit resolveReflog(RevWalk rw, Ref ref, String time) throws IOException { int number; try { number = Integer.parseInt(time); } catch (NumberFormatException nfe) { throw new RevisionSyntaxException(MessageFormat.format( JGitText.get().invalidReflogRevision, time)); } assert number >= 0; ReflogReader reader = getReflogReader(ref.getName()); if (reader == null) { throw new RevisionSyntaxException( MessageFormat.format(JGitText.get().reflogEntryNotFound, Integer.valueOf(number), ref.getName())); } ReflogEntry entry = reader.getReverseEntry(number); if (entry == null) throw new RevisionSyntaxException(MessageFormat.format( JGitText.get().reflogEntryNotFound, Integer.valueOf(number), ref.getName())); return rw.parseCommit(entry.getNewId()); }
private RevCommit resolveReflog(RevWalk rw, Ref ref, String time) throws IOException { int number; try { number = Integer.parseInt(time); } catch (NumberFormatException nfe) { throw new RevisionSyntaxException(MessageFormat.format( JGitText.get().invalidReflogRevision, time)); } assert number >= 0; ReflogReader reader = getReflogReader(ref.getName()); if (reader == null) { throw new RevisionSyntaxException( MessageFormat.format(JGitText.get().reflogEntryNotFound, Integer.valueOf(number), ref.getName())); } ReflogEntry entry = reader.getReverseEntry(number); if (entry == null) throw new RevisionSyntaxException(MessageFormat.format( JGitText.get().reflogEntryNotFound, Integer.valueOf(number), ref.getName())); return rw.parseCommit(entry.getNewId()); }
private RevCommit getCommit(final ReflogEntry entry) { RevWalk walk = new RevWalk(getRepository()); walk.setRetainBody(true); RevCommit c = null; try { c = walk.parseCommit(entry.getNewId()); } catch (IOException ignored) { // ignore } finally { walk.release(); } return c; } });
/** * @param event * @param repo * @return commit selected in Reflog View * @throws ExecutionException */ protected RevCommit getSelectedCommit(ExecutionEvent event, Repository repo) throws ExecutionException { ReflogEntry entry = (ReflogEntry) ((IStructuredSelection) HandlerUtil .getCurrentSelectionChecked(event)).getFirstElement(); if (entry == null) return null; RevCommit commit = null; RevWalk w = new RevWalk(repo); try { commit = w.parseCommit(entry.getNewId()); } catch (IOException e) { throw new ExecutionException(e.getMessage(), e); } finally { w.release(); } return commit; } }
@Test public void getLastLog_theResultShouldReferenceToTheLastCommitCreated() throws IOException { writeSomethingToCache(); AnyObjectId firstCommit = commitToBranch("test_branch", "first commit", null); AnyObjectId secondLastCommit = commitToBranch("test_branch", "second commit", firstCommit); AnyObjectId lastCommit = commitToBranch("test_branch", "third commit", secondLastCommit); ReflogEntry lastRefLog = BranchUtils.getLastLog("test_branch", repo); assert lastRefLog != null; assertEquals(lastCommit, lastRefLog.getNewId()); }
private void handleOpen(ISelection selection, boolean activateOnOpen) { if (selection instanceof IStructuredSelection) if (selection.isEmpty()) return; Repository repo = getRepository(); if (repo == null) return; RevWalk walk = new RevWalk(repo); try { for (Object element : ((IStructuredSelection)selection).toArray()) { ReflogEntry entry = (ReflogEntry) element; ObjectId id = entry.getNewId(); if (id == null || id.equals(ObjectId.zeroId())) id = entry.getOldId(); if (id != null && !id.equals(ObjectId.zeroId())) CommitEditor.openQuiet(new RepositoryCommit(repo, walk.parseCommit(id)), activateOnOpen); } } catch (IOException e) { Activator.logError(UIText.ReflogView_ErrorOnOpenCommit, e); } finally { walk.release(); } } };