Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.1, 1.1.1, and 1.1.2

stable history, etc: add workarounds for all tracebacks reported in #969

Sadly, there were only a few actual places that needed workarounds. I should
have done this early on in 1.0. Though perhaps with these leaks plugged users
will find new ones.

Interestingly, I noticed the easiest way to reproduce the parents() problem
was to simply 'hg qref' from the command line. You wouldn't think this would
be a big deal, but it does change the hash of the top patch.

Closes #969

Changeset 74b5067d61a7

Parent 33938a9efc99

by Steve Borho

Changes to 3 files · Browse files at 74b5067d61a7 Showing diff from parent 33938a9efc99 Diff from another changeset...

 
168
169
170
171
 
 
 
 
172
173
174
 
168
169
170
 
171
172
173
174
175
176
177
@@ -168,7 +168,10 @@
    self._filelist.clear()   self._filelist.append(('*', _('[All Files]'), '')) - modified, added, removed = self.repo.status(parent, ctx.node())[:3] + try: + modified, added, removed = self.repo.status(parent, ctx.node())[:3] + except error.LookupError: + modified, added, removed = [], [], []   selrow = None   for f in modified:   if f in pats:
 
1278
1279
1280
 
1281
1282
1283
 
2870
2871
2872
 
 
 
 
 
2873
2874
2875
2876
2877
 
 
 
 
 
2878
2879
2880
 
1278
1279
1280
1281
1282
1283
1284
 
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
@@ -1278,6 +1278,7 @@
    # disable/enable menus as required   parents = self.repo.parents() +   if len(parents) > 1:   can_merge = False   can_backout = False @@ -2870,11 +2871,21 @@
  return False     def tree_popup_menu(self, treeview, button=0, time=0): + try: + self.repo.parents() + except error.Abort, e: + self.stbar.set_text(_('Refresh required')) + return True   menu = self.tree_context_menu()   menu.popup(None, None, None, button, time)   return True     def tree_popup_menu_diff(self, treeview, button=0, time=0): + try: + self.repo.parents() + except error.Abort, e: + self.stbar.set_text(_('Refresh required')) + return True   menu = self.tree_diff_context_menu()   menu.popup(None, None, None, button, time)   return True
 
77
78
79
80
 
 
 
 
81
82
83
 
77
78
79
 
80
81
82
83
84
85
86
@@ -77,7 +77,10 @@
  def changelist_selected(self, combo):   'User has selected a changelist, fill cslist'   curcl = combo.get_active_text() - revs = [self.repo[hash] for hash in self.pending[curcl]] + try: + revs = [self.repo[hash] for hash in self.pending[curcl]] + except error.Abort, e: + revs = []   self.cslist.clear()   self.cslist.update(revs, self.repo)   sensitive = not curcl.endswith('(submitted)')