Example usage for org.eclipse.jgit.lib TreeFormatter toByteArray

List of usage examples for org.eclipse.jgit.lib TreeFormatter toByteArray

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib TreeFormatter toByteArray.

Prototype

public byte[] toByteArray() 

Source Link

Document

Copy this formatter's buffer into a byte array.

Usage

From source file:svnserver.repository.git.GitCreateMode.java

License:GNU General Public License

@NotNull
private static ObjectId createFirstRevision(@NotNull Repository repository) throws IOException {
    final ObjectInserter inserter = repository.newObjectInserter();
    // Create commit tree.
    final TreeFormatter rootBuilder = new TreeFormatter();
    rootBuilder.append(".gitattributes", FileMode.REGULAR_FILE, insertFile(inserter, "example/_gitattributes"));
    new ObjectChecker().checkTree(rootBuilder.toByteArray());
    final ObjectId rootId = inserter.insert(rootBuilder);
    // Create first commit with message.
    final CommitBuilder commitBuilder = new CommitBuilder();
    commitBuilder.setAuthor(new PersonIdent("", "", 0, 0));
    commitBuilder.setCommitter(new PersonIdent("", "", 0, 0));
    commitBuilder.setMessage("Initial commit");
    commitBuilder.setTreeId(rootId);/* w  w w .  j av  a  2  s  .  co  m*/
    final ObjectId commitId = inserter.insert(commitBuilder);
    inserter.flush();
    return commitId;
}

From source file:svnserver.repository.git.GitTreeUpdate.java

License:GNU General Public License

@NotNull
public ObjectId buildTree(@NotNull ObjectInserter inserter) throws IOException, SVNException {
    final TreeFormatter treeBuilder = new TreeFormatter();
    final List<GitTreeEntry> sortedEntries = new ArrayList<>(entries.values());
    Collections.sort(sortedEntries);
    for (GitTreeEntry entry : sortedEntries) {
        treeBuilder.append(entry.getFileName(), entry.getFileMode(), entry.getObjectId().getObject());
    }//from   w  ww .  j a v a  2  s.c o m
    new ObjectChecker().checkTree(treeBuilder.toByteArray());
    return inserter.insert(treeBuilder);
}

From source file:svnserver.repository.git.LayoutHelper.java

License:GNU General Public License

public static ObjectId createCacheCommit(@NotNull ObjectInserter inserter, @NotNull ObjectId parent,
        @NotNull RevCommit commit, int revisionId, @NotNull Map<String, ObjectId> revBranches)
        throws IOException {
    final TreeFormatter treeBuilder = new TreeFormatter();
    treeBuilder.append(ENTRY_COMMIT_REF, commit);
    treeBuilder.append("svn", FileMode.TREE, createSvnLayoutTree(inserter, revBranches));

    new ObjectChecker().checkTree(treeBuilder.toByteArray());
    final ObjectId rootTree = inserter.insert(treeBuilder);

    final CommitBuilder commitBuilder = new CommitBuilder();
    commitBuilder.setAuthor(commit.getAuthorIdent());
    commitBuilder.setCommitter(commit.getCommitterIdent());
    commitBuilder.setMessage("#" + revisionId + ": " + commit.getFullMessage());
    commitBuilder.addParentId(parent);//from   w  w  w .j av  a  2 s  .c  o m
    commitBuilder.setTreeId(rootTree);
    return inserter.insert(commitBuilder);
}

From source file:svnserver.repository.git.LayoutHelper.java

License:GNU General Public License

@NotNull
private static ObjectId createFirstRevision(@NotNull Repository repository) throws IOException {
    // Generate UUID.
    final ObjectInserter inserter = repository.newObjectInserter();
    ObjectId uuidId = inserter.insert(Constants.OBJ_BLOB,
            UUID.randomUUID().toString().getBytes(StandardCharsets.UTF_8));
    // Create svn empty tree.
    final ObjectId treeId = inserter.insert(new TreeFormatter());
    // Create commit tree.
    final TreeFormatter rootBuilder = new TreeFormatter();
    rootBuilder.append(ENTRY_ROOT, FileMode.TREE, treeId);
    rootBuilder.append(ENTRY_UUID, FileMode.REGULAR_FILE, uuidId);
    new ObjectChecker().checkTree(rootBuilder.toByteArray());
    final ObjectId rootId = inserter.insert(rootBuilder);
    // Create first commit with message.
    final CommitBuilder commitBuilder = new CommitBuilder();
    commitBuilder.setAuthor(new PersonIdent("", "", 0, 0));
    commitBuilder.setCommitter(new PersonIdent("", "", 0, 0));
    commitBuilder.setMessage("#0: Initial revision");
    commitBuilder.setTreeId(rootId);/*w ww.  j ava 2s.c  o  m*/
    final ObjectId commitId = inserter.insert(commitBuilder);
    inserter.flush();
    return commitId;
}

From source file:svnserver.repository.git.LayoutHelper.java

License:GNU General Public License

@Nullable
private static ObjectId createSvnLayoutTree(@NotNull ObjectInserter inserter,
        @NotNull Map<String, ObjectId> revBranches) throws IOException {
    final Deque<TreeFormatter> stack = new ArrayDeque<>();
    stack.add(new TreeFormatter());
    String dir = "";
    final ObjectChecker checker = new ObjectChecker();
    for (Map.Entry<String, ObjectId> entry : new TreeMap<>(revBranches).entrySet()) {
        final String path = entry.getKey();
        // Save already added nodes.
        while (!path.startsWith(dir)) {
            final int index = dir.lastIndexOf('/', dir.length() - 2) + 1;
            final TreeFormatter tree = stack.pop();
            checker.checkTree(tree.toByteArray());
            stack.element().append(dir.substring(index, dir.length() - 1), FileMode.TREE,
                    inserter.insert(tree));
            dir = dir.substring(0, index);
        }//from  w w w  .  j  a  v  a  2  s  .co m
        // Go deeper.
        for (int index = path.indexOf('/', dir.length()) + 1; index < path
                .length(); index = path.indexOf('/', index) + 1) {
            dir = path.substring(0, index);
            stack.push(new TreeFormatter());
        }
        // Add commit to tree.
        {
            final int index = path.lastIndexOf('/', path.length() - 2) + 1;
            stack.element().append(path.substring(index, path.length() - 1), FileMode.GITLINK,
                    entry.getValue());
        }
    }
    // Save already added nodes.
    while (!dir.isEmpty()) {
        int index = dir.lastIndexOf('/', dir.length() - 2) + 1;
        final TreeFormatter tree = stack.pop();
        checker.checkTree(tree.toByteArray());
        stack.element().append(dir.substring(index, dir.length() - 1), FileMode.TREE, inserter.insert(tree));
        dir = dir.substring(0, index);
    }
    // Save root tree to disk.
    final TreeFormatter rootTree = stack.pop();
    checker.checkTree(rootTree.toByteArray());
    if (!stack.isEmpty()) {
        throw new IllegalStateException();
    }
    return inserter.insert(rootTree);
}