Package org.eclipse.jgit.treewalk

Examples of org.eclipse.jgit.treewalk.TreeWalk


    long lineCnt = 0;
    ObjectReader or = db.newObjectReader();
    try {
      final MutableObjectId id = new MutableObjectId();
      RevWalk rw = new RevWalk(or);
      TreeWalk tw = new TreeWalk(or);
      tw.reset(rw.parseTree(db.resolve(Constants.HEAD)));
      tw.setRecursive(true);

      while (tw.next()) {
        FileMode fm = tw.getFileMode(0);
        if (!FileMode.REGULAR_FILE.equals(fm)
            && !FileMode.EXECUTABLE_FILE.equals(fm))
          continue;

        byte[] raw;
        try {
          tw.getObjectId(id, 0);
          raw = or.open(id).getCachedBytes(textLimit * 1024);
        } catch (LargeObjectException tooBig) {
          continue;
        }

View Full Code Here


    }

    @Override
    public IndexFile doApply(RevCommit revCommit) throws Throwable {
        RevTree revTree = revCommit.getTree();
        TreeWalk treeWalk = new TreeWalk(context.getRepository());
        treeWalk.addTree(revTree);
        treeWalk.setRecursive(true);
        while (treeWalk.next()) {
            ObjectId objectId = treeWalk.getObjectId(0);
            if (objectId != ObjectId.zeroId()) {
                return toIndexFile(context, treeWalk, revCommit, objectId);
            }
        }
        return null;
View Full Code Here

          return null;
        tree = rw.parseTree(rev);
        if (i == revChars.length - 1)
          return tree.copy();

        TreeWalk tw = TreeWalk.forPath(rw.getObjectReader(),
            new String(revChars, i + 1, revChars.length - i - 1),
            tree);
        return tw != null ? tw.getObjectId(0) : null;
      }
      default:
        if (rev != null)
          throw new RevisionSyntaxException(revstr);
      }
View Full Code Here

      revPool = new RevWalk(getRepository());

    revPool.setRetainBody(true);
    SEEN = revPool.newFlag("SEEN");
    reader = revPool.getObjectReader();
    treeWalk = new TreeWalk(reader);
    treeWalk.setRecursive(true);
  }
View Full Code Here

    DirCache dc = null;
    try {
      dc = repo.lockDirCache();
      DirCacheBuilder builder = dc.builder();

      final TreeWalk tw = new TreeWalk(repo);
      tw.addTree(new DirCacheBuildIterator(builder));
      tw.addTree(commit.getTree());
      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);
        }
      }
View Full Code Here

    }
  }

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

      walk = new TreeWalk(repo);
      walk.addTree(commit.getTree());
      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

  protected CheckoutCommand checkoutPaths() throws IOException,
      RefNotFoundException {
    RevWalk revWalk = new RevWalk(repo);
    DirCache dc = repo.lockDirCache();
    try {
      TreeWalk treeWalk = new TreeWalk(revWalk.getObjectReader());
      treeWalk.setRecursive(true);
      if (!checkoutAllPaths)
        treeWalk.setFilter(PathFilterGroup.createFromStrings(paths));
      try {
        if (isCheckoutIndex())
          checkoutPathsFromIndex(treeWalk, dc);
        else {
          RevCommit commit = revWalk.parseCommit(getStartPoint());
          checkoutPathsFromCommit(treeWalk, dc, commit);
        }
      } finally {
        treeWalk.release();
      }
    } finally {
      dc.unlock();
      revWalk.release();
    }
View Full Code Here

    AbbreviatedObjectId startId;
    ObjectReader or = db.newObjectReader();
    try {
      final MutableObjectId id = new MutableObjectId();
      RevWalk rw = new RevWalk(or);
      TreeWalk tw = new TreeWalk(or);
      tw.setFilter(TreeFilter.ANY_DIFF);
      tw.setRecursive(true);

      ObjectId start = db.resolve(Constants.HEAD);
      startId = or.abbreviate(start);
      rw.markStart(rw.parseCommit(start));
      for (;;) {
        final RevCommit c = rw.next();
        if (c == null)
          break;
        commits++;
        if (c.getParentCount() != 1)
          continue;

        RevCommit p = c.getParent(0);
        rw.parseHeaders(p);
        tw.reset(p.getTree(), c.getTree());
        while (tw.next()) {
          if (!isFile(tw, 0) || !isFile(tw, 1))
            continue;

          byte[] raw0;
          try {
            tw.getObjectId(id, 0);
            raw0 = or.open(id).getCachedBytes(textLimit * 1024);
          } catch (LargeObjectException tooBig) {
            continue;
          }
          if (RawText.isBinary(raw0))
            continue;

          byte[] raw1;
          try {
            tw.getObjectId(id, 1);
            raw1 = or.open(id).getCachedBytes(textLimit * 1024);
          } catch (LargeObjectException tooBig) {
            continue;
          }
          if (RawText.isBinary(raw1))
View Full Code Here

  @Option(name = "--", metaVar = "metaVar_path", multiValued = true, handler = PathTreeFilterHandler.class)
  private TreeFilter pathFilter = TreeFilter.ALL;

  @Override
  protected void run() throws Exception {
    final TreeWalk walk = new TreeWalk(db);
    walk.setRecursive(recursive);
    for (final AbstractTreeIterator i : trees)
      walk.addTree(i);
    walk.setFilter(AndTreeFilter.create(TreeFilter.ANY_DIFF, pathFilter));

    final int nTree = walk.getTreeCount();
    while (walk.next()) {
      for (int i = 1; i < nTree; i++)
        outw.print(':');
      for (int i = 0; i < nTree; i++) {
        final FileMode m = walk.getFileMode(i);
        final String s = m.toString();
        for (int pad = 6 - s.length(); pad > 0; pad--)
          outw.print('0');
        outw.print(s);
        outw.print(' ');
      }

      for (int i = 0; i < nTree; i++) {
        outw.print(walk.getObjectId(i).name());
        outw.print(' ');
      }

      char chg = 'M';
      if (nTree == 2) {
        final int m0 = walk.getRawMode(0);
        final int m1 = walk.getRawMode(1);
        if (m0 == 0 && m1 != 0)
          chg = 'A';
        else if (m0 != 0 && m1 == 0)
          chg = 'D';
        else if (m0 != m1 && walk.idEqual(0, 1))
          chg = 'T';
      }
      outw.print(chg);

      outw.print('\t');
      outw.print(walk.getPathString());
      outw.println();
    }
  }
View Full Code Here

  @Option(name = "--", metaVar = "metaVar_paths", multiValued = true, handler = StopOptionHandler.class)
  private List<String> paths = new ArrayList<String>();

  @Override
  protected void run() throws Exception {
    final TreeWalk walk = new TreeWalk(db);
    walk.reset(); // drop the first empty tree, which we do not need here
    if (paths.size() > 0)
      walk.setFilter(PathFilterGroup.createFromStrings(paths));
    walk.setRecursive(recursive);
    walk.addTree(tree);

    while (walk.next()) {
      final FileMode mode = walk.getFileMode(0);
      if (mode == FileMode.TREE)
        outw.print('0');
      outw.print(mode);
      outw.print(' ');
      outw.print(Constants.typeString(mode.getObjectType()));

      outw.print(' ');
      outw.print(walk.getObjectId(0).name());

      outw.print('\t');
      outw.print(walk.getPathString());
      outw.println();
    }
  }
View Full Code Here

TOP

Related Classes of org.eclipse.jgit.treewalk.TreeWalk

Copyright © 2018 www.massapicom. 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.