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

update: use resolve dialog to fixup merge conflicts during updates

Changeset 344eed191f83

Parent a51c7b773c11

by Steve Borho

Changes to 2 files · Browse files at 344eed191f83 Showing diff from parent a51c7b773c11 Diff from another changeset...

 
662
663
664
665
 
666
667
668
 
662
663
664
 
665
666
667
668
@@ -662,7 +662,7 @@
  menu.exec_(point)     def updateToRevision(self): - dlg = update.UpdateDialog(self.rev, self.repo, self) + dlg = update.UpdateDialog(self.repo, self.rev, self)   dlg.output.connect(self.output)   dlg.makeLogVisible.connect(self.makeLogVisible)   dlg.progress.connect(self.progress)
 
10
11
12
13
 
14
15
16
17
 
18
19
20
 
22
23
24
25
 
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 
41
42
43
 
100
101
102
103
 
 
104
105
106
 
178
179
180
 
181
182
183
 
281
282
283
284
 
285
286
287
 
290
291
292
 
 
 
 
 
 
 
 
 
 
 
 
293
294
295
296
 
 
 
297
298
299
300
301
302
 
 
10
11
12
 
13
14
15
16
 
17
18
19
20
 
22
23
24
 
25
26
27
28
29
30
 
 
 
 
 
 
 
 
 
 
31
32
33
34
 
91
92
93
 
94
95
96
97
98
 
170
171
172
173
174
175
176
 
274
275
276
 
277
278
279
280
 
283
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
@@ -10,11 +10,11 @@
 from PyQt4.QtCore import *  from PyQt4.QtGui import *   -from mercurial import ui, error +from mercurial import error, merge as mergemod    from tortoisehg.util import hglib, paths  from tortoisehg.hgqt.i18n import _ -from tortoisehg.hgqt import cmdui, csinfo, qtlib, thgrepo +from tortoisehg.hgqt import cmdui, csinfo, qtlib, thgrepo, resolve    class UpdateDialog(QDialog):   @@ -22,22 +22,13 @@
  progress = pyqtSignal(QString, object, QString, QString, object)   makeLogVisible = pyqtSignal(bool)   - def __init__(self, rev=None, repo=None, parent=None, opts={}): + def __init__(self, repo, rev=None, parent=None, opts={}):   super(UpdateDialog, self).__init__(parent)   self.setWindowFlags(self.windowFlags() & \   ~Qt.WindowContextHelpButtonHint)     self._finished = False - - self.ui = ui.ui() - if repo: - self.repo = repo - else: - root = paths.find_root() - if root: - self.repo = thgrepo.repository(self.ui, path=root) - else: - raise 'not repository' + self.repo = repo     # base layout box   box = QVBoxLayout() @@ -100,7 +91,8 @@
  grid.addWidget(expander, row, 0, Qt.AlignLeft | Qt.AlignTop)   grid.addLayout(optbox, row, 1)   - self.discard_chk = QCheckBox(_('Discard local changes, no backup (-C/--clean)')) + self.discard_chk = QCheckBox(_('Discard local changes, no backup' + ' (-C/--clean)'))   self.merge_chk = QCheckBox(_('Always merge (when possible)'))   self.showlog_chk = QCheckBox(_('Always show command log'))   optbox.addWidget(self.discard_chk) @@ -178,6 +170,7 @@
    def update(self):   cmdline = ['update', '--repository', self.repo.root, '--verbose'] + cmdline += ['--config', 'ui.merge=internal:fail']   rev = hglib.fromunicode(self.rev_combo.currentText())   cmdline.append('--rev')   cmdline.append(rev) @@ -281,7 +274,7 @@
    def command_finished(self, ret):   self.repo.decrementBusyCount() - if ret is not 0 or self.cmd.is_show_output(): + if ret not in (0, 1) or self.cmd.is_show_output():   self.detail_btn.setChecked(True)   self.close_btn.setShown(True)   self.close_btn.setAutoDefault(True) @@ -290,13 +283,28 @@
  else:   self.accept()   + def accept(self): + ms = mergemod.mergestate(self.repo) + for path in ms: + if ms[path] == 'u': + qtlib.InfoMsgBox(_('Merge caused file conflicts'), + _('File conflicts need to be resolved')) + dlg = resolve.ResolveDialog(self.repo, self) + dlg.finished.connect(dlg.deleteLater) + dlg.exec_() + break + super(UpdateDialog, self).accept() +   def command_canceling(self):   self.cancel_btn.setDisabled(True)    def run(ui, *pats, **opts): + from tortoisehg.util import paths + from tortoisehg.hgqt import thgrepo + repo = thgrepo.repository(ui, path=paths.find_root())   rev = None   if opts.get('rev'):   rev = opts.get('rev')   elif len(pats) == 1:   rev = pats[0] - return UpdateDialog(rev, opts=opts) + return UpdateDialog(repo, rev, None, opts)