Andy Kish avatar Andy Kish committed 7090a3e

fixed crash because of change in mercurial's cmdutil.commit

Comments (0)

Files changed (1)

     if os.path.exists(repo.join('shelve')) and not forced:
         raise util.Abort(_('shelve data already exists'))
             
-    def shelvefunc(ui, repo, files, message, match, opts):
-        if files:
-            changes = None
-        else:
-            changes = repo.status(files=files, match=match)[:5]
-            modified, added, removed = changes[:3]
-            files = modified + added + removed
+    def shelvefunc(ui, repo, message, match, opts):
+        changes = repo.status(match=match)[:5]
+        modified, added, removed = changes[:3]
+        files = modified + added + removed
         diffopts = mdiff.diffopts(git=True, nodates=True)
-        fp = cStringIO.StringIO()
-        patch.diff(repo, repo.dirstate.parents()[0], files=files,
-                   match=match, changes=changes, opts=diffopts, fp=fp)
-        fp.seek(0)
-
+        patch_diff = ''.join(patch.diff(repo, repo.dirstate.parents()[0],
+                           match=match, changes=changes, opts=diffopts))
+        
+        fp = cStringIO.StringIO(patch_diff)
         ac = parsepatch(fp)
+        fp.close()
         chunks = filterpatch(ui, ac)
         rc = refilterpatch(ac, chunks)
-        del fp
 
         contenders = {}
         for h in chunks:
             ui.status(_('no changes to shelve\n'))
             return 0
 
-        if changes is None:
-            changes = repo.status(files=newfiles, match=match)[:5]
         modified = dict.fromkeys(changes[0])
 
         backupdir = repo.join('shelve-backups')
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.