List of usage examples for org.eclipse.jgit.lib TreeFormatter toByteArray
public byte[] toByteArray()
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); }