git4idea: Minor improvements to collect changes
authorConstantine Plotnikov <Constantine.Plotnikov@jetbrains.com>
Fri, 21 Aug 2009 15:34:22 +0000 (19:34 +0400)
committerConstantine Plotnikov <Constantine.Plotnikov@jetbrains.com>
Fri, 21 Aug 2009 15:34:22 +0000 (19:34 +0400)
plugins/git4idea/src/git4idea/changes/ChangeCollector.java
plugins/git4idea/src/git4idea/changes/GitChangeProvider.java
plugins/git4idea/src/git4idea/changes/GitCommittedChangeListProvider.java

index 78f03e8a7e4dc50692016f197eeb0bd1128503f2..8bb1c9821986a06e0d08dbfe3a9c87aa18bb61b9 100644 (file)
@@ -204,13 +204,17 @@ class ChangeCollector {
    * @throws VcsException if there is a problem with running git
    */
   private void collectDiffChanges() throws VcsException {
    * @throws VcsException if there is a problem with running git
    */
   private void collectDiffChanges() throws VcsException {
+    Collection<FilePath> dirtyPaths = dirtyPaths(true);
+    if (dirtyPaths.isEmpty()) {
+      return;
+    }
     GitSimpleHandler handler = new GitSimpleHandler(myProject, myVcsRoot, GitHandler.DIFF);
     handler.addParameters("--name-status", "--diff-filter=ADCMRUX", "-M", "HEAD");
     handler.setNoSSH(true);
     handler.setSilent(true);
     handler.setStdoutSuppressed(true);
     handler.endOptions();
     GitSimpleHandler handler = new GitSimpleHandler(myProject, myVcsRoot, GitHandler.DIFF);
     handler.addParameters("--name-status", "--diff-filter=ADCMRUX", "-M", "HEAD");
     handler.setNoSSH(true);
     handler.setSilent(true);
     handler.setStdoutSuppressed(true);
     handler.endOptions();
-    handler.addRelativePaths(dirtyPaths(true));
+    handler.addRelativePaths(dirtyPaths);
     try {
       String output = handler.run();
       GitChangeUtils.parseChanges(myProject, myVcsRoot, null, GitChangeUtils.loadRevision(myProject, myVcsRoot, "HEAD"), output, myChanges,
     try {
       String output = handler.run();
       GitChangeUtils.parseChanges(myProject, myVcsRoot, null, GitChangeUtils.loadRevision(myProject, myVcsRoot, "HEAD"), output, myChanges,
@@ -246,13 +250,17 @@ class ChangeCollector {
    * @throws VcsException if there is a problem with running git
    */
   private void collectUnmergedAndUnversioned() throws VcsException {
    * @throws VcsException if there is a problem with running git
    */
   private void collectUnmergedAndUnversioned() throws VcsException {
+    Collection<FilePath> dirtyPaths = dirtyPaths(false);
+    if (dirtyPaths.isEmpty()) {
+      return;
+    }
     // prepare handler
     GitSimpleHandler handler = new GitSimpleHandler(myProject, myVcsRoot, GitHandler.LS_FILES);
     handler.addParameters("-v", "--others", "--unmerged", "--exclude-standard");
     handler.setSilent(true);
     handler.setNoSSH(true);
     handler.setStdoutSuppressed(true);
     // prepare handler
     GitSimpleHandler handler = new GitSimpleHandler(myProject, myVcsRoot, GitHandler.LS_FILES);
     handler.addParameters("-v", "--others", "--unmerged", "--exclude-standard");
     handler.setSilent(true);
     handler.setNoSSH(true);
     handler.setStdoutSuppressed(true);
-    handler.addRelativePaths(dirtyPaths(false));
+    handler.addRelativePaths(dirtyPaths);
     // run handler and collect changes
     String list = handler.run();
     for (StringScanner sc = new StringScanner(list); sc.hasMoreData();) {
     // run handler and collect changes
     String list = handler.run();
     for (StringScanner sc = new StringScanner(list); sc.hasMoreData();) {
index 9ef77863a96d24d7072aa7c09a58ea2d9651fb99..a5778e27663567f69262d0a0b5202362556406a4 100644 (file)
@@ -79,5 +79,4 @@ public class GitChangeProvider implements ChangeProvider {
    */
   public void doCleanup(final List<VirtualFile> files) {
   }
    */
   public void doCleanup(final List<VirtualFile> files) {
   }
-
 }
 }
index a1340ac8e225957838c84f51e55b85da396911fa..e3d74f9dbe0053b0427978f394fec9fffd685602 100644 (file)
@@ -92,7 +92,7 @@ public class GitCommittedChangeListProvider implements CachingCommittedChangesPr
       }
       else {
         GitRemote r = GitRemote.find(myProject, gitRoot, remote);
       }
       else {
         GitRemote r = GitRemote.find(myProject, gitRoot, remote);
-        return r == null ? null : new GitRepositoryLocation(r.url(), rootFile);
+        return r == null ? null : new GitRepositoryLocation(r.fetchUrl(), rootFile);
       }
     }
     catch (VcsException e) {
       }
     }
     catch (VcsException e) {