List of usage examples for org.eclipse.jgit.lib ObjectId toString
public static final String toString(ObjectId i)
From source file:com.google.gitiles.CommitSoyData.java
License:Open Source License
public Map<String, Object> toSoyData(RevCommit commit, KeySet keys) throws IOException { Map<String, Object> data = Maps.newHashMapWithExpectedSize(KeySet.DEFAULT.keys.size()); if (keys.keys.contains("author")) { data.put("author", toSoyData(commit.getAuthorIdent(), dateFormatter)); }//www. j a v a2s . c om if (keys.keys.contains("committer")) { data.put("committer", toSoyData(commit.getCommitterIdent(), dateFormatter)); } if (keys.keys.contains("sha")) { data.put("sha", ObjectId.toString(commit)); } if (keys.keys.contains("abbrevSha")) { ObjectReader reader = repo.getObjectDatabase().newReader(); try { data.put("abbrevSha", reader.abbreviate(commit).name()); } finally { reader.release(); } } if (keys.keys.contains("url")) { data.put("url", GitilesView.revision().copyFrom(view).setRevision(commit).toUrl()); } if (keys.keys.contains("logUrl")) { Revision rev = view.getRevision(); GitilesView.Builder logView = GitilesView.log().copyFrom(view) .setRevision(rev.getId().equals(commit) ? rev.getName() : commit.name(), commit) .setOldRevision(Revision.NULL).setTreePath(null); data.put("logUrl", logView.toUrl()); } if (keys.keys.contains("tree")) { data.put("tree", ObjectId.toString(commit.getTree())); } if (keys.keys.contains("treeUrl")) { data.put("treeUrl", GitilesView.path().copyFrom(view).setTreePath("/").toUrl()); } if (keys.keys.contains("parents")) { data.put("parents", toSoyData(view, commit.getParents())); } if (keys.keys.contains("shortMessage")) { data.put("shortMessage", commit.getShortMessage()); } if (keys.keys.contains("branches")) { data.put("branches", getRefsById(commit, Constants.R_HEADS)); } if (keys.keys.contains("tags")) { data.put("tags", getRefsById(commit, Constants.R_TAGS)); } if (keys.keys.contains("message")) { if (linkifier != null) { data.put("message", linkifier.linkify(req, commit.getFullMessage())); } else { data.put("message", commit.getFullMessage()); } } if (keys.keys.contains("diffTree")) { data.put("diffTree", computeDiffTree(commit)); } checkState(keys.keys.size() == data.size(), "bad commit data keys: %s != %s", keys.keys, data.keySet()); return ImmutableMap.copyOf(data); }
From source file:com.google.gitiles.GitwebRedirectFilterTest.java
License:Open Source License
@Test public void show() throws Exception { assertGone(newRequest("a=commit")); assertGone(newRequest("a=commit;p=test")); RevCommit commit = repo.branch("refs/heads/master").commit().create(); assertRedirectsTo(GitilesView.revision().setHostName(HOST_NAME).setServletPath(SERVLET_PATH) .setRepositoryName("test").setRevision(commit).toUrl(), newRequest("a=commit;p=test&h=" + ObjectId.toString(commit))); }
From source file:com.google.gitiles.PathServlet.java
License:Open Source License
private void showSymlink(HttpServletRequest req, HttpServletResponse res, RevWalk rw, TreeWalk tw) throws IOException { GitilesView view = ViewFilter.getView(req); ObjectId id = tw.getObjectId(0);//from w w w . ja v a2s . co m Map<String, Object> data = Maps.newHashMap(); ObjectLoader loader = rw.getObjectReader().open(id, OBJ_BLOB); String target; try { target = RawParseUtils.decode(loader.getCachedBytes(TreeSoyData.MAX_SYMLINK_SIZE)); } catch (LargeObjectException.OutOfMemory e) { throw e; } catch (LargeObjectException e) { data.put("sha", ObjectId.toString(id)); data.put("data", null); data.put("size", Long.toString(loader.getSize())); render(req, res, "gitiles.pathDetail", ImmutableMap.of("title", ViewFilter.getView(req).getTreePath(), "type", FileType.REGULAR_FILE.toString(), "data", data)); return; } String url = resolveTargetUrl( GitilesView.path().copyFrom(view).setTreePath(dirname(view.getTreePath())).build(), target); data.put("title", view.getTreePath()); data.put("target", target); if (url != null) { data.put("targetUrl", url); } // TODO(sop): Allow caching files by SHA-1 when no S cookie is sent. render(req, res, "gitiles.pathDetail", ImmutableMap.of("title", ViewFilter.getView(req).getTreePath(), "type", FileType.SYMLINK.toString(), "data", data)); }
From source file:com.google.gitiles.PathServlet.java
License:Open Source License
private void showGitlink(HttpServletRequest req, HttpServletResponse res, RevWalk rw, TreeWalk tw, RevTree root) throws IOException { GitilesView view = ViewFilter.getView(req); SubmoduleWalk sw = SubmoduleWalk.forPath(ServletUtils.getRepository(req), root, view.getTreePath()); String remoteUrl;//from w ww . j a v a 2 s. co m try { remoteUrl = sw.getRemoteUrl(); } catch (ConfigInvalidException e) { throw new IOException(e); } finally { sw.release(); } Map<String, Object> data = Maps.newHashMap(); data.put("sha", ObjectId.toString(tw.getObjectId(0))); data.put("remoteUrl", remoteUrl); // TODO(dborowitz): Guess when we can put commit SHAs in the URL. String httpUrl = resolveHttpUrl(remoteUrl); if (httpUrl != null) { data.put("httpUrl", httpUrl); } // TODO(sop): Allow caching links by SHA-1 when no S cookie is sent. render(req, res, "gitiles.pathDetail", ImmutableMap.of("title", view.getTreePath(), "type", FileType.GITLINK.toString(), "data", data)); }
From source file:com.google.gitiles.RefServletTest.java
License:Open Source License
private String id(String refName) throws IOException { return ObjectId.toString(repo.getRepository().getRef(refName).getObjectId()); }
From source file:com.google.gitiles.RefServletTest.java
License:Open Source License
private String peeled(String refName) throws IOException { return ObjectId .toString(repo.getRepository().peel(repo.getRepository().getRef(refName)).getPeeledObjectId()); }
From source file:com.google.gitiles.RevisionServlet.java
License:Open Source License
@Override protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { GitilesView view = ViewFilter.getView(req); Repository repo = ServletUtils.getRepository(req); RevWalk walk = new RevWalk(repo); try {/*from w w w . ja va 2s . c om*/ List<RevObject> objects = listObjects(walk, view.getRevision().getId()); List<Map<String, ?>> soyObjects = Lists.newArrayListWithCapacity(objects.size()); boolean hasBlob = false; // TODO(sop): Allow caching commits by SHA-1 when no S cookie is sent. for (RevObject obj : objects) { try { switch (obj.getType()) { case OBJ_COMMIT: soyObjects.add(ImmutableMap.of("type", Constants.TYPE_COMMIT, "data", new CommitSoyData(linkifier, req, repo, walk, view).toSoyData((RevCommit) obj, KeySet.DETAIL_DIFF_TREE))); break; case OBJ_TREE: soyObjects.add(ImmutableMap.of("type", Constants.TYPE_TREE, "data", new TreeSoyData(walk, view).toSoyData(obj))); break; case OBJ_BLOB: soyObjects.add(ImmutableMap.of("type", Constants.TYPE_BLOB, "data", new BlobSoyData(walk, view).toSoyData(obj))); hasBlob = true; break; case OBJ_TAG: soyObjects.add(ImmutableMap.of("type", Constants.TYPE_TAG, "data", new TagSoyData(linkifier, req).toSoyData((RevTag) obj))); break; default: log.warn("Bad object type for %s: %s", ObjectId.toString(obj.getId()), obj.getType()); res.setStatus(SC_NOT_FOUND); return; } } catch (MissingObjectException e) { log.warn("Missing object " + ObjectId.toString(obj.getId()), e); res.setStatus(SC_NOT_FOUND); return; } catch (IncorrectObjectTypeException e) { log.warn("Incorrect object type for " + ObjectId.toString(obj.getId()), e); res.setStatus(SC_NOT_FOUND); return; } } render(req, res, "gitiles.revisionDetail", ImmutableMap.of("title", view.getRevision().getName(), "objects", soyObjects, "hasBlob", hasBlob)); } finally { walk.release(); } }
From source file:com.google.gitiles.TagSoyData.java
License:Open Source License
public Map<String, Object> toSoyData(RevTag tag) { Map<String, Object> data = Maps.newHashMapWithExpectedSize(4); data.put("sha", ObjectId.toString(tag)); if (tag.getTaggerIdent() != null) { data.put("tagger", CommitSoyData.toSoyData(tag.getTaggerIdent(), dateFormatter)); }/*from w w w.j a v a 2s.c o m*/ data.put("object", ObjectId.toString(tag.getObject())); data.put("message", linkifier.linkify(req, tag.getFullMessage())); return data; }
From source file:com.googlesource.gerrit.plugins.manifest.UpdateCommand.java
License:Apache License
private void updateManifest() throws Exception { manifestUpdater.read(srcRef, srcFile); for (ManifestOperation operation : operations) { operation.transform(manifestUpdater); }/* w ww . ja v a 2 s . co m*/ RevCommit commit = manifestUpdater.write(dstRef, dstFile, getCommitMessage()); out.write(("Commit: " + ObjectId.toString(commit.getId()) + "\n").getBytes(ENC)); out.flush(); }
From source file:com.googlesource.gerrit.plugins.refprotection.BackupRef.java
License:Open Source License
public void createBackup(RefUpdatedEvent event, ProjectResource project) { String refName = event.getRefName(); try (Repository git = repoManager.openRepository(project.getNameKey())) { String backupRef = get(project, refName); // No-op if the backup branch name is same as the original if (backupRef.equals(refName)) { return; }/*from w w w. jav a 2s . com*/ try (RevWalk revWalk = new RevWalk(git)) { RefUpdateAttribute refUpdate = event.refUpdate.get(); if (cfg.getFromGerritConfig(pluginName).getBoolean("createTag", false)) { TagBuilder tag = new TagBuilder(); AccountAttribute submitter = event.submitter.get(); tag.setTagger(new PersonIdent(submitter.name, submitter.email)); tag.setObjectId(revWalk.parseCommit(ObjectId.fromString(refUpdate.oldRev))); String update = "Non-fast-forward update to"; if (refUpdate.newRev.equals(ObjectId.zeroId().getName())) { update = "Deleted"; } String type = "branch"; String fullMessage = ""; if (refUpdate.refName.startsWith(R_TAGS)) { type = "tag"; try { RevTag origTag = revWalk.parseTag(ObjectId.fromString(refUpdate.oldRev)); SimpleDateFormat format = new SimpleDateFormat("EEE MMM d HH:mm:ss yyyy ZZZZ"); PersonIdent taggerIdent = origTag.getTaggerIdent(); String tagger = String.format("Tagger: %s <%s>\nDate: %s", taggerIdent.getName(), taggerIdent.getEmailAddress(), format.format(taggerIdent.getWhen())); fullMessage = "\n\nOriginal tag:\n" + tagger + "\n\n" + origTag.getFullMessage(); } catch (MissingObjectException e) { log.warn("Original tag does not exist", e); } catch (IncorrectObjectTypeException e) { log.warn("Original tag was not a tag", e); } catch (IOException e) { log.warn("Unable to read original tag details", e); } } tag.setMessage(update + " " + type + " " + refUpdate.refName + fullMessage); tag.setTag(backupRef); ObjectInserter inserter = git.newObjectInserter(); ObjectId tagId = inserter.insert(tag); inserter.flush(); RefUpdate tagRef = git.updateRef(tag.getTag()); tagRef.setNewObjectId(tagId); tagRef.setRefLogMessage("tagged deleted branch/tag " + tag.getTag(), false); tagRef.setForceUpdate(false); Result result = tagRef.update(); switch (result) { case NEW: case FORCED: log.debug("Successfully created backup tag"); break; case LOCK_FAILURE: log.error("Failed to lock repository while creating backup tag"); break; case REJECTED: log.error("Tag already exists while creating backup tag"); break; default: log.error("Unknown error while creating backup tag"); } } else { BranchInput input = new BranchInput(); input.ref = backupRef; // We need to parse the commit to ensure if it's a tag, we get the // commit the tag points to! input.revision = ObjectId .toString(revWalk.parseCommit(ObjectId.fromString(refUpdate.oldRev)).getId()); try { createBranchFactory.create(backupRef).apply(project, input); } catch (BadRequestException | AuthException | ResourceConflictException | IOException e) { log.error(e.getMessage(), e); } } } } catch (RepositoryNotFoundException e) { log.error("Repository does not exist", e); } catch (IOException e) { log.error("Could not open repository", e); } }