Package org.eclipse.jgit.treewalk

Examples of org.eclipse.jgit.treewalk.FileTreeIterator


  @Override
  public int parseArguments(final Parameters params) throws CmdLineException {
    final String name = params.getParameter(0);

    if (new File(name).isDirectory()) {
      setter.addValue(new FileTreeIterator(
        new File(name),
        FS.DETECTED,
        clp.getRepository().getConfig().get(WorkingTreeOptions.KEY)));
      return 1;
    }
View Full Code Here


   * @return a {@link Status} object telling about each path where working
   *         tree, index or HEAD differ from each other.
   */
  public Status call() throws GitAPIException, NoWorkTreeException {
    if (workingTreeIt == null)
      workingTreeIt = new FileTreeIterator(repo);

    try {
      IndexDiff diff = new IndexDiff(repo, Constants.HEAD, workingTreeIt);
      if (ignoreSubmoduleMode != null)
        diff.setIgnoreSubmoduleMode(ignoreSubmoduleMode);
View Full Code Here

      boolean honorIgnores) throws Exception {
    TreeWalk treeWalk = new TreeWalk(db);
    treeWalk.setRecursive(isRecursive);
    treeWalk.addTree(commit.getTree());
    treeWalk.addTree(new DirCacheIterator(db.readDirCache()));
    treeWalk.addTree(new FileTreeIterator(db));
    if (!honorIgnores)
      treeWalk.setFilter(new IndexDiffFilter(1, 2, honorIgnores));
    else
      treeWalk.setFilter(new IndexDiffFilter(1, 2));
    return treeWalk;
View Full Code Here

      try {
        TreeWalk treeWalk = new TreeWalk(reader);
        treeWalk.setRecursive(true);
        treeWalk.addTree(headCommit.getTree());
        treeWalk.addTree(new DirCacheIterator(cache));
        treeWalk.addTree(new FileTreeIterator(repo));
        treeWalk.setFilter(AndTreeFilter.create(new SkipWorkTreeFilter(
            1), new IndexDiffFilter(1, 2)));

        // Return null if no local changes to stash
        if (!treeWalk.next())
View Full Code Here

      DirCacheBuilder builder = dc.builder();
      final TreeWalk tw = new TreeWalk(repo);
      tw.addTree(new DirCacheBuildIterator(builder));
      if (workingTreeIterator == null)
        workingTreeIterator = new FileTreeIterator(repo);
      tw.addTree(workingTreeIterator);
      tw.setRecursive(true);
      if (!addAll)
        tw.setFilter(PathFilterGroup.createFromStrings(filepatterns));
View Full Code Here

    onlyProcessed = new boolean[only.size()];
    boolean emptyCommit = true;

    TreeWalk treeWalk = new TreeWalk(repo);
    int dcIdx = treeWalk.addTree(new DirCacheBuildIterator(existingBuilder));
    int fIdx = treeWalk.addTree(new FileTreeIterator(repo));
    int hIdx = -1;
    if (headId != null)
      hIdx = treeWalk.addTree(rw.parseTree(headId));
    treeWalk.setRecursive(true);

    String lastAddedFile = null;
    while (treeWalk.next()) {
      String path = treeWalk.getPathString();
      // check if current entry's path matches a specified path
      int pos = lookupOnly(path);

      CanonicalTreeParser hTree = null;
      if (hIdx != -1)
        hTree = treeWalk.getTree(hIdx, CanonicalTreeParser.class);

      DirCacheIterator dcTree = treeWalk.getTree(dcIdx,
          DirCacheIterator.class);

      if (pos >= 0) {
        // include entry in commit

        FileTreeIterator fTree = treeWalk.getTree(fIdx,
            FileTreeIterator.class);

        // check if entry refers to a tracked file
        boolean tracked = dcTree != null || hTree != null;
        if (!tracked)
          break;

        // for an unmerged path, DirCacheBuildIterator will yield 3
        // entries, we only want to add one
        if (path.equals(lastAddedFile))
          continue;

        lastAddedFile = path;

        if (fTree != null) {
          // create a new DirCacheEntry with data retrieved from disk
          final DirCacheEntry dcEntry = new DirCacheEntry(path);
          long entryLength = fTree.getEntryLength();
          dcEntry.setLength(entryLength);
          dcEntry.setLastModified(fTree.getEntryLastModified());
          dcEntry.setFileMode(fTree.getIndexFileMode(dcTree));

          boolean objectExists = (dcTree != null && fTree
              .idEqual(dcTree))
              || (hTree != null && fTree.idEqual(hTree));
          if (objectExists) {
            dcEntry.setObjectId(fTree.getEntryObjectId());
          } else {
            if (FileMode.GITLINK.equals(dcEntry.getFileMode()))
              dcEntry.setObjectId(fTree.getEntryObjectId());
            else {
              // insert object
              if (inserter == null)
                inserter = repo.newObjectInserter();
              long contentLength = fTree.getEntryContentLength();
              InputStream inputStream = fTree.openEntryStream();
              try {
                dcEntry.setObjectId(inserter.insert(
                    Constants.OBJ_BLOB, contentLength,
                    inputStream));
              } finally {
                inputStream.close();
              }
            }
          }

          // add to existing index
          existingBuilder.add(dcEntry);
          // add to temporary in-core index
          tempBuilder.add(dcEntry);

          if (emptyCommit
              && (hTree == null || !hTree.idEqual(fTree) || hTree
                  .getEntryRawMode() != fTree
                  .getEntryRawMode()))
            // this is a change
            emptyCommit = false;
        } else {
          // if no file exists on disk, neither add it to
View Full Code Here

        List<String> unmergedPaths = null;
        if (merger instanceof ResolveMerger) {
          ResolveMerger resolveMerger = (ResolveMerger) merger;
          resolveMerger.setCommitNames(new String[] {
              "BASE", "HEAD", ref.getName() }); //$NON-NLS-1$ //$NON-NLS-2$
          resolveMerger.setWorkingTreeIterator(new FileTreeIterator(repo));
          noProblems = merger.merge(headCommit, srcCommit);
          lowLevelResults = resolveMerger
              .getMergeResults();
          failingPaths = resolveMerger.getFailingPaths();
          unmergedPaths = resolveMerger.getUnmergedPaths();
View Full Code Here

      ResolveMerger merger = (ResolveMerger) strategy.newMerger(repo);
      merger.setCommitNames(new String[] { "stashed HEAD", "HEAD",
          "stash" });
      merger.setBase(stashHeadCommit);
      merger.setWorkingTreeIterator(new FileTreeIterator(repo));
      if (merger.merge(headCommit, stashCommit)) {
        DirCache dc = repo.lockDirCache();
        DirCacheCheckout dco = new DirCacheCheckout(repo, headTree,
            dc, merger.getResultTreeId());
        dco.setFailOnConflict(true);
View Full Code Here

      IOException {
    TreeWalk walk = null;
    try {
      walk = new TreeWalk(repo); // maybe NameConflictTreeWalk?
      walk.addTree(tree);
      walk.addTree(new FileTreeIterator(repo));
      walk.setRecursive(true);

      final ObjectReader reader = walk.getObjectReader();

      while (walk.next()) {
        final AbstractTreeIterator cIter = walk.getTree(0,
            AbstractTreeIterator.class);
        if (cIter == null)
          // Not in commit, don't create untracked
          continue;

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

        FileTreeIterator fIter = walk
            .getTree(1, FileTreeIterator.class);
        if (fIter != null) {
          if (fIter.isModified(entry, true, reader)) {
            // file exists and is dirty
            throw new CheckoutConflictException(
                entry.getPathString());
          }
        }
View Full Code Here

   *            the id of the tree we want to fast-forward to
   * @throws IOException
   */
  public DirCacheCheckout(Repository repo, ObjectId headCommitTree,
      DirCache dc, ObjectId mergeCommitTree) throws IOException {
    this(repo, headCommitTree, dc, mergeCommitTree, new FileTreeIterator(repo));
  }
View Full Code Here

TOP

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

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.