Commits

lakin.wecker committed 0ad5497

initial version of removing crappy parts of the svn st.

Comments (0)

Files changed (1)

baste/__init__.py

 
 #-------------------------------------------------------------------------------
 def local_changes(repos):
-    
     changes = []
     for repo in repos:
         new_changes = repo.status(capture=True)
         if isinstance(repo, Git):
             new_changes = new_changes.replace('nothing to commit (working directory clean)', '')
-            new_changes = new_changes.replace('# On branch master\n', '') 
+            new_changes = new_changes.replace('# On branch master\n', '')
+
+        # Do the funky svn parsing dance. ;)
+        if isinstance(repo, Subversion):
+            updated_changes = []
+            for line in new_changes.split('\n'):
+                stripped = line.strip()
+
+                # skip random lines about externals
+                if stripped.startswith("Performing status on external item at '"):
+                    continue
+                # skip lines listing externals.
+                parts = [part.strip() for part in stripped.split(' ') if part]
+                if len(parts) > 0 and parts[0] == "X":
+                    continue
+
+                updated_changes.append(line)
+            new_changes = '\n'.join(updated_changes)
+
         if new_changes:
             changes.append(new_changes)