List of usage examples for org.eclipse.jgit.lib Constants OBJ_TREE
int OBJ_TREE
To view the source code for org.eclipse.jgit.lib Constants OBJ_TREE.
Click Source Link
From source file:com.chungkwong.jgitgui.CommitTreeItem.java
License:Open Source License
@Override public Node getContentPage() { RevCommit rev = (RevCommit) getValue(); Repository repository = ((Git) getParent().getParent().getValue()).getRepository(); SplitPane page = new SplitPane(); page.setOrientation(Orientation.VERTICAL); StringBuilder buf = new StringBuilder(); buf.append(java.util.ResourceBundle.getBundle("com/chungkwong/jgitgui/text").getString("PARENTS:")); for (int i = 0; i < rev.getParentCount(); i++) buf.append(rev.getParent(i)).append('\n'); buf.append(java.util.ResourceBundle.getBundle("com/chungkwong/jgitgui/text").getString("MESSAGE:")); buf.append(rev.getFullMessage());/*w w w . j a v a2 s .c o m*/ TextArea msg = new TextArea(buf.toString()); msg.setEditable(false); page.getItems().add(msg); SplitPane fileViewer = new SplitPane(); fileViewer.setOrientation(Orientation.HORIZONTAL); TreeView tree = new TreeView(new TreeItem()); tree.setShowRoot(false); TextArea content = new TextArea(); content.setEditable(false); try (TreeWalk walk = new TreeWalk(repository)) { walk.addTree(rev.getTree()); walk.setRecursive(true); LinkedList<TreeItem> items = new LinkedList<>(); items.add(tree.getRoot()); while (walk.next()) { TreeItem item = new FileTreeItem(walk.getObjectId(0), walk.getPathString()); /*while(walk.getDepth()<items.size()-1) items.removeLast(); if(walk.getDepth()>items.size()-1) items.addLast(item);*/ items.getLast().getChildren().add(item); } } catch (Exception ex) { Logger.getLogger(CommitTreeItem.class.getName()).log(Level.SEVERE, null, ex); Util.informUser(ex); } tree.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() { @Override public void changed(ObservableValue ov, Object t, Object t1) { if (t1 != null) { try { ObjectLoader obj = repository.open(((FileTreeItem) t1).getId()); if (obj.getType() != Constants.OBJ_TREE) { StringBuilder buf = new StringBuilder(); BufferedReader in = new BufferedReader( new InputStreamReader(obj.openStream(), rev.getEncoding())); content.setText(in.lines().collect(Collectors.joining("\n"))); } } catch (Exception ex) { Logger.getLogger(CommitTreeItem.class.getName()).log(Level.SEVERE, null, ex); Util.informUser(ex); } } } }); fileViewer.getItems().add(tree); fileViewer.getItems().add(content); page.getItems().add(fileViewer); page.setDividerPositions(0.2, 0.8); return page; }
From source file:com.gitblit.wicket.pages.TagPage.java
License:Apache License
public TagPage(PageParameters params) { super(params); Repository r = getRepository();//from w ww . ja va 2s . c o m // Find tag in repository List<RefModel> tags = JGitUtils.getTags(r, true, -1); RefModel tagRef = null; for (RefModel tag : tags) { if (tag.getName().equals(objectId) || tag.getObjectId().getName().equals(objectId)) { tagRef = tag; break; } } // Failed to find tag! if (tagRef == null) { error(MessageFormat.format(getString("gb.couldNotFindTag"), objectId), true); } // Display tag. Class<? extends WebPage> linkClass; PageParameters linkParameters = newCommitParameter(tagRef.getReferencedObjectId().getName()); String typeKey; switch (tagRef.getReferencedObjectType()) { case Constants.OBJ_BLOB: typeKey = "gb.blob"; linkClass = BlobPage.class; break; case Constants.OBJ_TREE: typeKey = "gb.tree"; linkClass = TreePage.class; break; case Constants.OBJ_COMMIT: default: typeKey = "gb.commit"; linkClass = CommitPage.class; break; } add(new AvatarImage("taggerAvatar", tagRef.getAuthorIdent())); add(new RefsPanel("tagName", repositoryName, Arrays.asList(tagRef))); add(new Label("tagId", tagRef.getObjectId().getName())); add(new LinkPanel("taggedObject", "list", tagRef.getReferencedObjectId().getName(), linkClass, linkParameters)); add(new Label("taggedObjectType", getString(typeKey))); add(createPersonPanel("tagger", tagRef.getAuthorIdent(), com.gitblit.Constants.SearchType.AUTHOR)); Date when = new Date(0); if (tagRef.getAuthorIdent() != null) { when = tagRef.getAuthorIdent().getWhen(); } add(WicketUtils.createTimestampLabel("tagDate", when, getTimeZone(), getTimeUtils())); addFullText("fullMessage", tagRef.getFullMessage()); }
From source file:com.gitblit.wicket.panels.TagsPanel.java
License:Apache License
public TagsPanel(String wicketId, final String repositoryName, Repository r, final int maxCount) { super(wicketId); // header/*from w w w. ja va 2 s .c om*/ List<RefModel> tags = JGitUtils.getTags(r, false, maxCount); if (maxCount > 0) { // summary page // show tags page link add(new LinkPanel("header", "title", new StringResourceModel("gb.tags", this, null), TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName))); } else { // tags page add(new Label("header", new StringResourceModel("gb.tags", this, null))); } ListDataProvider<RefModel> tagsDp = new ListDataProvider<RefModel>(tags); DataView<RefModel> tagView = new DataView<RefModel>("tag", tagsDp) { private static final long serialVersionUID = 1L; int counter; @Override public void populateItem(final Item<RefModel> item) { RefModel entry = item.getModelObject(); item.add(WicketUtils.createDateLabel("tagDate", entry.getDate(), getTimeZone(), getTimeUtils())); Class<? extends WebPage> linkClass; switch (entry.getReferencedObjectType()) { case Constants.OBJ_BLOB: linkClass = BlobPage.class; break; case Constants.OBJ_TREE: linkClass = TreePage.class; break; case Constants.OBJ_COMMIT: default: linkClass = CommitPage.class; break; } item.add(new LinkPanel("tagName", "list name", entry.displayName, linkClass, WicketUtils.newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); // workaround for RevTag returning a lengthy shortlog. :( String message = StringUtils.trimString(entry.getShortMessage(), com.gitblit.Constants.LEN_SHORTLOG); if (linkClass.equals(BlobPage.class)) { // Blob Tag Object item.add(WicketUtils.newImage("tagIcon", "file_16x16.png")); LinkPanel messageLink = new LinkPanel("tagDescription", "list", message, TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())); if (!entry.getShortMessage().equals(message)) { messageLink.setTooltip(entry.getShortMessage()); } item.add(messageLink); Fragment fragment = new Fragment("tagLinks", "blobLinks", TagsPanel.this); fragment.add(new BookmarkablePageLink<Void>("tag", TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())) .setEnabled(entry.isAnnotatedTag())); fragment.add(new BookmarkablePageLink<Void>("blob", linkClass, WicketUtils .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); String contextUrl = GitBlitRequestUtils.getRelativePathPrefixToContextRoot(); String rawUrl = RawServlet.asLink(contextUrl, repositoryName, entry.displayName, entry.getReferencedObjectId().getName()); fragment.add(new ExternalLink("raw", rawUrl)); item.add(fragment); } else { // TODO Tree Tag Object // Standard Tag Object if (entry.isAnnotatedTag()) { item.add(WicketUtils.newImage("tagIcon", "tag_16x16.png")); LinkPanel messageLink = new LinkPanel("tagDescription", "list", message, TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())); if (!message.equals(entry.getShortMessage())) { messageLink.setTooltip(entry.getShortMessage()); } item.add(messageLink); Fragment fragment = new Fragment("tagLinks", "annotatedLinks", TagsPanel.this); fragment.add(new BookmarkablePageLink<Void>("tag", TagPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName())) .setEnabled(entry.isAnnotatedTag())); fragment.add(new BookmarkablePageLink<Void>("commit", linkClass, WicketUtils .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()))); item.add(fragment); } else { item.add(WicketUtils.newBlankImage("tagIcon")); item.add(new LinkPanel("tagDescription", "list", message, CommitPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getObjectId().getName()))); Fragment fragment = new Fragment("tagLinks", "lightweightLinks", TagsPanel.this); fragment.add(new BookmarkablePageLink<Void>("commit", CommitPage.class, WicketUtils .newObjectParameter(repositoryName, entry.getReferencedObjectId().getName()))); fragment.add(new BookmarkablePageLink<Void>("log", LogPage.class, WicketUtils.newObjectParameter(repositoryName, entry.getName()))); item.add(fragment); } } WicketUtils.setAlternatingBackground(item, counter); counter++; } }; add(tagView); if (tags.size() < maxCount || maxCount <= 0) { add(new Label("allTags", "").setVisible(false)); } else { add(new LinkPanel("allTags", "link", new StringResourceModel("gb.allTags", this, null), TagsPage.class, WicketUtils.newRepositoryParameter(repositoryName))); } hasTags = tags.size() > 0; }
From source file:com.github.kaitoy.goslings.server.dao.jgit.ObjectDaoImpl.java
License:Open Source License
@Override @Cacheable/*from www . java2 s . c om*/ public Tree[] getTrees(String token, String[] objectIds) throws DaoException { try (RevWalk walk = new RevWalk(resolver.getRepository(token))) { List<Tree> trees = new ArrayList<>(objectIds.length); for (String objectId : objectIds) { try { RevObject obj = walk.parseAny(ObjectId.fromString(objectId)); if (obj.getType() != Constants.OBJ_TREE) { String message = new StringBuilder().append("Failed to get a tree in the repository ") .append(token).append(". ").append(objectId).append(" is not a tree.").toString(); LOG.error(message + "It's {}.", obj.getClass()); throw new DaoException(message); } trees.add(convertToTree(token, (RevTree) obj)); } catch (MissingObjectException e) { String message = new StringBuilder().append("Failed to get a tree in the repository ") .append(token).append(". ").append(objectId).append(" doesn't exist.").toString(); LOG.error(message); throw new DaoException(message, e); } catch (IOException e) { String message = new StringBuilder().append("Failed to get a tree ").append(objectId) .append(" in the repository ").append(token).append(" due to an I/O error.").toString(); LOG.error(message); throw new DaoException(message, e); } } return trees.toArray(new Tree[objectIds.length]); } }
From source file:com.github.kaitoy.goslings.server.dao.jgit.ObjectDaoImpl.java
License:Open Source License
@Override @Cacheable//from w w w .j av a 2 s .co m public String getContents(String token, String objectId) { RawContents rawContents = getRawContents(token, objectId); if (rawContents.type == Constants.OBJ_TREE) { try { List<TreeEntry> entries = parseTree(rawContents.contents); StringBuilder sb = new StringBuilder(); for (TreeEntry entry : entries) { sb.append(entry.mode).append(entry.isTree() ? " tree " : " blob ").append(entry.id).append(" ") .append(entry.name).append("\n"); } return sb.toString(); } catch (IOException e) { String message = new StringBuilder().append("Filed to get contents of the tree ").append(objectId) .append(" in the repository ").append(token).append(" due to an I/O error.").toString(); LOG.error(message, e); throw new DaoException(message, e); } } else { return new String(rawContents.contents); } }
From source file:com.google.gerrit.server.account.AccountsUpdate.java
License:Apache License
private static ObjectId emptyTree(ObjectInserter oi) throws IOException { return oi.insert(Constants.OBJ_TREE, new byte[] {}); }
From source file:com.google.gerrit.server.patch.PatchListLoader.java
License:Apache License
private static ObjectId emptyTree(final Repository repo) throws IOException { try (ObjectInserter oi = repo.newObjectInserter()) { ObjectId id = oi.insert(Constants.OBJ_TREE, new byte[] {}); oi.flush();//w w w . j a v a2 s . c om return id; } }
From source file:com.google.gerrit.server.project.CreateProject.java
License:Apache License
private void createEmptyCommits(Repository repo, Project.NameKey project, List<String> refs) throws IOException { try (ObjectInserter oi = repo.newObjectInserter()) { CommitBuilder cb = new CommitBuilder(); cb.setTreeId(oi.insert(Constants.OBJ_TREE, new byte[] {})); cb.setAuthor(metaDataUpdateFactory.getUserPersonIdent()); cb.setCommitter(serverIdent);/*from ww w .j a va2 s. c om*/ cb.setMessage("Initial empty repository\n"); ObjectId id = oi.insert(cb); oi.flush(); for (String ref : refs) { RefUpdate ru = repo.updateRef(ref); ru.setNewObjectId(id); Result result = ru.update(); switch (result) { case NEW: referenceUpdated.fire(project, ru, ReceiveCommand.Type.CREATE); break; default: { throw new IOException(String.format("Failed to create ref \"%s\": %s", ref, result.name())); } } } } catch (IOException e) { log.error("Cannot create empty commit for " + project.get(), e); throw e; } }
From source file:com.google.gerrit.server.project.PerformCreateProject.java
License:Apache License
private void createEmptyCommits(final Repository repo, final Project.NameKey project, final List<String> refs) throws IOException { ObjectInserter oi = repo.newObjectInserter(); try {/* w w w . j a v a2 s . c o m*/ CommitBuilder cb = new CommitBuilder(); cb.setTreeId(oi.insert(Constants.OBJ_TREE, new byte[] {})); cb.setAuthor(metaDataUpdateFactory.getUserPersonIdent()); cb.setCommitter(serverIdent); cb.setMessage("Initial empty repository\n"); ObjectId id = oi.insert(cb); oi.flush(); for (String ref : refs) { RefUpdate ru = repo.updateRef(ref); ru.setNewObjectId(id); final Result result = ru.update(); switch (result) { case NEW: referenceUpdated.fire(project, ru); break; default: { throw new IOException(String.format("Failed to create ref \"%s\": %s", ref, result.name())); } } } } catch (IOException e) { log.error("Cannot create empty commit for " + createProjectArgs.getProjectName(), e); throw e; } finally { oi.release(); } }
From source file:com.google.gerrit.server.tools.hooks.CommitMsgHookTest.java
License:Apache License
private void setHEAD() throws Exception { try (ObjectInserter oi = repository.newObjectInserter()) { final CommitBuilder commit = new CommitBuilder(); commit.setTreeId(oi.insert(Constants.OBJ_TREE, new byte[] {})); commit.setAuthor(author);/*from w ww . ja v a 2 s . c o m*/ commit.setCommitter(committer); commit.setMessage("test\n"); ObjectId commitId = oi.insert(commit); final RefUpdate ref = repository.updateRef(Constants.HEAD); ref.setNewObjectId(commitId); Result result = ref.forceUpdate(); assert_().withFailureMessage(Constants.HEAD + " did not change: " + ref.getResult()).that(result) .isAnyOf(Result.FAST_FORWARD, Result.FORCED, Result.NEW, Result.NO_CHANGE); } }