Package org.eclipse.jgit.revwalk

Examples of org.eclipse.jgit.revwalk.RevTree


        NameKey projName = NameKey.parse(projectName);
        Repository repo = repoManager.openRepository(projName);
        Ref head = repo.getRef(refName);
        RevWalk walk = new RevWalk(repo);
        RevCommit commit = walk.parseCommit(head.getObjectId());
        RevTree tree = commit.getTree();

        TreeWalk treeWalk = new TreeWalk(repo);
        treeWalk.addTree(tree);
        treeWalk.setRecursive(true);
        treeWalk.setFilter(PathFilter.create(filePath));
        if (!treeWalk.next()){
          throw new IllegalStateException("No file found");
        }
       
        ObjectId objId = treeWalk.getObjectId(0);
        ObjectLoader loader = repo.open(objId);
        resp.setHeader("Cache-Control", "no-cache");
        resp.setHeader("ETag", "\"" + tree.getId().getName() + "\"");
        resp.setContentType("application/octet-stream");
        loader.copyTo(out);
        walk.release();
        treeWalk.release();
      }
View Full Code Here


      }
      walk = new RevWalk(repo);
      // add try catch to catch failures

      RevCommit commit = walk.parseCommit(head);
      RevTree tree = commit.getTree();
      treeWalk = new TreeWalk(repo);
      treeWalk.addTree(tree);
      treeWalk.setRecursive(false);
      if (!pattern.equals("")) { //$NON-NLS-1$
        PathFilter pathFilter = PathFilter.create(pattern);
        treeWalk.setFilter(pathFilter);
      }
      JSONArray contents = new JSONArray();
      JSONObject result = null;
      ArrayList<JSONObject> parents = new ArrayList<JSONObject>();

      URI baseLocation = ServletResourceHandler.getURI(request);
      Path basePath = new Path(baseLocation.getPath());
      IPath tmp = new Path("/"); //$NON-NLS-1$
      for (int i = 0; i < 5; i++) {
        tmp = tmp.append(basePath.segment(i));
      }
      URI cloneLocation = new URI(baseLocation.getScheme(), baseLocation.getAuthority(), tmp.toPortableString(), null, baseLocation.getFragment());
      JSONObject ref = listEntry(gitSegment, 0, true, 0, cloneLocation, GitUtils.encode(gitSegment));

      parents.add(ref);
      parents.add(listEntry(new Path(cloneLocation.getPath()).lastSegment(), 0, true, 0, cloneLocation, null));
      URI locationWalk = URIUtil.append(cloneLocation, GitUtils.encode(gitSegment));
      while (treeWalk.next()) {
        if (treeWalk.isSubtree()) {
          if (treeWalk.getPathLength() > pattern.length()) {
            String name = treeWalk.getNameString();
            contents.put(listEntry(name, 0, true, 0, locationWalk, name));
          }
          if (treeWalk.getPathLength() <= pattern.length()) {
            locationWalk = URIUtil.append(locationWalk, treeWalk.getNameString());
            parents.add(0, listEntry(treeWalk.getNameString(), 0, true, 0, locationWalk, null));
            treeWalk.enterSubtree();
          }
        } else {
          ObjectId objId = treeWalk.getObjectId(0);
          ObjectLoader loader = repo.open(objId);
          long size = loader.getSize();
          if (treeWalk.getPathLength() == pattern.length()) {
            if ("meta".equals(meta)) { //$NON-NLS-1$
              result = listEntry(treeWalk.getNameString(), 0, false, 0, locationWalk, treeWalk.getNameString());
            } else {
              return getFileContents(request, response, repo, treeWalk, tree);
            }
          } else {
            String name = treeWalk.getNameString();
            contents.put(listEntry(name, 0, false, size, locationWalk, name));
          }
        }
      }
      if (result == null) {
        result = parents.remove(0);
        result.put("Children", contents); //$NON-NLS-1$
      }
      result.put("Parents", new JSONArray(parents)); //$NON-NLS-1$
      response.setContentType("application/json"); //$NON-NLS-1$
      response.setHeader("Cache-Control", "no-cache"); //$NON-NLS-1$
      response.setHeader("ETag", "\"" + tree.getId().getName() + "\""); //$NON-NLS-1$
      OrionServlet.writeJSONResponse(request, response, result);
      return true;
    } catch (Exception e) {
      return statusHandler.handleRequest(request, response, new ServerStatus(IStatus.ERROR, HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
          "An error occured when requesting commit info.", e));
View Full Code Here

              JGitText.get().reflogsNotYetSupportedByRevisionParser,
              revstr);
        i = m - 1;
        break;
      case ':': {
        RevTree tree;
        if (ref == null) {
          // We might not yet have parsed the left hand side.
          ObjectId id;
          try {
            if (i == 0)
              id = resolve(rw, Constants.HEAD);
            else
              id = resolve(rw, new String(rev, 0, i));
          } catch (RevisionSyntaxException badSyntax) {
            throw new RevisionSyntaxException(revstr);
          }
          if (id == null)
            return null;
          tree = rw.parseTree(id);
        } else {
          tree = rw.parseTree(ref);
        }

        if (i == rev.length - i)
          return tree.copy();

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

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

  }

  public void testUsingUnknownTreeFails() throws Exception {
    TestRepository<Repository> s = new TestRepository<Repository>(src);
    RevCommit N = s.commit().parent(B).add("q", s.blob("a")).create();
    RevTree t = s.parseBody(N).getTree();

    // Don't include the tree in the pack.
    //
    final TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024);
    packHeader(pack, 1);
    copy(pack, src.open(N));
    digest(pack);

    final TemporaryBuffer.Heap inBuf = new TemporaryBuffer.Heap(1024);
    final PacketLineOut inPckLine = new PacketLineOut(inBuf);
    inPckLine.writeString(ObjectId.zeroId().name() + ' ' + N.name() + ' '
        + "refs/heads/s" + '\0'
        + BasePackPushConnection.CAPABILITY_REPORT_STATUS);
    inPckLine.end();
    pack.writeTo(inBuf, PM);

    final TemporaryBuffer.Heap outBuf = new TemporaryBuffer.Heap(1024);
    final ReceivePack rp = new ReceivePack(dst);
    rp.setCheckReceivedObjects(true);
    rp.setCheckReferencedObjectsAreReachable(true);
    rp.setRefFilter(new HidePrivateFilter());
    rp.receive(new ByteArrayInputStream(inBuf.toByteArray()), outBuf, null);

    final PacketLineIn r = asPacketLineIn(outBuf);
    String master = r.readString();
    int nul = master.indexOf('\0');
    assertTrue("has capability list", nul > 0);
    assertEquals(B.name() + ' ' + R_MASTER, master.substring(0, nul));
    assertSame(PacketLineIn.END, r.readString());

    assertEquals("unpack error Missing tree " + t.name(), r.readString());
    assertEquals("ng refs/heads/s n/a (unpacker error)", r.readString());
    assertSame(PacketLineIn.END, r.readString());
  }
