Package org.eclipse.jgit.lib

Examples of org.eclipse.jgit.lib.ObjectId


        if (objItr.hasNext())
          return objItr.next();
        if (!lItr.next())
          return null;

        ObjectId id = lItr.getObjectId();
        ObjectLoader ldr = lItr.open();
        RevObject r = objects.get(id);
        if (r == null)
          r = parseNew(id, ldr);
        else if (r instanceof RevCommit) {
View Full Code Here


        // not all were asked for on the initial request.
        //
        have.addAll(askFor.keySet());
        askFor.clear();
        for (final Ref r : additionalTags) {
          ObjectId id = r.getPeeledObjectId();
          if (id == null)
            id = r.getObjectId();
          if (transport.local.hasObject(id))
            wantTag(r);
        }
View Full Code Here

    for (final Ref r : conn.getRefs()) {
      if (!isTag(r))
        continue;

      Ref local = haveRefs.get(r.getName());
      ObjectId obj = r.getObjectId();

      if (r.getPeeledObjectId() == null) {
        if (local != null && obj.equals(local.getObjectId()))
          continue;
        if (askFor.containsKey(obj) || transport.local.hasObject(obj))
          wantTag(r);
        else
          additionalTags.add(r);
        continue;
      }

      if (local != null) {
        if (!obj.equals(local.getObjectId()))
          wantTag(r);
      } else if (askFor.containsKey(r.getPeeledObjectId())
          || transport.local.hasObject(r.getPeeledObjectId()))
        wantTag(r);
      else
View Full Code Here

        .setDestination(r.getName()));
  }

  private void want(final Ref src, final RefSpec spec)
      throws TransportException {
    final ObjectId newId = src.getObjectId();
    if (spec.getDestination() != null) {
      try {
        final TrackingRefUpdate tru = createUpdate(spec, newId);
        if (newId.equals(tru.getOldObjectId()))
          return;
        localUpdates.add(tru);
      } catch (IOException err) {
        // Bad symbolic ref? That is the most likely cause.
        //
View Full Code Here

      break;
    }

    case Constants.OBJ_REF_DELTA: {
      c = fill(Source.INPUT, 20);
      final ObjectId base = ObjectId.fromRaw(buf, c);
      System.arraycopy(buf, c, hdrBuf, hdrPtr, 20);
      hdrPtr += 20;
      use(20);
      DeltaChain r = baseById.get(base);
      if (r == null) {
View Full Code Here

    }
  }

  private RevCommit checkoutCurrentHead() throws IOException,
      NoHeadException, JGitInternalException {
    ObjectId headTree = repo.resolve(Constants.HEAD + "^{tree}");
    if (headTree == null)
      throw new NoHeadException(
          JGitText.get().cannotRebaseWithoutCurrentHead);
    DirCache dc = repo.lockDirCache();
    try {
View Full Code Here

    // determine whether we need to commit
    TreeWalk treeWalk = new TreeWalk(repo);
    treeWalk.reset();
    treeWalk.setRecursive(true);
    treeWalk.addTree(new DirCacheIterator(dc));
    ObjectId id = repo.resolve(Constants.HEAD + "^{tree}");
    if (id == null)
      throw new NoHeadException(
          JGitText.get().cannotRebaseWithoutCurrentHead);

    treeWalk.addTree(id);
View Full Code Here

    String headName;
    if (head.isSymbolic())
      headName = head.getTarget().getName();
    else
      headName = "detached HEAD";
    ObjectId headId = head.getObjectId();
    if (headId == null)
      throw new RefNotFoundException(MessageFormat.format(
          JGitText.get().refNotResolved, Constants.HEAD));
    RevCommit headCommit = walk.lookupCommit(headId);
    RevCommit upstream = walk.lookupCommit(upstreamCommit.getId());

    if (walk.isMergedInto(upstream, headCommit))
      return RebaseResult.UP_TO_DATE_RESULT;
    else if (walk.isMergedInto(headCommit, upstream)) {
      // head is already merged into upstream, fast-foward
      monitor.beginTask(MessageFormat.format(
          JGitText.get().resettingHead,
          upstreamCommit.getShortMessage()), ProgressMonitor.UNKNOWN);
      checkoutCommit(upstreamCommit);
      monitor.endTask();

      updateHead(headName, upstreamCommit);
      return RebaseResult.FAST_FORWARD_RESULT;
    }

    monitor.beginTask(JGitText.get().obtainingCommitsForCherryPick,
        ProgressMonitor.UNKNOWN);

    // determine the commits to be applied
    LogCommand cmd = new Git(repo).log().addRange(upstreamCommit,
        headCommit);
    Iterable<RevCommit> commitsToUse = cmd.call();

    List<RevCommit> cherryPickList = new ArrayList<RevCommit>();
    for (RevCommit commit : commitsToUse) {
      if (commit.getParentCount() != 1)
        throw new JGitInternalException(
            JGitText.get().canOnlyCherryPickCommitsWithOneParent);
      cherryPickList.add(commit);
    }

    Collections.reverse(cherryPickList);
    // create the folder for the meta information
    FileUtils.mkdir(rebaseDir);

    createFile(repo.getDirectory(), Constants.ORIG_HEAD, headId.name());
    createFile(rebaseDir, REBASE_HEAD, headId.name());
    createFile(rebaseDir, HEAD_NAME, headName);
    createFile(rebaseDir, ONTO, upstreamCommit.name());
    createFile(rebaseDir, INTERACTIVE, "");
    BufferedWriter fw = new BufferedWriter(new OutputStreamWriter(
        new FileOutputStream(new File(rebaseDir, GIT_REBASE_TODO)),
        Constants.CHARACTER_ENCODING));
    fw.write("# Created by EGit: rebasing " + upstreamCommit.name()
        + " onto " + headId.name());
    fw.newLine();
    try {
      StringBuilder sb = new StringBuilder();
      ObjectReader reader = walk.getObjectReader();
      for (RevCommit commit : cherryPickList) {
View Full Code Here

    Ref head = repo.getRef(Constants.HEAD);
    if (head == null || head.getObjectId() == null)
      throw new RefNotFoundException(MessageFormat.format(
          JGitText.get().refNotResolved, Constants.HEAD));

    ObjectId headId = head.getObjectId();
    if (headId == null)
      throw new RefNotFoundException(MessageFormat.format(
          JGitText.get().refNotResolved, Constants.HEAD));
    RevCommit headCommit = walk.lookupCommit(headId);
    if (walk.isMergedInto(newCommit, headCommit))
View Full Code Here

   * @throws RefNotFoundException
   */
  public RebaseCommand setUpstream(String upstream)
      throws RefNotFoundException {
    try {
      ObjectId upstreamId = repo.resolve(upstream);
      if (upstreamId == null)
        throw new RefNotFoundException(MessageFormat.format(JGitText
            .get().refNotResolved, upstream));
      upstreamCommit = walk.parseCommit(repo.resolve(upstream));
      return this;
View Full Code Here

TOP

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

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.