Example usage for org.eclipse.jgit.lib ObjectChecker ObjectChecker

List of usage examples for org.eclipse.jgit.lib ObjectChecker ObjectChecker

Introduction

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

Prototype

ObjectChecker

Source Link

Usage

From source file:it.com.atlassian.labs.speakeasy.util.jgit.WalkFetchConnection.java

License:Eclipse Distribution License

WalkFetchConnection(final WalkTransport t, final WalkRemoteObjectDatabase w) {
    Transport wt = (Transport) t;//from   ww  w  .  ja va 2  s .  c  om
    try {
        local = (Repository) wt.getClass().getDeclaredField("local").get(wt);
    } catch (IllegalAccessException e) {
        throw new RuntimeException(e);
    } catch (NoSuchFieldException e) {
        throw new RuntimeException(e);
    }
    objCheck = wt.isCheckFetchedObjects() ? new ObjectChecker() : null;
    inserter = local.newObjectInserter();
    reader = local.newObjectReader();

    remotes = new ArrayList<WalkRemoteObjectDatabase>();
    remotes.add(w);

    unfetchedPacks = new LinkedList<RemotePack>();
    packsConsidered = new HashSet<String>();

    noPacksYet = new LinkedList<WalkRemoteObjectDatabase>();
    noPacksYet.add(w);

    noAlternatesYet = new LinkedList<WalkRemoteObjectDatabase>();
    noAlternatesYet.add(w);

    fetchErrors = new HashMap<ObjectId, List<Throwable>>();
    packLocks = new ArrayList<PackLock>(4);

    revWalk = new RevWalk(reader);
    revWalk.setRetainBody(false);
    treeWalk = new TreeWalk(reader);
    COMPLETE = revWalk.newFlag("COMPLETE");
    IN_WORK_QUEUE = revWalk.newFlag("IN_WORK_QUEUE");
    LOCALLY_SEEN = revWalk.newFlag("LOCALLY_SEEN");

    localCommitQueue = new DateRevQueue();
    workQueue = new LinkedList<ObjectId>();
}

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);//from w w w  . j a va 2s  .c o  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  ww w. j a va 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   www  .  j a  v  a2  s.co 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);//from w  ww. jav  a2 s  .  co 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  av  a 2s  .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);
}