Examples of DirCacheBuilder


Examples of org.eclipse.jgit.dircache.DirCacheBuilder

    git.add().addFilepattern(file).addFilepattern(file2).call();
    git.commit().setMessage("commit").call();

    DirCache index = db.lockDirCache();
    DirCacheBuilder builder = index.builder();
    builder.add(createEntry(file, FileMode.REGULAR_FILE, 1, ""));
    builder.add(createEntry(file, FileMode.REGULAR_FILE, 2, ""));
    builder.add(createEntry(file, FileMode.REGULAR_FILE, 3, ""));
    assertTrue(builder.commit());

    assertEquals("[a.txt, mode:100644, stage:1]"
        + "[a.txt, mode:100644, stage:2]"
        + "[a.txt, mode:100644, stage:3]",
        indexState(0));
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

    git.add().addFilepattern(file).call();
    git.commit().setMessage("commit").call();

    DirCache index = db.lockDirCache();
    DirCacheBuilder builder = index.builder();
    builder.add(createEntry(file, FileMode.REGULAR_FILE, 1, ""));
    builder.add(createEntry(file, FileMode.REGULAR_FILE, 2, ""));
    builder.add(createEntry(file, FileMode.REGULAR_FILE, 3, ""));
    builder.add(createEntry("b.txt", FileMode.REGULAR_FILE));
    assertTrue(builder.commit());

    assertEquals("[a.txt, mode:100644, stage:1]"
        + "[a.txt, mode:100644, stage:2]"
        + "[a.txt, mode:100644, stage:3]"
        + "[b.txt, mode:100644]",
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

    writer.print("content b");
    writer.close();

    ObjectInserter newObjectInserter = db.newObjectInserter();
    DirCache dc = db.lockDirCache();
    DirCacheBuilder builder = dc.builder();

    addEntryToBuilder("b.txt", file2, newObjectInserter, builder, 0);
    addEntryToBuilder("a.txt", file, newObjectInserter, builder, 1);

    writer = new PrintWriter(file);
    writer.print("other content");
    writer.close();
    addEntryToBuilder("a.txt", file, newObjectInserter, builder, 3);

    writer = new PrintWriter(file);
    writer.print("our content");
    writer.close();
    addEntryToBuilder("a.txt", file, newObjectInserter, builder, 2)
        .getObjectId();

    builder.commit();

    assertEquals(
        "[a.txt, mode:100644, stage:1, content:content]" +
        "[a.txt, mode:100644, stage:2, content:our content]" +
        "[a.txt, mode:100644, stage:3, content:other content]" +
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

  private static final FileMode EXECUTABLE_FILE = FileMode.EXECUTABLE_FILE;

  @Test
  public void testFindObjects() throws Exception {
    final DirCache tree0 = DirCache.newInCore();
    final DirCacheBuilder b0 = tree0.builder();
    ObjectReader or = db.newObjectReader();
    ObjectInserter oi = db.newObjectInserter();

    DirCacheEntry aDotB = createEntry("a.b", EXECUTABLE_FILE);
    b0.add(aDotB);
    DirCacheEntry aSlashB = createEntry("a/b", REGULAR_FILE);
    b0.add(aSlashB);
    DirCacheEntry aSlashCSlashD = createEntry("a/c/d", REGULAR_FILE);
    b0.add(aSlashCSlashD);
    DirCacheEntry aZeroB = createEntry("a0b", SYMLINK);
    b0.add(aZeroB);
    b0.finish();
    assertEquals(4, tree0.getEntryCount());
    ObjectId tree = tree0.writeTree(oi);

    // Find the directories that were implicitly created above.
    TreeWalk tw = new TreeWalk(or);
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

  private void resetIndex(RevTree tree) throws IOException {
    DirCache dc = repo.lockDirCache();
    TreeWalk walk = null;
    try {
      DirCacheBuilder builder = dc.builder();

      walk = new TreeWalk(repo);
      walk.addTree(tree);
      walk.addTree(new DirCacheIterator(dc));
      walk.setRecursive(true);

      while (walk.next()) {
        AbstractTreeIterator cIter = walk.getTree(0,
            AbstractTreeIterator.class);
        if (cIter == null) {
          // Not in commit, don't add to new index
          continue;
        }

        final DirCacheEntry entry = new DirCacheEntry(walk.getRawPath());
        entry.setFileMode(cIter.getEntryFileMode());
        entry.setObjectIdFromRaw(cIter.idBuffer(), cIter.idOffset());

        DirCacheIterator dcIter = walk.getTree(1,
            DirCacheIterator.class);
        if (dcIter != null && dcIter.idEqual(cIter)) {
          DirCacheEntry indexEntry = dcIter.getDirCacheEntry();
          entry.setLastModified(indexEntry.getLastModified());
          entry.setLength(indexEntry.getLength());
        }

        builder.add(entry);
      }

      builder.commit();
    } finally {
      dc.unlock();
      if (walk != null)
        walk.release();
    }
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

   * @return a new in memory dircache
   * @throws IOException
   */
  private DirCache dircacheFromTree(ObjectId treeId) throws IOException {
    DirCache ret = DirCache.newInCore();
    DirCacheBuilder aBuilder = ret.builder();
    TreeWalk atw = new TreeWalk(reader);
    atw.addTree(treeId);
    atw.setRecursive(true);
    while (atw.next()) {
      DirCacheEntry e = new DirCacheEntry(atw.getRawPath());
      e.setFileMode(atw.getFileMode(0));
      e.setObjectId(atw.getObjectId(0));
      aBuilder.add(e);
    }
    aBuilder.finish();
    return ret;
  }
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

      }
    }

    if (repo.isBare()) {
      DirCache index = DirCache.newInCore();
      DirCacheBuilder builder = index.builder();
      ObjectInserter inserter = repo.newObjectInserter();
      RevWalk rw = new RevWalk(repo);
      try {
        Config cfg = new Config();
        for (Project proj : bareProjects) {
          String name = proj.path;
          String nameUri = proj.name;
          cfg.setString("submodule", name, "path", name); //$NON-NLS-1$ //$NON-NLS-2$
          cfg.setString("submodule", name, "url", nameUri); //$NON-NLS-1$ //$NON-NLS-2$
          // create gitlink
          DirCacheEntry dcEntry = new DirCacheEntry(name);
          ObjectId objectId;
          if (ObjectId.isId(proj.revision))
            objectId = ObjectId.fromString(proj.revision);
          else {
            objectId = callback.sha1(nameUri, proj.revision);
          }
          if (objectId == null)
            throw new RemoteUnavailableException(nameUri);
          dcEntry.setObjectId(objectId);
          dcEntry.setFileMode(FileMode.GITLINK);
          builder.add(dcEntry);

          for (CopyFile copyfile : proj.copyfiles) {
            byte[] src = callback.readFile(
                nameUri, proj.revision, copyfile.src);
            objectId = inserter.insert(Constants.OBJ_BLOB, src);
            dcEntry = new DirCacheEntry(copyfile.dest);
            dcEntry.setObjectId(objectId);
            dcEntry.setFileMode(FileMode.REGULAR_FILE);
            builder.add(dcEntry);
          }
        }
        String content = cfg.toText();

        // create a new DirCacheEntry for .gitmodules file.
        final DirCacheEntry dcEntry = new DirCacheEntry(Constants.DOT_GIT_MODULES);
        ObjectId objectId = inserter.insert(Constants.OBJ_BLOB,
            content.getBytes(Constants.CHARACTER_ENCODING));
        dcEntry.setObjectId(objectId);
        dcEntry.setFileMode(FileMode.REGULAR_FILE);
        builder.add(dcEntry);

        builder.finish();
        ObjectId treeId = index.writeTree(inserter);

        // Create a Commit object, populate it and write it
        ObjectId headId = repo.resolve(Constants.HEAD + "^{commit}"); //$NON-NLS-1$
        CommitBuilder commit = new CommitBuilder();
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

   * @return reference to the tree specified by the entry list.
   * @throws Exception
   */
  public RevTree tree(final DirCacheEntry... entries) throws Exception {
    final DirCache dc = DirCache.newInCore();
    final DirCacheBuilder b = dc.builder();
    for (final DirCacheEntry e : entries)
      b.add(e);
    b.finish();
    ObjectId root;
    try {
      root = dc.writeTree(inserter);
      inserter.flush();
    } finally {
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

  private void resetIndexForPaths(ObjectId commitTree) {
    DirCache dc = null;
    try {
      dc = repo.lockDirCache();
      DirCacheBuilder builder = dc.builder();

      final TreeWalk tw = new TreeWalk(repo);
      tw.addTree(new DirCacheBuildIterator(builder));
      if (commitTree != null)
        tw.addTree(commitTree);
      else
        tw.addTree(new EmptyTreeIterator());
      tw.setFilter(PathFilterGroup.createFromStrings(filepaths));
      tw.setRecursive(true);

      while (tw.next()) {
        final CanonicalTreeParser tree = tw.getTree(1,
            CanonicalTreeParser.class);
        // only keep file in index if it's in the commit
        if (tree != null) {
            // revert index to commit
          DirCacheEntry entry = new DirCacheEntry(tw.getRawPath());
          entry.setFileMode(tree.getEntryFileMode());
          entry.setObjectId(tree.getEntryObjectId());
          builder.add(entry);
        }
      }

      builder.commit();
    } catch (IOException e) {
      throw new RuntimeException(e);
    } finally {
      if (dc != null)
        dc.unlock();
View Full Code Here

Examples of org.eclipse.jgit.dircache.DirCacheBuilder

  private void resetIndex(ObjectId commitTree) throws IOException {
    DirCache dc = repo.lockDirCache();
    TreeWalk walk = null;
    try {
      DirCacheBuilder builder = dc.builder();

      walk = new TreeWalk(repo);
      if (commitTree != null)
        walk.addTree(commitTree);
      else
        walk.addTree(new EmptyTreeIterator());
      walk.addTree(new DirCacheIterator(dc));
      walk.setRecursive(true);

      while (walk.next()) {
        AbstractTreeIterator cIter = walk.getTree(0,
            AbstractTreeIterator.class);
        if (cIter == null) {
          // Not in commit, don't add to new index
          continue;
        }

        final DirCacheEntry entry = new DirCacheEntry(walk.getRawPath());
        entry.setFileMode(cIter.getEntryFileMode());
        entry.setObjectIdFromRaw(cIter.idBuffer(), cIter.idOffset());

        DirCacheIterator dcIter = walk.getTree(1,
            DirCacheIterator.class);
        if (dcIter != null && dcIter.idEqual(cIter)) {
          DirCacheEntry indexEntry = dcIter.getDirCacheEntry();
          entry.setLastModified(indexEntry.getLastModified());
          entry.setLength(indexEntry.getLength());
        }

        builder.add(entry);
      }

      builder.commit();
    } finally {
      dc.unlock();
      if (walk != null)
        walk.release();
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.