Example usage for org.eclipse.jgit.lib ObjectId fromString

List of usage examples for org.eclipse.jgit.lib ObjectId fromString

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib ObjectId fromString.

Prototype

public static ObjectId fromString(String str) 

Source Link

Document

Convert an ObjectId from hex characters.

Usage

From source file:org.eclipse.egit.ui.internal.commit.CommitEditorInputFactory.java

License:Open Source License

/**
 * Get commit from memento and repository
 *
 * @param memento/*w w  w .  ja va2  s.  c om*/
 * @param repository
 * @return rev commit
 */
protected RevCommit getCommit(IMemento memento, Repository repository) {
    String id = memento.getString(COMMIT);
    if (id == null)
        return null;

    RevWalk walk = new RevWalk(repository);
    try {
        RevCommit commit = walk.parseCommit(ObjectId.fromString(id));
        for (RevCommit parent : commit.getParents())
            walk.parseBody(parent);
        return commit;
    } catch (IOException e) {
        return null;
    } finally {
        walk.release();
    }
}

From source file:org.eclipse.egit.ui.internal.commit.CommitSelectionDialog.java

License:Open Source License

protected void fillContentProvider(AbstractContentProvider contentProvider, ItemsFilter itemsFilter,
        IProgressMonitor progressMonitor) throws CoreException {
    String pattern = itemsFilter.getPattern();
    Repository[] repositories = getRepositories();
    progressMonitor.beginTask(UIText.CommitSelectionDialog_TaskSearching, repositories.length);
    for (Repository repository : repositories) {
        try {// www.  j  av a  2  s  .c o m
            ObjectId commitId;
            if (ObjectId.isId(pattern))
                commitId = ObjectId.fromString(pattern);
            else
                commitId = repository.resolve(itemsFilter.getPattern());
            if (commitId != null) {
                RevWalk walk = new RevWalk(repository);
                walk.setRetainBody(true);
                RevCommit commit = walk.parseCommit(commitId);
                contentProvider.add(new RepositoryCommit(repository, commit), itemsFilter);
            }
        } catch (RevisionSyntaxException ignored) {
            // Ignore and advance
        } catch (IOException ignored) {
            // Ignore and advance
        }
        progressMonitor.worked(1);
    }
}

From source file:org.eclipse.egit.ui.internal.dialogs.CommitDialog.java

License:Open Source License

private void saveOriginalChangeId() {
    int changeIdOffset = findOffsetOfChangeIdLine(previousCommitMessage);
    if (changeIdOffset > 0) {
        int endOfChangeId = findNextEOL(changeIdOffset, previousCommitMessage);
        int sha1Offset = changeIdOffset + "\nChange-Id: I".length(); //$NON-NLS-1$
        try {/*from  ww w. j  a  v a 2s .  co m*/
            originalChangeId = ObjectId.fromString(previousCommitMessage.substring(sha1Offset, endOfChangeId));
        } catch (IllegalArgumentException e) {
            originalChangeId = null;
        }
    } else
        originalChangeId = null;
}

From source file:org.eclipse.egit.ui.internal.dialogs.CommitMessageComponent.java

License:Open Source License

private void saveOriginalChangeId() {
    int changeIdOffset = findOffsetOfChangeIdLine(previousCommitMessage);
    if (changeIdOffset > 0) {
        int endOfChangeId = findNextEOL(changeIdOffset, previousCommitMessage);
        if (endOfChangeId < 0)
            endOfChangeId = previousCommitMessage.length();
        int sha1Offset = changeIdOffset + "Change-Id: I".length(); //$NON-NLS-1$
        try {/*  w  w  w.  ja  v  a2s.c  o  m*/
            originalChangeId = ObjectId.fromString(previousCommitMessage.substring(sha1Offset, endOfChangeId));
        } catch (IllegalArgumentException e) {
            originalChangeId = null;
        }
    } else
        originalChangeId = null;
}

From source file:org.eclipse.egit.ui.internal.dialogs.CommitMessageComponentStateManager.java

License:Open Source License

/**
 * @param repository/* www .ja  v a  2 s  . c  o  m*/
 * @return state
 */
public static CommitMessageComponentState loadState(Repository repository) {
    IDialogSettings dialogSettings = getDialogSettings();
    String[] values = dialogSettings.getArray(repository.getDirectory().getAbsolutePath());
    if (values == null || values.length < MEMBER_COUNT)
        return null;
    CommitMessageComponentState state = new CommitMessageComponentState();
    state.setAmend(Boolean.parseBoolean(values[0]));
    state.setAuthor(values[1]);
    state.setCommitMessage(values[2]);
    state.setCommitter(values[3]);
    state.setHeadCommit(ObjectId.fromString(values[4]));
    return state;
}

From source file:org.eclipse.mylyn.internal.gerrit.ui.egit.GitFileRevisionUtils.java

License:Open Source License

public static IFileRevision getFileRevision(final Repository repository, final IFileVersion reviewFileVersion) {
    IFileRevision gitFileRevision = null;

    if (reviewFileVersion != null && reviewFileVersion.getPath() != null) {
        //Get SHA-1 for the file revision to look for the correct file revision in the Git repository
        ObjectInserter inserter = repository.newObjectInserter();
        String id = inserter.idFor(Constants.OBJ_BLOB, CompareUtil.getContent(reviewFileVersion)).getName();
        inserter.release();//from   w  w  w. j  a  va 2  s . c om
        if (id != null) {
            final ObjectId objId = ObjectId.fromString(id);
            if (objId != null) {
                final IPath path = Path.fromPortableString(reviewFileVersion.getPath());
                gitFileRevision = new org.eclipse.team.core.history.provider.FileRevision() {

                    public IFileRevision withAllProperties(IProgressMonitor monitor) throws CoreException {
                        return this;
                    }

                    public boolean isPropertyMissing() {
                        return false;
                    }

                    public IStorage getStorage(IProgressMonitor monitor) throws CoreException {
                        return getFileRevisionStorage(null, repository, path, objId);
                    }

                    public String getName() {
                        return path.lastSegment();
                    }
                };
            }
        }
    }
    return gitFileRevision;
}

