Changeset ba3bbb597b04…
Parent 14e176304db2…
by
Changes to 3 files · Browse files at ba3bbb597b04 Showing diff from parent 14e176304db2 Diff from another changeset...
@@ -110,7 +110,27 @@ revertall = True
ctx = self.filelistmodel._ctx
if isinstance(ctx, patchctx):
- raise 'unimplemented'
+ try:
+ fp = util.atomictempfile(ctx._path, 'wb')
+ if ctx._ph.comments:
+ fp.write('\n'.join(ctx._ph.comments))
+ fp.write('\n\n')
+ for wfile in ctx._fileorder:
+ if wfile == self.currentFile:
+ if revertall:
+ continue
+ chunks[0].write(fp)
+ for chunk in kchunks:
+ chunk.write(fp)
+ if not chunks[-1].selected:
+ fp.write('\n')
+ else:
+ for chunk in ctx._files[wfile]:
+ chunk.write(fp)
+ fp.rename()
+ finally:
+ del fp
+ self.fileModified.emit()
else:
path = repo.wjoin(self.currentFile)
if not os.path.exists(path):
@@ -148,7 +168,9 @@ def displayFile(self, file, rev, status):
if file:
self.currentFile = file
- self.mtime = os.path.getmtime(self.repo.wjoin(file))
+ path = self.repo.wjoin(file)
+ if os.path.exists(path):
+ self.mtime = os.path.getmtime(path)
self.diffbrowse.displayFile(file, status)
self.fileSelected.emit(True)
else:
@@ -351,7 +373,7 @@ chunks = self._ctx._files[filename]
else:
buf = cStringIO.StringIO()
- buf.write('diff -r XX %s\n' % filename)
+ buf.write('diff -r aaaaaaaaaaaa -r bbbbbbbbbbb %s\n' % filename)
buf.write('\n'.join(fd.diff))
buf.seek(0)
chunks = record.parsepatch(buf)
|
@@ -236,6 +236,8 @@ @pyqtSlot()
def refreshCombos(self):
shelvea, shelveb = self.currentPatchA(), self.currentPatchB()
+ oldidxa = self.comboa.currentIndex()
+ oldidxb = self.comboa.currentIndex()
shelves = self.repo.thgshelves()
disp = [_('Shelf: %s') % hglib.tounicode(s) for s in shelves]
@@ -254,17 +256,26 @@
# attempt to restore selection
if shelvea == self.wdir:
- self.comboa.setCurrentIndex(0)
+ idx = 0
elif shelvea in self.shelves:
- self.comboa.setCurrentIndex(1 + self.shelves.index(shelvea))
+ idx = self.shelves.index(shelvea) + 1
elif shelvea in self.patches:
- self.comboa.setCurrentIndex(1 + len(self.shelves) +
- self.patches.index(shelvea))
+ idx = len(self.shelves) + self.patches.index(shelvea) + 1
+ else:
+ idx = 0
+ self.comboa.setCurrentIndex(idx)
+ if idx == oldidxa:
+ self.comboAChanged(idx)
+
if shelveb in self.shelves:
- self.combob.setCurrentIndex(self.shelves.index(shelveb))
- if shelveb in self.shelves:
- self.combob.setCurrentIndex(len(self.shelves) +
- self.patches.index(shelveb))
+ idx = self.shelves.index(shelveb)
+ elif shelveb in self.patches:
+ idx = len(self.shelves) + self.patches.index(shelveb)
+ else:
+ idx = 0
+ self.combob.setCurrentIndex(idx)
+ if idx == oldidxb:
+ self.comboBChanged(idx)
if not patches and not shelves:
self.delShelfButtonB.setEnabled(False)
self.browseb.setContext(patchctx('', self.repo, None))
|
@@ -32,6 +32,7 @@ self._repo = repo
self._rev = rev
self._status = [[], [], []]
+ self._fileorder = []
self._user = ''
self._date = ''
self._desc = ''
@@ -166,6 +167,7 @@ if path not in files:
self._status[type].append(path)
files[path] = [chunk]
+ self._fileorder.append(path)
else:
files[path].append(chunk)
except patch.PatchError:
|
Loading...