Package org.eclipse.jgit.lib

Examples of org.eclipse.jgit.lib.ObjectReader


      modifiedFiles.clear();
      return;
    }

    DirCache dc = db.readDirCache();
    ObjectReader or = db.getObjectDatabase().newReader();
    Iterator<String> mpathsIt=modifiedFiles.iterator();
    while(mpathsIt.hasNext()) {
      String mpath=mpathsIt.next();
      DirCacheEntry entry = dc.getEntry(mpath);
      FileOutputStream fos = new FileOutputStream(new File(db.getWorkTree(), mpath));
      try {
        or.open(entry.getObjectId()).copyTo(fos);
      } finally {
        fos.close();
      }
      mpathsIt.remove();
    }
View Full Code Here


  private boolean doCheckout() throws CorruptObjectException, IOException,
      MissingObjectException, IncorrectObjectTypeException,
      CheckoutConflictException, IndexWriteException {
    toBeDeleted.clear();

    ObjectReader objectReader = repo.getObjectDatabase().newReader();
    try {
      if (headCommitTree != null)
        preScanTwoTrees();
      else
        prescanOneTree();

      if (!conflicts.isEmpty()) {
        if (failOnConflict)
          throw new CheckoutConflictException(conflicts.toArray(new String[conflicts.size()]));
        else
          cleanUpConflicts();
      }

      // update our index
      builder.finish();

      File file = null;
      String last = "";
      // when deleting files process them in the opposite order as they have
      // been reported. This ensures the files are deleted before we delete
      // their parent folders
      for (int i = removed.size() - 1; i >= 0; i--) {
        String r = removed.get(i);
        file = new File(repo.getWorkTree(), r);
        if (!file.delete() && file.exists()) {
          // The list of stuff to delete comes from the index
          // which will only contain a directory if it is
          // a submodule, in which case we shall not attempt
          // to delete it. A submodule is not empty, so it
          // is safe to check this after a failed delete.
          if (!file.isDirectory())
            toBeDeleted.add(r);
        } else {
          if (!isSamePrefix(r, last))
            removeEmptyParents(new File(repo.getWorkTree(), last));
          last = r;
        }
      }
      if (file != null)
        removeEmptyParents(file);

      for (String path : updated.keySet()) {
        // ... create/overwrite this file ...
        file = new File(repo.getWorkTree(), path);
        if (!file.getParentFile().mkdirs()) {
          // ignore
        }

        DirCacheEntry entry = dc.getEntry(path);

        // submodules are handled with separate operations
        if (FileMode.GITLINK.equals(entry.getRawMode()))
          continue;

        checkoutEntry(repo, file, entry, objectReader);
      }

      // commit the index builder - a new index is persisted
      if (!builder.commit())
        throw new IndexWriteException();
    } finally {
      objectReader.release();
    }
    return toBeDeleted.size() == 0;
  }
View Full Code Here

   *            the entry containing new mode and content
   * @throws IOException
   */
  public static void checkoutEntry(final Repository repository, File f,
      DirCacheEntry entry) throws IOException {
    ObjectReader or = repository.newObjectReader();
    try {
      checkoutEntry(repository, f, entry, repository.newObjectReader());
    } finally {
      or.release();
    }
  }
