Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 0.8, 0.8.1, and 0.8.2

history: refresh tags, heads, and parents without reloading graph

Fixes #190

Changeset 0a7b24a2cee9

Parent 403950d44ed2

by Steve Borho

Changes to 2 files · Browse files at 0a7b24a2cee9 Showing diff from parent 403950d44ed2 Diff from another changeset...

Change 1 of 4 Show Entire File hggtk/​history.py Stacked
 
310
311
312
 
 
 
 
 
313
314
315
 
606
607
608
609
 
610
611
612
 
693
694
695
696
 
697
698
699
 
708
709
710
711
 
712
713
714
 
310
311
312
313
314
315
316
317
318
319
320
 
611
612
613
 
614
615
616
617
 
698
699
700
 
701
702
703
704
 
713
714
715
 
716
717
718
719
@@ -310,6 +310,11 @@
  except KeyError:   pass   + def refresh_model(self): + 'Refresh data in the history model, without reloading graph' + if self.graphview.model: + self.graphview.model.refresh() +   def reload_log(self, **filteropts):   'Send refresh event to treeview object'   os.chdir(self.repo.root) # for paths relative to repo root @@ -606,7 +611,7 @@
  self.repo.invalidate()   newtags = self.repo.tagslist()   if newtags != oldtags: - self.reload_log() + self.refresh_model()     dialog = tagadd.TagAddDialog(self.repo.root, rev=str(rev))   dialog.set_transient_for(self) @@ -693,7 +698,7 @@
  def checkout_completed(self, oldparents):   newparents = [x.node() for x in self.repo.parents()]   if not oldparents == newparents: - self.reload_log() + self.refresh_model()     def merge(self, menuitem):   rev = self.currow[treemodel.REVID] @@ -708,7 +713,7 @@
  def merge_completed(self, oldparents):   newparents = [x.node() for x in self.repo.parents()]   if not oldparents == newparents: - self.reload_log() + self.refresh_model()     def selection_changed(self, treeview):   self.currow = self.graphview.get_revision()
 
39
40
41
42
43
44
45
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
48
49
 
39
40
41
 
 
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
@@ -39,11 +39,28 @@
  self.revisions = {}   self.branch_names = {}   self.repo = repo - self.parents = [x.rev() for x in repo.changectx(None).parents()] - self.heads = [repo.changelog.rev(x) for x in repo.heads()]   self.line_graph_data = graphdata   self.author_re = re.compile('<.*@.*>', 0)   self.color_func = color_func + self.parents = [x.rev() for x in repo.parents()] + self.heads = [repo[x].rev() for x in repo.heads()] + self.tagrevs = [repo[r].rev() for t, r in repo.tagslist()] + + def refresh(self): + repo = self.repo + oldtags, oldheads, oldparents = self.tagrevs, self.heads, self.parents + + repo.invalidate() + repo.dirstate.invalidate() + + self.parents = [x.rev() for x in repo.parents()] + self.heads = [repo[x].rev() for x in repo.heads()] + self.tagrevs = [repo[r].rev() for t, r in repo.tagslist()] + allrevs = set(oldtags + oldheads + oldparents + + self.parents + self.heads + self.tagrevs) + for rev in allrevs: + if rev in self.revisions: + del self.revisions[rev]     def on_get_flags(self):   return gtk.TREE_MODEL_LIST_ONLY