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

sync: collect outgoing nodes for workbench

Changeset 544d72e4b3d5

Parent f5c671e6bfaf

by Steve Borho

Changes to 2 files · Browse files at 544d72e4b3d5 Showing diff from parent f5c671e6bfaf Diff from another changeset...

 
20
21
22
23
24
25
26
 
46
47
48
49
 
50
51
52
 
109
110
111
112
 
113
114
115
116
117
 
118
119
120
 
150
151
152
153
154
 
 
 
 
155
156
157
 
247
248
249
250
 
251
252
253
 
283
284
285
 
286
287
288
 
289
290
291
292
 
 
 
 
 
 
 
 
 
 
293
294
 
295
296
297
 
20
21
22
 
23
24
25
 
45
46
47
 
48
49
50
51
 
108
109
110
 
111
112
113
114
115
 
116
117
118
119
 
149
150
151
 
 
152
153
154
155
156
157
158
 
248
249
250
 
251
252
253
254
 
284
285
286
287
288
289
290
291
292
293
294
 
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
@@ -20,7 +20,6 @@
 from tortoisehg.hgqt import qtlib, cmdui, hgemail    # TODO -# cmdui/thread must log plain text output, for query  # Write keyring help, connect to help button  # Ini file locking for sync.py and settings.py  # Delete paths from ini file via 'Delete/Backspace' @@ -46,7 +45,7 @@
  self.setLayout(layout)     self.root = root - self.thread = None + self.finishfunc = None   self.curuser = None   self.curpw = None   self.updateInProgress = False @@ -109,12 +108,12 @@
  layout.addWidget(pathsframe, 1)     if parent: - self.closeonesc = False + self.workbench = parent   log = parent.log   else:   self.setWindowTitle(_('TortoiseHg Sync'))   self.resize(850, 550) - self.closeonesc = True + self.workbench = None   log = None     self.savebutton.clicked.connect(self.saveclicked) @@ -150,8 +149,10 @@
  def commandFinished(self, wrapper):   for b in self.opbuttons:   b.setEnabled(True) - if wrapper.data is not 0: - self.cmd.show_output(True) + self.cmd.show_output(True) + if wrapper.data == 0 and self.finishfunc: + output = self.cmd.get_rawoutput() + self.finishfunc( output )     def commandCanceled(self):   for b in self.opbuttons: @@ -247,7 +248,7 @@
  elif event.key() == Qt.Key_Escape:   if self.cmd.core.is_running():   self.cmd.core.cancel() - elif self.closeonesc: + elif not self.workbench:   self.close()   else:   return super(SyncWidget, self).keyPressEvent(event) @@ -283,15 +284,27 @@
  self.cmd.run(cmdline, display=display)     def inclicked(self): + self.finishfunc = None   self.run(['--repository', self.root, 'incoming'])     def pullclicked(self): + self.finishfunc = None   self.run(['--repository', self.root, 'pull'])     def outclicked(self): - self.run(['--repository', self.root, 'outgoing']) + if self.workbench: + def outputnodes(data): + nodestrs = data.splitlines()[:-1] + self.workbench.outgoing_for_root(self.root, nodestrs) + self.finishfunc = outputnodes + self.run(['--repository', self.root, 'outgoing', + '--quiet', '--template', '{node}\n']) + else: + self.finishfunc = None + self.run(['--repository', self.root, 'outgoing'])     def pushclicked(self): + self.finishfunc = None   self.run(['--repository', self.root, 'push'])     def emailclicked(self):
 
315
316
317
 
 
 
 
 
318
319
320
 
315
316
317
318
319
320
321
322
323
324
325
@@ -315,6 +315,11 @@
  p = str(url.toLocalFile())   return paths.find_root(p)   + def outgoing_for_root(self, root, outgoing): + repo = thgrepo.repository(self.ui, path=root) + repo._outgoing = outgoing + # TODO: invalidate graphs for this repo, draw out arrows +   def dragEnterEvent(self, event):   d = event.mimeData()   for u in d.urls():