Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.6, 0.7, and 0.7.1

hg-crew-tip fix use of patch.diff() which newly returns a generator

Changeset d4f7109d91b5

Parent c875e55f8a13

by Peter Arrenbrecht

Changes to one file · Browse files at d4f7109d91b5 Showing diff from parent c875e55f8a13 Diff from another changeset...

Change 1 of 1 Show Entire File hggtk/​status.py Stacked
 
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
519
 
520
521
522
 
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
519
@@ -485,38 +485,35 @@
  def _tree_selection_changed(self, selection, force):   ''' Update the diff text '''   def dohgdiff(): - difftext = StringIO.StringIO() - try: - if len(files) != 0: - wfiles = [self.repo.wjoin(x) for x in files] - matcher = cmdutil.match(self.repo, wfiles, self.opts) - patch.diff(self.repo, self._node1, self._node2, match=matcher, - fp=difftext, opts=patch.diffopts(self.ui, self.opts)) + difftext = [] + if len(files) != 0: + wfiles = [self.repo.wjoin(x) for x in files] + matcher = cmdutil.match(self.repo, wfiles, self.opts) + for s in patch.diff(self.repo, self._node1, self._node2, match=matcher, + opts=patch.diffopts(self.ui, self.opts)): + difftext.extend(s.splitlines(True))   - buffer = gtk.TextBuffer() - buffer.create_tag('removed', foreground='#900000') - buffer.create_tag('added', foreground='#006400') - buffer.create_tag('position', foreground='#FF8000') - buffer.create_tag('header', foreground='#000090') + buffer = gtk.TextBuffer() + buffer.create_tag('removed', foreground='#900000') + buffer.create_tag('added', foreground='#006400') + buffer.create_tag('position', foreground='#FF8000') + buffer.create_tag('header', foreground='#000090')   - difftext.seek(0) - iter = buffer.get_start_iter() - for line in difftext: - line = toutf(line) - if line.startswith('---') or line.startswith('+++'): - buffer.insert_with_tags_by_name(iter, line, 'header') - elif line.startswith('-'): - buffer.insert_with_tags_by_name(iter, line, 'removed') - elif line.startswith('+'): - buffer.insert_with_tags_by_name(iter, line, 'added') - elif line.startswith('@@'): - buffer.insert_with_tags_by_name(iter, line, 'position') - else: - buffer.insert(iter, line) + iter = buffer.get_start_iter() + for line in difftext: + line = toutf(line) + if line.startswith('---') or line.startswith('+++'): + buffer.insert_with_tags_by_name(iter, line, 'header') + elif line.startswith('-'): + buffer.insert_with_tags_by_name(iter, line, 'removed') + elif line.startswith('+'): + buffer.insert_with_tags_by_name(iter, line, 'added') + elif line.startswith('@@'): + buffer.insert_with_tags_by_name(iter, line, 'position') + else: + buffer.insert(iter, line)   - self.diff_text.set_buffer(buffer) - finally: - difftext.close() + self.diff_text.set_buffer(buffer)     if self.showdiff_toggle.get_active():   files = [self.model[iter][3] for iter in self.tree.get_selection().get_selected_rows()[1]]