comparison hgext/hbisect.py @ 5319:5b6e403601d1

bisect: do silent init if necessary
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Sat, 22 Sep 2007 18:23:56 +0200
parents c13610d5642c
children 189d82b6962e
comparison
equal deleted inserted replaced
5310:ba3dc7883968 5319:5b6e403601d1
35 self.path = repo.join("bisect") 35 self.path = repo.join("bisect")
36 self.opener = util.opener(self.path) 36 self.opener = util.opener(self.path)
37 self.ui = ui 37 self.ui = ui
38 self.goodrevs = [] 38 self.goodrevs = []
39 self.badrev = None 39 self.badrev = None
40 self.good_dirty = 0
41 self.bad_dirty = 0
42 self.good_path = "good" 40 self.good_path = "good"
43 self.bad_path = "bad" 41 self.bad_path = "bad"
42 self.is_reset = False
44 43
45 if os.path.exists(os.path.join(self.path, self.good_path)): 44 if os.path.exists(os.path.join(self.path, self.good_path)):
46 self.goodrevs = self.opener(self.good_path).read().splitlines() 45 self.goodrevs = self.opener(self.good_path).read().splitlines()
47 self.goodrevs = [hg.bin(x) for x in self.goodrevs] 46 self.goodrevs = [hg.bin(x) for x in self.goodrevs]
48 if os.path.exists(os.path.join(self.path, self.bad_path)): 47 if os.path.exists(os.path.join(self.path, self.bad_path)):
49 r = self.opener(self.bad_path).read().splitlines() 48 r = self.opener(self.bad_path).read().splitlines()
50 if r: 49 if r:
51 self.badrev = hg.bin(r.pop(0)) 50 self.badrev = hg.bin(r.pop(0))
52 51
53 def write(self): 52 def write(self):
53 if self.is_reset:
54 return
54 if not os.path.isdir(self.path): 55 if not os.path.isdir(self.path):
55 return 56 os.mkdir(self.path)
56 f = self.opener(self.good_path, "w") 57 f = self.opener(self.good_path, "w")
57 f.write("\n".join([hg.hex(r) for r in self.goodrevs])) 58 f.write("\n".join([hg.hex(r) for r in self.goodrevs]))
58 if len(self.goodrevs) > 0: 59 if len(self.goodrevs) > 0:
59 f.write("\n") 60 f.write("\n")
60 f = self.opener(self.bad_path, "w") 61 f = self.opener(self.bad_path, "w")
79 os.unlink(s) 80 os.unlink(s)
80 os.rmdir(self.path) 81 os.rmdir(self.path)
81 # Not sure about this 82 # Not sure about this
82 #self.ui.write("Going back to tip\n") 83 #self.ui.write("Going back to tip\n")
83 #self.repo.update(self.repo.changelog.tip()) 84 #self.repo.update(self.repo.changelog.tip())
85 self.is_reset = True
84 return 0 86 return 0
85 87
86 def num_ancestors(self, head=None, stop=None): 88 def num_ancestors(self, head=None, stop=None):
87 """ 89 """
88 returns a dict with the mapping: 90 returns a dict with the mapping: