Package org.eclipse.jgit.lib

Examples of org.eclipse.jgit.lib.ObjectId


      if (head == null)
        throw new NoHeadException(
            JGitText.get().commitOnRepoWithoutHEADCurrentlyNotSupported);

      // determine the current HEAD and the commit it is referring to
      ObjectId headId = repo.resolve(Constants.HEAD + "^{commit}");
      if (headId != null)
        if (amend) {
          RevCommit previousCommit = new RevWalk(repo)
              .parseCommit(headId);
          RevCommit[] p = previousCommit.getParents();
          for (int i = 0; i < p.length; i++)
            parents.add(0, p[i].getId());
        } else {
          parents.add(0, headId);
        }

      // lock the index
      DirCache index = repo.lockDirCache();
      try {
        if (!only.isEmpty())
          index = createTemporaryIndex(headId, index);

        ObjectInserter odi = repo.newObjectInserter();
        try {
          // Write the index as tree to the object database. This may
          // fail for example when the index contains unmerged paths
          // (unresolved conflicts)
          ObjectId indexTreeId = index.writeTree(odi);

          if (insertChangeId)
            insertChangeId(indexTreeId);

          // Create a Commit object, populate it and write it
          CommitBuilder commit = new CommitBuilder();
          commit.setCommitter(committer);
          commit.setAuthor(author);
          commit.setMessage(message);

          commit.setParentIds(parents);
          commit.setTreeId(indexTreeId);
          ObjectId commitId = odi.insert(commit);
          odi.flush();

          RevWalk revWalk = new RevWalk(repo);
          try {
            RevCommit revCommit = revWalk.parseCommit(commitId);
            RefUpdate ru = repo.updateRef(Constants.HEAD);
            ru.setNewObjectId(commitId);
            if (reflogComment != null) {
              ru.setRefLogMessage(reflogComment, false);
            } else {
              String prefix = amend ? "commit (amend): "
                  : "commit: ";
              ru.setRefLogMessage(
                  prefix + revCommit.getShortMessage(), false);
            }
            if (headId != null)
              ru.setExpectedOldObjectId(headId);
            else
              ru.setExpectedOldObjectId(ObjectId.zeroId());
            Result rc = ru.forceUpdate();
            switch (rc) {
            case NEW:
            case FORCED:
            case FAST_FORWARD: {
              setCallable(false);
              if (state == RepositoryState.MERGING_RESOLVED) {
                // Commit was successful. Now delete the files
                // used for merge commits
                repo.writeMergeCommitMsg(null);
                repo.writeMergeHeads(null);
              } else if (state == RepositoryState.CHERRY_PICKING_RESOLVED) {
                repo.writeMergeCommitMsg(null);
                repo.writeCherryPickHead(null);
              }
              return revCommit;
            }
            case REJECTED:
            case LOCK_FAILURE:
              throw new ConcurrentRefUpdateException(JGitText
                  .get().couldNotLockHEAD, ru.getRef(), rc);
            default:
              throw new JGitInternalException(MessageFormat
                  .format(JGitText.get().updatingRefFailed,
                      Constants.HEAD,
                      commitId.toString(), rc));
            }
          } finally {
            revWalk.release();
          }
        } finally {
View Full Code Here


          JGitText.get().exceptionCaughtDuringExecutionOfCommitCommand, e);
    }
  }

  private void insertChangeId(ObjectId treeId) throws IOException {
    ObjectId firstParentId = null;
    if (!parents.isEmpty())
      firstParentId = parents.get(0);
    ObjectId changeId = ChangeIdUtil.computeChangeId(treeId, firstParentId,
        author, committer, message);
    message = ChangeIdUtil.insertId(message, changeId);
    if (changeId != null)
      message = message.replaceAll("\nChange-Id: I"
          + ObjectId.zeroId().getName() + "\n", "\nChange-Id: I"
          + changeId.getName() + "\n");
  }
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

      // file only exists in working tree -> ignore it
      return;
    }

    ObjectId iId = (i == null ? null : i.getEntryObjectId());
    ObjectId mId = (m == null ? null : m.getEntryObjectId());
    ObjectId hId = (h == null ? null : h.getEntryObjectId());
    FileMode iMode = (i == null ? null : i.getEntryFileMode());
    FileMode mMode = (m == null ? null : m.getEntryFileMode());
    FileMode hMode = (h == null ? null : h.getEntryFileMode());

    /**
 
View Full Code Here

        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

      // loop through all refs to be cherry-picked
      for (Ref src : commits) {
        // get the commit to be cherry-picked
        // handle annotated tags
        ObjectId srcObjectId = src.getPeeledObjectId();
        if (srcObjectId == null)
          srcObjectId = src.getObjectId();
        RevCommit srcCommit = revWalk.parseCommit(srcObjectId);

        // get the parent of the commit to cherry-pick
View Full Code Here

      }

      Ref headRef = repo.getRef(Constants.HEAD);
      String shortHeadRef = getShortBranchName(headRef);
      String refLogMessage = "checkout: moving from " + shortHeadRef;
      ObjectId branch = repo.resolve(name);
      if (branch == null)
        throw new RefNotFoundException(MessageFormat.format(JGitText
            .get().refNotResolved, name));

      RevWalk revWalk = new RevWalk(repo);
View Full Code Here

      final File workTree = repo.getWorkTree();
      final ObjectReader r = repo.getObjectDatabase().newReader();
      try {
        while (startWalk.next()) {
          final ObjectId blobId = startWalk.getObjectId(0);
          final FileMode mode = startWalk.getFileMode(0);
          editor.add(new PathEdit(startWalk.getPathString()) {
            public void apply(DirCacheEntry ent) {
              ent.setObjectId(blobId);
              ent.setFileMode(mode);
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.