Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.9, 1.9.1, and 1.9.2

sync, repowidget: initial implementation of incoming bundle preview

PROS: Bundles are now created with incoming changesets and the repowidget can
display those changesets.

CONS: The manifest and search widgets are unaware, refresh is not functional,
there is no accept/reject functionality, and context menus have yet to be
restricted. Oh, and there's no visual indication of which changesets are
incoming.

Changeset 342f5ddbe1d7

Parent 2904efacd957

by Steve Borho

Changes to 2 files · Browse files at 342f5ddbe1d7 Showing diff from parent 2904efacd957 Diff from another changeset...

 
19
20
21
22
 
23
24
25
 
35
36
37
38
 
39
40
41
 
55
56
57
 
58
59
60
 
64
65
66
 
67
68
69
70
71
 
141
142
143
144
 
 
 
145
146
147
 
160
161
162
163
 
164
165
166
 
216
217
218
 
219
220
 
 
 
 
 
 
 
 
 
221
222
223
 
19
20
21
 
22
23
24
25
 
35
36
37
 
38
39
40
41
 
55
56
57
58
59
60
61
 
65
66
67
68
69
 
70
71
72
 
142
143
144
 
145
146
147
148
149
150
 
163
164
165
 
166
167
168
169
 
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
@@ -19,7 +19,7 @@
 from tortoisehg.hgqt.repomodel import HgRepoListModel  from tortoisehg.hgqt import cmdui, update, tag, backout, merge, visdiff  from tortoisehg.hgqt import archive, thgimport, thgstrip, run, purge -from tortoisehg.hgqt import bisect, rebase, resolve +from tortoisehg.hgqt import bisect, rebase, resolve, thgrepo    from tortoisehg.hgqt.repofilter import RepoFilterBar  from tortoisehg.hgqt.repoview import HgRepoView @@ -35,7 +35,7 @@
   class RepoWidget(QWidget):   - showMessageSignal = pyqtSignal(str) + showMessageSignal = pyqtSignal(QString)   closeSelfSignal = pyqtSignal(QWidget)     output = pyqtSignal(QString, QString) @@ -55,6 +55,7 @@
  self.workbench = workbench   self.revsetfilter = False   self.branch = '' + self.bundle = None   self.revset = set()     self._reload_rev = '.' # select working parent at startup @@ -64,8 +65,8 @@
    self.setupUi()   self.createActions() + self.restoreSettings()   self.setupModels() - self.restoreSettings()     def setupUi(self):   SP = QSizePolicy @@ -141,7 +142,9 @@
    def title(self):   """Returns the expected title for this widget [unicode]""" - if self.branch: + if self.bundle: + return _('%s <incoming>') % self.repo.shortname + elif self.branch:   return '%s [%s]' % (self.repo.shortname, self.branch)   else:   return self.repo.shortname @@ -160,7 +163,7 @@
  def createCommitWidget(self):   cw = self.getCommitWidget()   if cw: - cw.commitComplete.connect(self.reload) # todo: redundant? + cw.commitComplete.connect(self.reload)   return SharedWidget(cw)     pats = {} @@ -216,8 +219,18 @@
  self.repo._syncwidget = sw   sw.outgoingNodes.connect(self.setOutgoingNodes)   sw.showMessage.connect(self.showMessage) + sw.incomingBundle.connect(self.setBundle)   return SharedWidget(sw)   + @pyqtSlot(QString) + def setBundle(self, bfile): + self.bundle = unicode(bfile) + self.repo = thgrepo.repository(self.repo.ui, self.repo.root, + bundle=self.bundle) + self.repoview.setRepo(self.repo) + self.revDetailsWidget.setRepo(self.repo) + self.reload() +   def clearSet(self):   self.revset = []   if self.revsetfilter:
 
27
28
29
 
30
31
32
 
484
485
486
487
488
489
490
491
492
493
494
495
496
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
497
498
499
 
27
28
29
30
31
32
33
 
485
486
487
 
 
 
 
 
 
 
 
 
 
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
@@ -27,6 +27,7 @@
   class SyncWidget(QWidget):   outgoingNodes = pyqtSignal(object) + incomingBundle = pyqtSignal(QString)   showMessage = pyqtSignal(unicode)     output = pyqtSignal(QString, QString) @@ -484,16 +485,34 @@
  ##     def inclicked(self): - def finished(ret, output): - if ret == 0: - self.showMessage.emit(_('Incoming changesets found')) - elif ret == 1: - self.showMessage.emit(_('No incoming changesets')) - else: - self.showMessage.emit(_('Incoming aborted, ret %d') % ret) - self.finishfunc = finished - cmdline = ['--repository', self.root, 'incoming'] - self.run(cmdline, ('force', 'branch', 'rev')) + if self.embedded: + def finished(ret, output): + if ret == 0: + self.showMessage.emit(_('Incoming changesets found')) + self.incomingBundle.emit(bfile) + elif ret == 1: + self.showMessage.emit(_('No incoming changesets')) + else: + self.showMessage.emit(_('Incoming aborted, ret %d') % ret) + bfile = self.currentUrl(True) + for badchar in (':', '*', '\\', '?', '#'): + bfile = bfile.replace(badchar, '') + bfile = bfile.replace('/', '_') + bfile = os.path.join(qtlib.gettempdir(), bfile) + '.hg' + self.finishfunc = finished + cmdline = ['--repository', self.root, 'incoming', '--bundle', bfile] + self.run(cmdline, ('force', 'branch', 'rev')) + else: + def finished(ret, output): + if ret == 0: + self.showMessage.emit(_('Incoming changesets found')) + elif ret == 1: + self.showMessage.emit(_('No incoming changesets')) + else: + self.showMessage.emit(_('Incoming aborted, ret %d') % ret) + self.finishfunc = finished + cmdline = ['--repository', self.root, 'incoming'] + self.run(cmdline, ('force', 'branch', 'rev'))     def pullclicked(self):   def finished(ret, output):