View Full Code Here

    Pattern editRegex = getRegexParameter(a2);

    PatchList pl = StoredValues.PATCH_LIST.get(engine);
    Repository repo = StoredValues.REPOSITORY.get(engine);

    final ObjectReader reader = repo.newObjectReader();
    final RevTree aTree;
    final RevTree bTree;
    try {
      final RevWalk rw = new RevWalk(reader);
      final RevCommit bCommit = rw.parseCommit(pl.getNewId());

      if (pl.getOldId() != null) {
        aTree = rw.parseTree(pl.getOldId());
      } else {
        // Octopus merge with unknown automatic merge result, since the
        // web UI returns no files to match against, just fail.
        return engine.fail();
      }
      bTree = bCommit.getTree();

      for (PatchListEntry entry : pl.getPatches()) {
        String newName = entry.getNewName();
        String oldName = entry.getOldName();

        if (newName.equals("/COMMIT_MSG")) {
          continue;
        }

        if (fileRegex.matcher(newName).find() ||
            (oldName != null && fileRegex.matcher(oldName).find())) {
          List<Edit> edits = entry.getEdits();

          if (edits.isEmpty()) {
            continue;
          }
          Text tA;
          if (oldName != null) {
            tA = load(aTree, oldName, reader);
          } else {
            tA = load(aTree, newName, reader);
          }
          Text tB = load(bTree, newName, reader);
          for (Edit edit : edits) {
            if (tA != Text.EMPTY) {
              String aDiff = tA.getString(edit.getBeginA(), edit.getEndA(), true);
              if (editRegex.matcher(aDiff).find()) {
                return cont;
              }
            }
            if (tB != Text.EMPTY) {
              String bDiff = tB.getString(edit.getBeginB(), edit.getEndB(), true);
              if (editRegex.matcher(bDiff).find()) {
                return cont;
              }
            }
          }
        }
      }
    } catch (IOException err) {
      throw new JavaException(this, 1, err);
    } finally {
      reader.release();
    }

    return engine.fail();
  }
View Full Code Here

    assertTrue(etp.eof());
  }

  public void testCreateSubtreeIterator() throws Exception {
    final EmptyTreeIterator etp = new EmptyTreeIterator();
    final ObjectReader reader = db.newObjectReader();
    final AbstractTreeIterator sub = etp.createSubtreeIterator(reader);
    assertNotNull(sub);
    assertTrue(sub.first());
    assertTrue(sub.eof());
    assertTrue(sub instanceof EmptyTreeIterator);
View Full Code Here

      @Override
      public void stopWalk() {
        called[0] = true;
      }
    };
    final ObjectReader reader = db.newObjectReader();
    parent.createSubtreeIterator(reader).stopWalk();
    assertTrue(called[0]);
  }
View Full Code Here

    top.next(1);
    assertFalse(top.first());
    assertFalse(top.eof());
    assertEquals(FileMode.TREE.getBits(), top.mode);

    final ObjectReader reader = db.newObjectReader();
    final AbstractTreeIterator sub = top.createSubtreeIterator(reader);
    assertTrue(sub instanceof FileTreeIterator);
    final FileTreeIterator subfti = (FileTreeIterator) sub;
    assertTrue(sub.first());
    assertFalse(sub.eof());
View Full Code Here

  @Argument(index = 0)
  private ObjectId objectId;

  @Override
  protected void run() throws Exception {
    ObjectReader reader = db.newObjectReader();
    RevObject obj = new RevWalk(reader).parseAny(objectId);
    byte[] delta = getDelta(reader, obj);

    // We're crossing our fingers that this will be a delta. Double
    // check the size field in the header, it should match.
    //
    long size = reader.getObjectSize(obj, obj.getType());
    try {
      if (BinaryDelta.getResultSize(delta) != size)
        throw die("Object " + obj.name() + " is not a delta");
    } catch (ArrayIndexOutOfBoundsException bad) {
      throw die("Object " + obj.name() + " is not a delta");
View Full Code Here

    this.start = start;
    this.list = list;
  }

  public Object call() throws Exception {
    final ObjectReader or = templateReader.newReader();
    try {
      DeltaWindow dw;
      dw = new DeltaWindow(config, dc, or);
      dw.search(pm, list, start, batchSize);
    } finally {
      or.release();
    }
    return null;
  }
View Full Code Here

   *             a tree object was not found.
   */
  public static TreeWalk forPath(final Repository db, final String path,
      final AnyObjectId... trees) throws MissingObjectException,
      IncorrectObjectTypeException, CorruptObjectException, IOException {
    ObjectReader reader = db.newObjectReader();
    try {
      return forPath(reader, path, trees);
    } finally {
      reader.release();
    }
  }
View Full Code Here

TOP

Related Classes of org.eclipse.jgit.lib.ObjectReader

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.