Package org.eclipse.jgit.revwalk

Examples of org.eclipse.jgit.revwalk.ObjectWalk


    }
  }

  protected RevWalk createWalk() {
    if (objects)
      return new ObjectWalk(db);
    if (argWalk == null)
      argWalk = new RevWalk(db);
    return argWalk;
  }
View Full Code Here


    for (final RevCommit c : walk) {
      n++;
      show(c);
    }
    if (walk instanceof ObjectWalk) {
      final ObjectWalk ow = (ObjectWalk) walk;
      for (;;) {
        final RevObject obj = ow.nextObject();
        if (obj == null)
          break;
        show(ow, obj);
      }
    }
View Full Code Here

    }
  }

  private boolean askForIsComplete() throws TransportException {
    try {
      final ObjectWalk ow = new ObjectWalk(transport.local);
      try {
        for (final ObjectId want : askFor.keySet())
          ow.markStart(ow.parseAny(want));
        for (final Ref ref : transport.local.getAllRefs().values())
          ow.markUninteresting(ow.parseAny(ref.getObjectId()));
        ow.checkConnectivity();
      } finally {
        ow.release();
      }
      return true;
    } catch (MissingObjectException e) {
      return false;
    } catch (IOException e) {
View Full Code Here

      baseObjects = ip.getBaseObjectIds();
      providedObjects = ip.getNewObjectIds();
    }
    ip = null;

    final ObjectWalk ow = new ObjectWalk(db);
    for (final ReceiveCommand cmd : commands) {
      if (cmd.getResult() != Result.NOT_ATTEMPTED)
        continue;
      if (cmd.getType() == ReceiveCommand.Type.DELETE)
        continue;
      ow.markStart(ow.parseAny(cmd.getNewId()));
    }
    for (final Ref ref : refs.values()) {
      RevObject o = ow.parseAny(ref.getObjectId());
      ow.markUninteresting(o);

      if (checkReferencedIsReachable && !baseObjects.isEmpty()) {
        o = ow.peel(o);
        if (o instanceof RevCommit)
          o = ((RevCommit) o).getTree();
        if (o instanceof RevTree)
          ow.markUninteresting(o);
      }
    }

    if (checkReferencedIsReachable) {
      for (ObjectId id : baseObjects) {
           RevObject b = ow.lookupAny(id, Constants.OBJ_BLOB);
           if (!b.has(RevFlag.UNINTERESTING))
             throw new MissingObjectException(b, b.getType());
      }
    }

    RevCommit c;
    while ((c = ow.next()) != null) {
      if (checkReferencedIsReachable && !providedObjects.contains(c))
        throw new MissingObjectException(c, Constants.TYPE_COMMIT);
    }

    RevObject o;
    while ((o = ow.nextObject()) != null) {
      if (checkReferencedIsReachable) {
        if (providedObjects.contains(o))
          continue;
        else
          throw new MissingObjectException(o, o.getType());
View Full Code Here

      final Collection<? extends ObjectId> interestingObjects,
      final Collection<? extends ObjectId> uninterestingObjects)
      throws IOException {
    if (countingMonitor == null)
      countingMonitor = NullProgressMonitor.INSTANCE;
    ObjectWalk walker = setUpWalker(interestingObjects,
        uninterestingObjects);
    findObjectsToPack(countingMonitor, walker);
  }
View Full Code Here

  private ObjectWalk setUpWalker(
      final Collection<? extends ObjectId> interestingObjects,
      final Collection<? extends ObjectId> uninterestingObjects)
      throws MissingObjectException, IOException,
      IncorrectObjectTypeException {
    final ObjectWalk walker = new ObjectWalk(reader);
    walker.setRetainBody(false);
    walker.sort(RevSort.COMMIT_TIME_DESC);
    if (thin)
      walker.sort(RevSort.BOUNDARY, true);

    for (ObjectId id : interestingObjects) {
      RevObject o = walker.parseAny(id);
      walker.markStart(o);
    }
    if (uninterestingObjects != null) {
      for (ObjectId id : uninterestingObjects) {
        final RevObject o;
        try {
          o = walker.parseAny(id);
        } catch (MissingObjectException x) {
          if (ignoreMissingUninteresting)
            continue;
          throw x;
        }
        walker.markUninteresting(o);
      }
    }
    return walker;
  }
View Full Code Here

      // There are new/modified refs! Check which loose objects are now
      // referenced by these modified refs (or their reflogentries).
      // Remove these loose objects
      // from the deletionCandidates. When the last candidate is removed
      // leave this method.
      ObjectWalk w = new ObjectWalk(repo);
      try {
        for (Ref cr : newRefs.values())
          w.markStart(w.parseAny(cr.getObjectId()));
        if (lastPackedRefs != null)
          for (Ref lpr : lastPackedRefs.values())
            w.markUninteresting(w.parseAny(lpr.getObjectId()));
        removeReferenced(deletionCandidates, w);
      } finally {
        w.dispose();
      }
    }

    if (deletionCandidates.isEmpty())
      return;

    // Since we have not left the method yet there are still
    // deletionCandidates. Last chance for these objects not to be pruned is
    // that they are referenced by reflog entries. Even refs which currently
    // point to the same object as during last repack() may have
    // additional reflog entries not handled during last repack()
    ObjectWalk w = new ObjectWalk(repo);
    try {
      for (Ref ar : getAllRefs().values())
        for (ObjectId id : listRefLogObjects(ar, lastRepackTime))
          w.markStart(w.parseAny(id));
      if (lastPackedRefs != null)
        for (Ref lpr : lastPackedRefs.values())
          w.markUninteresting(w.parseAny(lpr.getObjectId()));
      removeReferenced(deletionCandidates, w);
    } finally {
      w.dispose();
    }

    if (deletionCandidates.isEmpty())
      return;
View Full Code Here

      baseObjects = parser.getBaseObjectIds();
      providedObjects = parser.getNewObjectIds();
    }
    parser = null;

    final ObjectWalk ow = new ObjectWalk(db);
    ow.setRetainBody(false);
    if (baseObjects != null) {
      ow.sort(RevSort.TOPO);
      if (!baseObjects.isEmpty())
        ow.sort(RevSort.BOUNDARY, true);
    }

    for (final ReceiveCommand cmd : commands) {
      if (cmd.getResult() != Result.NOT_ATTEMPTED)
        continue;
      if (cmd.getType() == ReceiveCommand.Type.DELETE)
        continue;
      ow.markStart(ow.parseAny(cmd.getNewId()));
    }
    for (final ObjectId have : advertisedHaves) {
      RevObject o = ow.parseAny(have);
      ow.markUninteresting(o);

      if (baseObjects != null && !baseObjects.isEmpty()) {
        o = ow.peel(o);
        if (o instanceof RevCommit)
          o = ((RevCommit) o).getTree();
        if (o instanceof RevTree)
          ow.markUninteresting(o);
      }
    }

    RevCommit c;
    while ((c = ow.next()) != null) {
      if (providedObjects != null //
          && !c.has(RevFlag.UNINTERESTING) //
          && !providedObjects.contains(c))
        throw new MissingObjectException(c, Constants.TYPE_COMMIT);
    }

    RevObject o;
    while ((o = ow.nextObject()) != null) {
      if (o.has(RevFlag.UNINTERESTING))
        continue;

      if (providedObjects != null) {
        if (providedObjects.contains(o))
          continue;
        else
          throw new MissingObjectException(o, o.getType());
      }

      if (o instanceof RevBlob && !db.hasObject(o))
        throw new MissingObjectException(o, Constants.TYPE_BLOB);
    }

    if (baseObjects != null) {
      for (ObjectId id : baseObjects) {
        o = ow.parseAny(id);
        if (!o.has(RevFlag.UNINTERESTING))
          throw new MissingObjectException(o, o.getType());
      }
    }
  }
View Full Code Here

   *             when some I/O problem occur during reading objects.
   */
  public void preparePack(ProgressMonitor countingMonitor,
      Set<? extends ObjectId> want,
      Set<? extends ObjectId> have) throws IOException {
    ObjectWalk ow;
    if (shallowPack)
      ow = new DepthWalk.ObjectWalk(reader, depth);
    else
      ow = new ObjectWalk(reader);
    preparePack(countingMonitor, ow, want, have);
  }
View Full Code Here

    }
  }

  private boolean askForIsComplete() throws TransportException {
    try {
      final ObjectWalk ow = new ObjectWalk(transport.local);
      try {
        for (final ObjectId want : askFor.keySet())
          ow.markStart(ow.parseAny(want));
        for (final Ref ref : localRefs().values())
          ow.markUninteresting(ow.parseAny(ref.getObjectId()));
        ow.checkConnectivity();
      } finally {
        ow.release();
      }
      return true;
    } catch (MissingObjectException e) {
      return false;
    } catch (IOException e) {
View Full Code Here

TOP

Related Classes of org.eclipse.jgit.revwalk.ObjectWalk

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.