List of usage examples for org.eclipse.jgit.lib Repository peel
@Deprecated
@NonNull
public Ref peel(Ref ref)
From source file:com.github.checkstyle.github.NotesBuilder.java
License:Open Source License
/** * Returns actual SHA-1 object by commit reference. * @param repo git repository.//from w w w .j a v a 2 s . c om * @param ref string representation of commit reference. * @return actual SHA-1 object. * @throws IOException if an I/O error occurs. */ private static ObjectId getActualRefObjectId(Repository repo, String ref) throws IOException { final ObjectId actualObjectId; final Ref referenceObj = repo.findRef(ref); if (referenceObj == null) { actualObjectId = repo.resolve(ref); } else { final Ref repoPeeled = repo.peel(referenceObj); actualObjectId = Optional.ofNullable(repoPeeled.getPeeledObjectId()).orElse(referenceObj.getObjectId()); } return actualObjectId; }
From source file:com.github.checkstyle.NotesBuilder.java
License:Open Source License
/** * Returns actual SHA-1 object by commit reference. * @param repo git repository.//from ww w .ja v a 2s. c om * @param ref string representation of commit reference. * @return actual SHA-1 object. * @throws IOException if an I/O error occurs. */ private static ObjectId getActualRefObjectId(Repository repo, String ref) throws IOException { final ObjectId actualObjectId; final Ref referenceObj = repo.getRef(ref); if (referenceObj == null) { actualObjectId = repo.resolve(ref); } else { final Ref repoPeeled = repo.peel(referenceObj); actualObjectId = Optional.ofNullable(repoPeeled.getPeeledObjectId()).orElse(referenceObj.getObjectId()); } return actualObjectId; }
From source file:com.google.gerrit.server.git.TagSet.java
License:Apache License
void build(Repository git, TagSet old, TagMatcher m) { if (old != null && m != null && refresh(old, m)) { return;/*from w ww . j a v a 2 s. co m*/ } try (TagWalk rw = new TagWalk(git)) { rw.setRetainBody(false); for (Ref ref : git.getRefDatabase().getRefs(RefDatabase.ALL).values()) { if (skip(ref)) { continue; } else if (isTag(ref)) { // For a tag, remember where it points to. addTag(rw, git.peel(ref)); } else { // New reference to include in the set. addRef(rw, ref); } } // Traverse the complete history. Copy any flags from a commit to // all of its ancestors. This automatically updates any Tag object // as the TagCommit and the stored Tag object share the same // underlying bit set. TagCommit c; while ((c = (TagCommit) rw.next()) != null) { BitSet mine = c.refFlags; int pCnt = c.getParentCount(); for (int pIdx = 0; pIdx < pCnt; pIdx++) { ((TagCommit) c.getParent(pIdx)).refFlags.or(mine); } } } catch (IOException e) { log.warn("Error building tags for repository " + projectName, e); } }
From source file:jbyoshi.gitupdate.processor.FastForward.java
License:Apache License
private static boolean tryFastForward(Repository repo, Ref ref, Ref target, Report report) throws GitAPIException, IOException { if (ref == null || target == null) { return false; }/* www . java 2 s . c om*/ target = repo.peel(target); if (!ref.equals(repo.getRef(Constants.HEAD).getTarget())) { try (RevWalk revWalk = new RevWalk(repo)) { ObjectId targetId = target.getPeeledObjectId(); if (targetId == null) { targetId = target.getObjectId(); } RevCommit targetCommit = revWalk.lookupCommit(targetId); ObjectId sourceId = ref.getObjectId(); RevCommit sourceCommit = revWalk.lookupCommit(sourceId); if (revWalk.isMergedInto(sourceCommit, targetCommit)) { RefUpdate refUpdate = repo.updateRef(ref.getName()); refUpdate.setNewObjectId(targetCommit); refUpdate.setRefLogMessage("Fast forward", false); refUpdate.setExpectedOldObjectId(sourceId); Result rc = refUpdate.update(); switch (rc) { case NEW: case FAST_FORWARD: report.newChild(ref.getName() + " -> " + target.getName()).modified(); return true; case REJECTED: case LOCK_FAILURE: report.newErrorChild(new ConcurrentRefUpdateException(JGitText.get().couldNotLockHEAD, refUpdate.getRef(), rc)); break; case NO_CHANGE: break; default: report.newErrorChild(new JGitInternalException(MessageFormat .format(JGitText.get().updatingRefFailed, ref.getName(), targetId.toString(), rc))); break; } } return false; } } try { MergeResult result = Git.wrap(repo).merge().setFastForward(MergeCommand.FastForwardMode.FF_ONLY) .include(target.getTarget()).call(); if (result.getMergeStatus() == MergeResult.MergeStatus.ALREADY_UP_TO_DATE) { // Ignore } else if (result.getMergeStatus() == MergeResult.MergeStatus.FAST_FORWARD) { report.newChild("Fast-forwarded " + ref.getName() + " to " + target.getName()).modified(); return true; } else { report.newChild("Fast-forward failed: status " + result.getMergeStatus()).error(); } } catch (NoHeadException e) { // Ignore } return false; }
From source file:org.eclipse.egit.ui.internal.commit.CommitEditorPage.java
License:Open Source License
private List<Ref> loadTags() { RepositoryCommit repoCommit = getCommit(); RevCommit commit = repoCommit.getRevCommit(); Repository repository = repoCommit.getRepository(); List<Ref> tags = new ArrayList<Ref>(); for (Ref tag : getTags()) { tag = repository.peel(tag); ObjectId id = tag.getPeeledObjectId(); if (id == null) id = tag.getObjectId();//from w w w. j a v a2 s . c o m if (!commit.equals(id)) continue; tags.add(tag); } return tags; }
From source file:org.repodriller.scm.GitRepository.java
License:Apache License
private ObjectId getActualRefObjectId(Ref ref, Repository repo) { final Ref repoPeeled = repo.peel(ref); if (repoPeeled.getPeeledObjectId() != null) { return repoPeeled.getPeeledObjectId(); }//from w w w. jav a 2 s .co m return ref.getObjectId(); }