From source file:org.eclipse.mylyn.internal.git.core.GitArtifact.java

License:Open Source License

@Override
public IFileRevision getFileRevision(IProgressMonitor monitor) {
    try {/*from w w w .ja va  2s.  com*/
        final IPath path = Path.fromPortableString(getPath());
        return new FileRevision() {

            public IFileRevision withAllProperties(IProgressMonitor monitor) throws CoreException {
                return this;
            }

            public boolean isPropertyMissing() {
                return false;
            }

            public IStorage getStorage(IProgressMonitor monitor) throws CoreException {
                return new IStorage() {

                    @SuppressWarnings("rawtypes")
                    public Object getAdapter(Class adapter) {
                        return null;
                    }

                    public boolean isReadOnly() {
                        return true;
                    }

                    public String getName() {
                        return path.lastSegment();
                    }

                    public IPath getFullPath() {
                        return path;
                    }

                    public InputStream getContents() throws CoreException {
                        try {
                            return repository.getRepository()
                                    .open(ObjectId.fromString(getId()), Constants.OBJ_BLOB).openStream();
                        } catch (Exception e) {
                            e.printStackTrace();
                            throw new CoreException(
                                    new Status(IStatus.ERROR, GitConnector.PLUGIN_ID, e.getMessage()));
                        }
                    }
                };
            }

            public String getName() {
                return path.lastSegment();
            }
        };

    } catch (Exception e) {
        e.printStackTrace();
        return null;
    }
}

From source file:org.eclipse.mylyn.internal.git.core.GitConnector.java

License:Open Source License

@Override
public ChangeSet getChangeSet(ScmRepository repository, IFileRevision revision, IProgressMonitor monitor)
        throws CoreException {
    Repository repository2 = ((GitRepository) repository).getRepository();
    RevWalk walk = new RevWalk(repository2);
    try {//w ww.j  a v  a 2 s .c o m
        RevCommit commit;
        commit = walk.parseCommit(ObjectId.fromString(revision.getContentIdentifier()));
        TreeWalk treeWalk = new TreeWalk(repository2);
        for (RevCommit p : commit.getParents()) {
            walk.parseHeaders(p);
            walk.parseBody(p);
            treeWalk.addTree(p.getTree());
            //we can compare with one parent only
            break;
        }
        treeWalk.addTree(commit.getTree());
        treeWalk.setRecursive(true);

        List<DiffEntry> entries = DiffEntry.scan(treeWalk);
        List<Change> changes = new ArrayList<Change>();
        File repoDir = repository2.getWorkTree().getAbsoluteFile();

        //define working area repo URI
        IPath repoWorkAreaPath = new Path(repoDir.getAbsolutePath()).addTrailingSeparator();

        for (DiffEntry d : entries) {
            // FIXME - could not work for renaming
            if (!d.getChangeType().equals(org.eclipse.jgit.diff.DiffEntry.ChangeType.RENAME)
                    && d.getOldId().equals(d.getNewId())) {
                continue;
            }

            //Create old and new artifacts with IResource information if available from the current workspace
            ScmArtifact newArtifact = getArtifact(repository, d, false, repoWorkAreaPath);
            ScmArtifact oldArtifact = getArtifact(repository, d, true, repoWorkAreaPath);

            changes.add(new Change(oldArtifact, newArtifact, mapChangeType(d.getChangeType())));
        }

        return changeSet(commit, repository, changes);

    } catch (Exception e) {
        e.printStackTrace();
        throw new CoreException(new Status(IStatus.ERROR, GitConnector.PLUGIN_ID, e.getMessage()));
    }

}

From source file:org.eclipse.mylyn.internal.git.ui.connector.GitConnectorUi.java

License:Open Source License

private RevCommit getCommit(Repository repository, String objectId) {
    RevWalk revWalk = null;/*from   w ww.  j  a v  a2  s .com*/
    try {
        revWalk = new RevWalk(repository);
        return revWalk.parseCommit(ObjectId.fromString(objectId));
    } catch (Exception e) {
        return null;
    } finally {
        if (revWalk != null) {
            revWalk.release();
        }
    }
}

From source file:org.eclipse.mylyn.internal.github.ui.pr.CommitAttributePart.java

License:Open Source License

private void openCommits(final Repository repository, final Object[] elements) {
    if (elements.length == 0)
        return;/*from w ww. ja va 2s . c o m*/
    if (repository == null)
        return;
    RevWalk walk = new RevWalk(repository);
    try {
        for (Object element : elements) {
            String id = ((PullRequestCommitAdapter) element).getCommit().getSha();
            try {
                CommitEditor
                        .openQuiet(new RepositoryCommit(repository, walk.parseCommit(ObjectId.fromString(id))));
            } catch (MissingObjectException ignored) {
                boolean fetch = MessageDialog.openQuestion(getControl().getShell(),
                        Messages.CommitAttributePart_TitleFetch, Messages.CommitAttributePart_MessageFetch);
                if (fetch) {
                    fetchCommits(new Runnable() {

                        public void run() {
                            PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {

                                public void run() {
                                    openCommits(repository, elements);
                                }
                            });
                        }
                    });
                }

            }
        }
    } catch (IOException e) {
        GitHubUi.logError(e);
    } finally {
        walk.release();
    }
}