View Full Code Here

      throw new CmdLineException(e.getMessage());
    }
    if (id == null)
      throw new CmdLineException(MessageFormat.format(CLIText.get().notATree, name));

    final RevTree c;
    try {
      c = clp.getRevWalk().parseTree(id);
    } catch (MissingObjectException e) {
      throw new CmdLineException(MessageFormat.format(CLIText.get().notATree, name));
    } catch (IncorrectObjectTypeException e) {
View Full Code Here

      throws IOException {

    Ref gitHead = repo.getRef(ref);
    RevWalk revWalk = new RevWalk(repo);
    RevCommit gitCommit = revWalk.parseCommit(gitHead.getObjectId());
    RevTree gitTree = revWalk.parseTree(gitCommit.getTree().getId());
    CanonicalTreeParser treeParser = new CanonicalTreeParser();
    ObjectReader newObjectReader = repo.newObjectReader();

    try {
      treeParser.reset(newObjectReader, gitTree.getId());
    }
    finally {
      newObjectReader.release();
    }
    revWalk.dispose();
View Full Code Here

          i = m;
        } else
          throw new RevisionSyntaxException(revstr);
        break;
      case ':': {
        RevTree tree;
        if (rev == null) {
          if (name == null)
            name = new String(revChars, done, i);
          if (name.equals(""))
            name = Constants.HEAD;
          rev = parseSimple(rw, name);
        }
        if (rev == null)
          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;
View Full Code Here

                .from(walk)
                .transform(new Function<RevCommit, RevCommit>() {
                    @Override
                    public RevCommit apply(RevCommit revCommit) {
                        try {
                            RevTree revTree = revCommit.getTree();
                            TreeWalk treeWalk = new TreeWalk(context.getRepository());
                            treeWalk.addTree(revTree);
                            treeWalk.setRecursive(true);
                            while (treeWalk.next()) {
                                ObjectId objectId = treeWalk.getObjectId(0);
View Full Code Here

    static private ObjectId getBlobId(Repository repo, String rev, String path) throws IOException {
        if (StringUtils.isEmpty(rev)) {
            throw new IllegalArgumentException("rev must not be empty");
        }
        RevTree tree = new RevWalk(repo).parseTree(repo.resolve(rev));
        TreeWalk tw = TreeWalk.forPath(repo, path, tree);
        if (tw == null) {
            return null;
        }
        return tw.getObjectId(0);
View Full Code Here

TOP

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

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.