Example usage for org.eclipse.jgit.lib IndexDiff diff

List of usage examples for org.eclipse.jgit.lib IndexDiff diff

Introduction

In this page you can find the example usage for org.eclipse.jgit.lib IndexDiff diff.

Prototype

public boolean diff(final ProgressMonitor monitor, int estWorkTreeSize, int estIndexSize, final String title)
        throws IOException 

Source Link

Document

Run the diff operation.

Usage

From source file:org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry.java

License:Open Source License

private IndexDiffData calcIndexDiffDataIncremental(IProgressMonitor monitor, String jobName,
        Collection<String> filesToUpdate, Collection<IResource> resourcesToUpdate) throws IOException {
    if (indexDiffData == null)
        // Incremental update not possible without prior indexDiffData
        // -> do full refresh instead
        return calcIndexDiffDataFull(monitor, jobName);

    EclipseGitProgressTransformer jgitMonitor = new EclipseGitProgressTransformer(monitor);

    List<String> treeFilterPaths = calcTreeFilterPaths(filesToUpdate);

    WorkingTreeIterator iterator = IteratorService.createInitialIterator(repository);
    if (iterator == null)
        return null; // workspace is closed
    IndexDiff diffForChangedResources = new IndexDiff(repository, Constants.HEAD, iterator);
    diffForChangedResources.setFilter(PathFilterGroup.createFromStrings(treeFilterPaths));
    diffForChangedResources.diff(jgitMonitor, 0, 0, jobName);
    return new IndexDiffData(indexDiffData, filesToUpdate, resourcesToUpdate, diffForChangedResources);
}

From source file:org.eclipse.egit.core.internal.indexdiff.IndexDiffCacheEntry.java

License:Open Source License

private IndexDiffData calcIndexDiffDataFull(IProgressMonitor monitor, String jobName) throws IOException {
    EclipseGitProgressTransformer jgitMonitor = new EclipseGitProgressTransformer(monitor);

    IndexDiff newIndexDiff;
    WorkingTreeIterator iterator = IteratorService.createInitialIterator(repository);
    if (iterator == null)
        return null; // workspace is closed
    newIndexDiff = new IndexDiff(repository, Constants.HEAD, iterator);
    newIndexDiff.diff(jgitMonitor, 0, 0, jobName);
    return new IndexDiffData(newIndexDiff);
}

From source file:org.jboss.tools.openshift.egit.core.EGitUtils.java

License:Open Source License

/**
 * Returns the changes in the index of the HEAD branch in the given
 * repository. Returns the index diff if there are changes,
 * <code>null</code> otherwise.
 * //w w  w. j  a v a 2s  .co  m
 * @param repo
 *            the repository to get index changes for
 * @param monitor
 *            the monitor to report progress to
 * @return the changes in the index or null;
 * @throws IOException
 */
public static IndexDiff getIndexChanges(Repository repo, IProgressMonitor monitor) throws IOException {
    EclipseGitProgressTransformer jgitMonitor = new EclipseGitProgressTransformer(monitor);

    IndexDiff indexDiff = new IndexDiff(repo, Constants.HEAD, IteratorService.createInitialIterator(repo));
    if (!indexDiff.diff(jgitMonitor, 0, 0, NLS.bind("Repository: {0}", repo.getDirectory().getPath()))) {
        return null;
    }
    return indexDiff;
}

From source file:org.jboss.tools.openshift.express.internal.ui.server.CommitDialog.java

License:Open Source License

/** Retrieve file status
 * @param path//from www  .  j  av  a  2 s.  com
 * @return file status
 * @throws IOException
 */
private Status getFileStatus(String path) throws IOException {
    FileTreeIterator fileTreeIterator = new FileTreeIterator(repository);
    IndexDiff indexDiff = new IndexDiff(repository, Constants.HEAD, fileTreeIterator);
    Set<String> repositoryPaths = Collections.singleton(path);
    indexDiff.setFilter(PathFilterGroup.createFromStrings(repositoryPaths));
    indexDiff.diff(null, 0, 0, ""); //$NON-NLS-1$
    return getFileStatus(path, indexDiff);
}