List of usage examples for org.eclipse.jgit.lib IndexDiff IndexDiff
public IndexDiff(Repository repository, ObjectId objectId, WorkingTreeIterator workingTreeIterator) throws IOException
From source file:com.github.koraktor.mavanagaiata.git.jgit.JGitRepository.java
License:Open Source License
public boolean isDirty(boolean ignoreUntracked) throws GitRepositoryException { try {/* w w w . j a va 2 s. com*/ FileTreeIterator workTreeIterator = new FileTreeIterator(this.repository); IndexDiff indexDiff = new IndexDiff(this.repository, this.getHeadObject(), workTreeIterator); indexDiff.diff(); if (!ignoreUntracked && !indexDiff.getUntracked().isEmpty()) { return true; } return !(indexDiff.getAdded().isEmpty() && indexDiff.getChanged().isEmpty() && indexDiff.getRemoved().isEmpty() && indexDiff.getMissing().isEmpty() && indexDiff.getModified().isEmpty() && indexDiff.getConflicting().isEmpty()); } catch (IOException e) { throw new GitRepositoryException("Could not create repository diff.", e); } }
From source file:com.rimerosolutions.ant.git.tasks.UpToDateTask.java
License:Apache License
@Override protected void doExecute() throws BuildException { Repository repo = git.getRepository(); FileTreeIterator workingTreeIterator = new FileTreeIterator(repo); try {/*from ww w . j ava 2 s . com*/ IndexDiff diff = new IndexDiff(repo, Constants.HEAD, workingTreeIterator); diff.diff(); Status status = new Status(diff); if (!status.isClean()) { if (modificationExistProperty != null) { getProject().setProperty(modificationExistProperty, "true"); } if (isFailOnError()) { StringBuilder msg = new StringBuilder(); msg.append("The Git tree was modified."); msg.append("\n").append("Changed:").append(status.getChanged()); msg.append("\n").append("Added:").append(status.getAdded()); msg.append("\n").append("Modified:").append(status.getModified()); msg.append("\n").append("Missing:").append(status.getMissing()); msg.append("\n").append("Removed:").append(status.getRemoved()); msg.append("\n").append("Untracked:").append(status.getUntracked()); throw new GitBuildException(String.format(STATUS_NOT_CLEAN_TEMPLATE, msg.toString())); } } else { log(MESSAGE_UPTODATE_SUCCESS); } } catch (IOException ioe) { throw new GitBuildException(MESSAGE_UPTODATE_FAILED, ioe); } }
From source file:com.stormcloud.ide.api.git.GitManager.java
License:Open Source License
@Override public IndexState getIndexState(String repository) throws GitManagerException { IndexState indexState = new IndexState(); try {//from w ww . j av a 2s .c o m Git git = Git.open(new File(repository)); IndexDiff diff = new IndexDiff(git.getRepository(), "HEAD", new FileTreeIterator(git.getRepository())); diff.diff(); indexState.setAdded(diff.getAdded()); indexState.setAssumeUnchanged(diff.getAssumeUnchanged()); indexState.setChanged(diff.getChanged()); indexState.setConflicting(diff.getConflicting()); indexState.setIgnoredNotInIndex(diff.getIgnoredNotInIndex()); indexState.setMissing(diff.getMissing()); indexState.setModified(diff.getModified()); indexState.setRemoved(diff.getRemoved()); indexState.setUntracked(diff.getUntracked()); indexState.setUntrackedFolders(diff.getUntrackedFolders()); } catch (IOException e) { LOG.error(e); throw new GitManagerException(e); } return indexState; }
From source file:com.stormcloud.ide.api.git.GitManager.java
License:Open Source License
@Override public boolean isModified(String repository) throws GitManagerException { try {/*from w ww.j a v a2 s .c o m*/ Git git = Git.open(new File(repository)); IndexDiff diff = new IndexDiff(git.getRepository(), "HEAD", new FileTreeIterator(git.getRepository())); diff.diff(); if (!diff.getAdded().isEmpty()) { return true; } if (!diff.getChanged().isEmpty()) { return true; } if (!diff.getMissing().isEmpty()) { return true; } if (!diff.getModified().isEmpty()) { return true; } if (!diff.getRemoved().isEmpty()) { return true; } if (!diff.getUntracked().isEmpty()) { return true; } if (!diff.getUntrackedFolders().isEmpty()) { return true; } } catch (IOException e) { LOG.error(e); throw new GitManagerException(e); } return false; }
From source file:com.stormcloud.ide.api.git.GitManager.java
License:Open Source License
@Override public void log(String repo) throws GitManagerException { try {/*w w w .j ava2s. c om*/ File gitDir = new File(repo + "/.git"); LOG.info("gitDir:" + gitDir); Repository repository = new FileRepository(gitDir); WorkingTreeIterator fileTreeIterator = new FileTreeIterator(repository); IndexDiff indexDiff = new IndexDiff(repository, Constants.HEAD, fileTreeIterator); boolean hasDiff = indexDiff.diff(); LOG.info("hasDiff " + hasDiff); if (hasDiff) { for (String file : indexDiff.getAdded()) { LOG.info("Added " + file); } for (String file : indexDiff.getAssumeUnchanged()) { LOG.info("Assume Unchanged " + file); } for (String file : indexDiff.getChanged()) { LOG.info("Changed " + file); } for (String file : indexDiff.getConflicting()) { LOG.info("Conflicting " + file); } for (String file : indexDiff.getIgnoredNotInIndex()) { LOG.info("Ignored not in index " + file); } for (String file : indexDiff.getMissing()) { LOG.info("Missing " + file); } for (String file : indexDiff.getModified()) { LOG.info("Modified " + file); } for (String file : indexDiff.getRemoved()) { LOG.info("Removed " + file); } for (String file : indexDiff.getUntracked()) { LOG.info("Untracked " + file); } for (String file : indexDiff.getUntrackedFolders()) { LOG.info("Untracked Folders " + file); } } } catch (IOException e) { LOG.error(e); throw new GitManagerException(e); } }
From source file:com.stormcloud.ide.api.git.GitManager.java
License:Open Source License
@Override public String getStatus(String file, String userHome) throws GitManagerException { String tmpRelativePath = new File(file).getAbsolutePath().replaceFirst(userHome + "/projects", "") .replaceFirst("/", ""); String project;/*from w w w.j a v a 2s . c om*/ if (tmpRelativePath.contains("/")) { project = tmpRelativePath.substring(0, tmpRelativePath.indexOf('/')); } else { project = tmpRelativePath; } String repository = userHome + "/projects/" + project; String relativePath = tmpRelativePath.replaceFirst(project, "").replaceFirst("/", ""); String status = "unmodified"; try { Git git = Git.open(new File(repository)); IndexDiff diff = new IndexDiff(git.getRepository(), "HEAD", new FileTreeIterator(git.getRepository())); diff.setFilter(PathFilterGroup.createFromStrings(relativePath)); diff.diff(); if (!diff.getModified().isEmpty() || !diff.getChanged().isEmpty()) { return "modified"; } if (!diff.getMissing().isEmpty() || !diff.getRemoved().isEmpty()) { return "missing"; } if (!diff.getUntracked().isEmpty() || !diff.getUntrackedFolders().isEmpty() || !diff.getAdded().isEmpty()) { return "untracked"; } if (!diff.getConflicting().isEmpty()) { return "conflict"; } return status; } catch (IOException e) { LOG.error(e); throw new GitManagerException(e); } }
From source file:jetbrains.buildServer.buildTriggers.vcs.git.agent.command.impl.CleanCommandImpl.java
License:Apache License
@NotNull private WorkingDirStatus getWorkingDirStatus(@NotNull Repository repo) { FileTreeIterator workingTreeIt = new FileTreeIterator(repo); try {//from w w w . ja v a 2 s . c om IndexDiff diff = new IndexDiff(repo, Constants.HEAD, workingTreeIt); diff.diff(); return new WorkingDirStatus(diff); } catch (IOException e) { throw new JGitInternalException(e.getMessage(), e); } }
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;// w w w . j a v a 2s . com 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.eclipse.egit.ui.internal.actions.CommitActionHandler.java
License:Open Source License
private void buildIndexHeadDiffList(IProject[] selectedProjects, IProgressMonitor monitor) throws IOException, OperationCanceledException { HashMap<Repository, HashSet<IProject>> repositories = new HashMap<Repository, HashSet<IProject>>(); for (IProject project : selectedProjects) { RepositoryMapping repositoryMapping = RepositoryMapping.getMapping(project); assert repositoryMapping != null; Repository repository = repositoryMapping.getRepository(); HashSet<IProject> projects = repositories.get(repository); if (projects == null) { projects = new HashSet<IProject>(); repositories.put(repository, projects); }/* w ww .j a v a2 s. c o m*/ projects.add(project); } monitor.beginTask(UIText.CommitActionHandler_caculatingChanges, repositories.size()); for (Map.Entry<Repository, HashSet<IProject>> entry : repositories.entrySet()) { Repository repository = entry.getKey(); monitor.subTask(NLS.bind(UIText.CommitActionHandler_repository, repository.getDirectory().getPath())); HashSet<IProject> projects = entry.getValue(); IndexDiff indexDiff = new IndexDiff(repository, Constants.HEAD, IteratorService.createInitialIterator(repository)); indexDiff.diff(); indexDiffs.put(repository, indexDiff); for (IProject project : projects) { includeList(project, indexDiff.getAdded(), indexChanges); includeList(project, indexDiff.getChanged(), indexChanges); includeList(project, indexDiff.getRemoved(), indexChanges); includeList(project, indexDiff.getMissing(), notIndexed); includeList(project, indexDiff.getModified(), notIndexed); includeList(project, indexDiff.getUntracked(), notTracked); } if (monitor.isCanceled()) throw new OperationCanceledException(); monitor.worked(1); } monitor.done(); }