@Override public void funnel(RevTag from, PrimitiveSink into) { funnel(into, from.getName(), from.getCommitId(), from.getMessage(), from.getTagger()); }
@Override public void callback(Supplier<RevObject> supplier) { RevObject object = supplier.get(); progress.setProgress(progress.getProgress() + 1); if (object instanceof RevCommit) { RevCommit commit = (RevCommit) object; want.remove(commit.getId()); have.removeAll(commit.getParentIds()); have.add(commit.getId()); } else if (object instanceof RevTag) { RevTag tag = (RevTag) object; want.remove(tag.getId()); have.remove(tag.getCommitId()); have.add(tag.getId()); } } };
public static RevTag readTag(@Nullable ObjectId id, DataInput in) throws IOException { final ObjectId commitId = readObjectId(in); final String name = in.readUTF(); final String message = in.readUTF(); final RevPerson tagger = readRevPerson(in); return RevTag.builder().build(id, name, commitId, message, tagger); }
@Override public boolean equals(Object o) { if (!(o instanceof RevTag) && super.equals(o)) { return false; } RevTag t = (RevTag) o; return equal(getName(), t.getName()) && equal(getCommitId(), t.getCommitId()) && equal(getMessage(), t.getMessage()); } }
@Override public ObjectId apply(RevTag t) { return t.getCommitId(); }};
@Override public String apply(RevTag revTag) { return revTag.getName(); }};
/** * Executes the tag creation operation. * * @return the created tag * */ @Override protected RevTag _call() throws RuntimeException { checkState(name != null, "tag name was not provided"); final String tagRefPath = Ref.TAGS_PREFIX + name; checkArgument(!command(RefParse.class).setName(tagRefPath).call().isPresent(), "A tag named '" + name + "' already exists."); command(CheckRefFormat.class).setThrowsException(true).setRef(tagRefPath).call(); if (commitId == null) { final Optional<Ref> currHead = command(RefParse.class).setName(Ref.HEAD).call(); Preconditions.checkState(currHead.isPresent(), "Repository has no HEAD, can't create tag"); commitId = currHead.get().getObjectId(); } RevPerson tagger = resolveTagger(); message = message == null ? "" : message; final RevTag tag = RevTag.builder().name(name).commitId(commitId).message(message) .tagger(tagger).build(); objectDatabase().put(tag); Optional<Ref> branchRef = command(UpdateRef.class).setName(tagRefPath) .setNewValue(tag.getId()).call(); checkState(branchRef.isPresent()); return tag; }
/** * Executes the tag creation operation. * * @return the created tag * */ @Override protected RevTag _call() throws RuntimeException { checkState(name != null, "tag name was not provided"); final String tagRefPath = Ref.TAGS_PREFIX + name; checkArgument(!command(RefParse.class).setName(tagRefPath).call().isPresent(), "A tag named '" + name + "' already exists."); command(CheckRefFormat.class).setThrowsException(true).setRef(tagRefPath).call(); if (commitId == null) { final Optional<Ref> currHead = command(RefParse.class).setName(Ref.HEAD).call(); Preconditions.checkState(currHead.isPresent(), "Repository has no HEAD, can't create tag"); commitId = currHead.get().getObjectId(); } RevPerson tagger = resolveTagger(); message = message == null ? "" : message; RevTag tag = RevTagBuilder.build(name, commitId, message, tagger); objectDatabase().put(tag); Optional<Ref> branchRef = command(UpdateRef.class).setName(tagRefPath) .setNewValue(tag.getId()).call(); checkState(branchRef.isPresent()); return tag; }
public @Override void findSuccessors(final Object object, final List<Object> successors, ObjectStore database) { if (object instanceof RevTag) { final RevTag tag = (RevTag) object; successors.add(database.getCommit(tag.getCommitId())); } }
private void listTags(GeogigCLI cli) { GeoGIG geogig = cli.getGeogig(); ImmutableList<RevTag> tags = geogig.command(TagListOp.class).call(); for (RevTag tag : tags) { try { cli.getConsole().println(tag.getName()); } catch (IOException e) { throw new RuntimeException(e); } } } }
private void testTag(RevTag tag) throws IOException { byte[] buff = write(tag); RevTag read; read = (RevTag) read(tag.getId(), buff); assertTag(tag, read); read = (RevTag) read(null, buff); assertTag(tag, read); }
@Override public void funnel(RevTag from, PrimitiveSink into) { funnel(into, from.getName(), from.getCommitId(), from.getMessage(), from.getTagger()); }
private Set<ObjectId> resolveHeadCommits(List<RefRequest> refs, boolean isTags, Predicate<? super RefRequest> filter, Function<? super RefRequest, ? extends ObjectId> function) { Iterable<ObjectId> ids = transform(filter(refs, filter), function); if (isTags) { Iterator<RevTag> tags = objectDatabase().getAll(ids, NOOP_LISTENER, RevTag.class); ids = newArrayList(Iterators.transform(tags, (t) -> t.getCommitId())); } return Sets.newHashSet(ids); }
private void listTags(GeogigCLI cli) { GeoGIG geogig = cli.getGeogig(); ImmutableList<RevTag> tags = geogig.command(TagListOp.class).call(); for (RevTag tag : tags) { try { cli.getConsole().println(tag.getName()); } catch (IOException e) { throw new RuntimeException(e); } } } }
public RevTag readTag(@Nullable ObjectId id, DataInput in) throws IOException { final ObjectId commitId = readObjectId(in); final String name = in.readUTF(); final String message = in.readUTF(); final RevPerson tagger = readRevPerson(in); return RevTag.builder().build(id, name, commitId, message, tagger); }
private int write(@NonNull RevTag t, @NonNull FlatBufferBuilder builder) { return writeTag(builder, t.getName(), t.getCommitId(), t.getMessage(), t.getTagger()); }
private RevTree resolveTree(RevObject o, ObjectStore source) { if (o instanceof RevTree) { return (RevTree) o; } if (o instanceof RevCommit) { return source.getTree(((RevCommit) o).getTreeId()); } if (o instanceof RevTag) { return resolveTree(source.getCommit(((RevTag) o).getCommitId()), source); } throw new IllegalArgumentException("Object does not resolve to a tree"); }