Package org.eclipse.jgit.treewalk

Examples of org.eclipse.jgit.treewalk.TreeWalk


    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();
View Full Code Here


    DirCache dc = null;

    try {
      dc = repo.lockDirCache();
      DirCacheBuilder builder = dc.builder();
      final TreeWalk tw = new TreeWalk(repo);
      tw.reset(); // drop the first empty tree, which we do not need here
      tw.setRecursive(true);
      tw.setFilter(PathFilterGroup.createFromStrings(filepatterns));
      tw.addTree(new DirCacheBuildIterator(builder));

      while (tw.next()) {
        final File path = new File(repo.getWorkTree(),
            tw.getPathString());
        final FileMode mode = tw.getFileMode(0);
        if (mode.getObjectType() == Constants.OBJ_BLOB) {
          // Deleting a blob is simply a matter of removing
          // the file or symlink named by the tree entry.
          delete(path);
        }
View Full Code Here

   */
  public List<DiffEntry> scan(AbstractTreeIterator a, AbstractTreeIterator b)
      throws IOException {
    assertHaveRepository();

    TreeWalk walk = new TreeWalk(reader);
    walk.addTree(a);
    walk.addTree(b);
    walk.setRecursive(true);

    TreeFilter filter = getDiffTreeFilterFor(a, b);
    if (pathFilter instanceof FollowFilter) {
      walk.setFilter(AndTreeFilter.create(
          PathFilter.create(((FollowFilter) pathFilter).getPath()),
          filter));
    } else {
      walk.setFilter(AndTreeFilter.create(pathFilter, filter));
    }

    source = new ContentSource.Pair(source(a), source(b));

    List<DiffEntry> files = DiffEntry.scan(walk);
    if (pathFilter instanceof FollowFilter && isAdd(files)) {
      // The file we are following was added here, find where it
      // came from so we can properly show the rename or copy,
      // then continue digging backwards.
      //
      a.reset();
      b.reset();
      walk.reset();
      walk.addTree(a);
      walk.addTree(b);
      walk.setFilter(filter);

      if (renameDetector == null)
        setDetectRenames(true);
      files = updateFollowFilter(detectRenames(DiffEntry.scan(walk)));

View Full Code Here

    private String current;

    private WorkingTreeIterator ptr;

    WorkingTreeSource(WorkingTreeIterator iterator) {
      this.tw = new TreeWalk((ObjectReader) null);
      this.iterator = iterator;
    }
View Full Code Here

            // search for the tagged files
            RevWalk revWalk = new RevWalk( git.getRepository() );
            RevCommit commit = revWalk.parseCommit( tagRef.getObjectId() );
            revWalk.release();

            final TreeWalk walk = new TreeWalk( git.getRepository() );
            walk.reset(); // drop the first empty tree, which we do not need here
            walk.setRecursive( true );
            walk.addTree( commit.getTree() );

            List<ScmFile> taggedFiles = new ArrayList<ScmFile>();
            while ( walk.next() )
            {
                taggedFiles.add( new ScmFile( walk.getPathString(), ScmFileStatus.CHECKED_OUT ) );
            }
            walk.release();

            return new TagScmResult( "JGit tag", taggedFiles );
        }
        catch ( Exception e )
        {
View Full Code Here

            // search for the tagged files
            final RevWalk revWalk = new RevWalk( git.getRepository() );
            RevCommit commit = revWalk.parseCommit( branchResult.getObjectId() );
            revWalk.release();

            final TreeWalk walk = new TreeWalk( git.getRepository() );
            walk.reset(); // drop the first empty tree, which we do not need here
            walk.setRecursive( true );
            walk.addTree( commit.getTree() );

            List<ScmFile> files = new ArrayList<ScmFile>();
            while ( walk.next() )
            {
                files.add( new ScmFile( walk.getPathString(), ScmFileStatus.CHECKED_OUT ) );
            }
            walk.release();

            return new BranchScmResult( "JGit branch", files );

        }
        catch ( Exception e )
View Full Code Here

            RevWalk revWalk = new RevWalk( git.getRepository() );
            RevCommit commit = revWalk.parseCommit( git.getRepository().resolve( Constants.HEAD ) );
            revWalk.release();

            final TreeWalk walk = new TreeWalk( git.getRepository() );
            walk.reset(); // drop the first empty tree, which we do not need here
            walk.setRecursive( true );
            walk.addTree( commit.getTree() );

            List<ScmFile> listedFiles = new ArrayList<ScmFile>();
            while ( walk.next() )
            {
                listedFiles.add( new ScmFile( walk.getPathString(), ScmFileStatus.CHECKED_OUT ) );
            }
            walk.release();

            getLogger().debug( "current branch: " + git.getRepository().getBranch() );

            return new CheckOutScmResult( "checkout via JGit", listedFiles );
        }
View Full Code Here

   * @param path
   * @return content as a byte []
   */
  public static byte[] getByteContent(Repository repository, RevTree tree, final String path, boolean throwError) {
    RevWalk rw = new RevWalk(repository);
    TreeWalk tw = new TreeWalk(repository);
    tw.setFilter(PathFilterGroup.createFromStrings(Collections.singleton(path)));
    byte[] content = null;
    try {
      if (tree == null) {
        ObjectId object = getDefaultBranch(repository);
        if (object == null)
          return null;
        RevCommit commit = rw.parseCommit(object);
        tree = commit.getTree();
      }
      tw.reset(tree);
      while (tw.next()) {
        if (tw.isSubtree() && !path.equals(tw.getPathString())) {
          tw.enterSubtree();
          continue;
        }
        ObjectId entid = tw.getObjectId(0);
        FileMode entmode = tw.getFileMode(0);
        if (entmode != FileMode.GITLINK) {
          ObjectLoader ldr = repository.open(entid, Constants.OBJ_BLOB);
          content = ldr.getCachedBytes();
        }
      }
    } catch (Throwable t) {
      if (throwError) {
        error(t, repository, "{0} can't find {1} in tree {2}", path, tree.name());
      }
    } finally {
      rw.dispose();
      tw.release();
    }
    return content;
  }
View Full Code Here

      return list;
    }
    if (commit == null) {
      commit = getCommit(repository, null);
    }
    final TreeWalk tw = new TreeWalk(repository);
    try {
      tw.addTree(commit.getTree());
      if (!StringUtils.isEmpty(path)) {
        PathFilter f = PathFilter.create(path);
        tw.setFilter(f);
        tw.setRecursive(false);
        boolean foundFolder = false;
        while (tw.next()) {
          if (!foundFolder && tw.isSubtree()) {
            tw.enterSubtree();
          }
          if (tw.getPathString().equals(path)) {
            foundFolder = true;
            continue;
          }
          if (foundFolder) {
            list.add(getPathModel(tw, path, commit));
          }
        }
      } else {
        tw.setRecursive(false);
        while (tw.next()) {
          list.add(getPathModel(tw, null, commit));
        }
      }
    } catch (IOException e) {
      error(e, repository, "{0} failed to get files for commit {1}", commit.getName());
    } finally {
      tw.release();
    }
    Collections.sort(list);
    return list;
  }
View Full Code Here

        ObjectId object = getDefaultBranch(repository);
        commit = rw.parseCommit(object);
      }

      if (commit.getParentCount() == 0) {
        TreeWalk tw = new TreeWalk(repository);
        tw.reset();
        tw.setRecursive(true);
        tw.addTree(commit.getTree());
        while (tw.next()) {
          list.add(new PathChangeModel(tw.getPathString(), tw.getPathString(), 0, tw
              .getRawMode(0), tw.getObjectId(0).getName(), commit.getId().getName(),
              ChangeType.ADD));
        }
        tw.release();
      } else {
        RevCommit parent = rw.parseCommit(commit.getParent(0).getId());
        DiffStatFormatter df = new DiffStatFormatter(commit.getName());
        df.setRepository(repository);
        df.setDiffComparator(RawTextComparator.DEFAULT);
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.