/** * Updates the remote ref that matches the given refspec. * * @param refspec the ref to update * @param commitId the new value of the ref * @param delete if true, the remote ref will be deleted * @return the updated ref */ @Override protected Ref updateRemoteRef(String refspec, ObjectId commitId, boolean delete) { Ref updatedRef = remoteGeoGit .command(UpdateRef.class) .setName(refspec) .setNewValue(commitId) .setDelete(delete) .call() .get(); Ref remoteHead = headRef(); if (remoteHead instanceof SymRef) { if (((SymRef) remoteHead).getTarget().equals(updatedRef.getName())) { remoteGeoGit .command(UpdateSymRef.class) .setName(Ref.HEAD) .setNewValue(updatedRef.getName()) .call(); RevCommit commit = remoteGeoGit.getRepository().getCommit(commitId); remoteGeoGit.getRepository().getWorkingTree().updateWorkHead(commit.getTreeId()); remoteGeoGit.getRepository().getIndex().updateStageHead(commit.getTreeId()); } } return updatedRef; }
@Override protected void print(RevCommit commit, Writer w) throws IOException { println(w, "tree\t", commit.getTreeId().toString()); print(w, "parents\t"); for (Iterator<ObjectId> it = commit.getParentIds().iterator(); it.hasNext(); ) { print(w, it.next().toString()); if (it.hasNext()) { print(w, " "); } } println(w); printPerson(w, "author", commit.getAuthor()); printPerson(w, "committer", commit.getCommitter()); println(w, "message\t", Optional.fromNullable(commit.getMessage()).or("")); w.flush(); }