comparison mercurial/merge.py @ 20588:4c4cd64c754b stable

merge: move merge state file path into a constant We are about to change the format. Having the file path in a single place make it easier to update the filename for the new version.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Tue, 25 Feb 2014 17:14:49 -0800
parents e4d7cbc94219
children 31993cd23b11
comparison
equal deleted inserted replaced
20577:de48422df393 20588:4c4cd64c754b
11 import error, util, filemerge, copies, subrepo, worker, dicthelpers 11 import error, util, filemerge, copies, subrepo, worker, dicthelpers
12 import errno, os, shutil 12 import errno, os, shutil
13 13
14 class mergestate(object): 14 class mergestate(object):
15 '''track 3-way merge state of individual files''' 15 '''track 3-way merge state of individual files'''
16 statepath = "merge/state"
16 def __init__(self, repo): 17 def __init__(self, repo):
17 self._repo = repo 18 self._repo = repo
18 self._dirty = False 19 self._dirty = False
19 self._read() 20 self._read()
20 def reset(self, node=None): 21 def reset(self, node=None):
24 shutil.rmtree(self._repo.join("merge"), True) 25 shutil.rmtree(self._repo.join("merge"), True)
25 self._dirty = False 26 self._dirty = False
26 def _read(self): 27 def _read(self):
27 self._state = {} 28 self._state = {}
28 try: 29 try:
29 f = self._repo.opener("merge/state") 30 f = self._repo.opener(self.statepath)
30 for i, l in enumerate(f): 31 for i, l in enumerate(f):
31 if i == 0: 32 if i == 0:
32 self._local = bin(l[:-1]) 33 self._local = bin(l[:-1])
33 else: 34 else:
34 bits = l[:-1].split("\0") 35 bits = l[:-1].split("\0")
38 if err.errno != errno.ENOENT: 39 if err.errno != errno.ENOENT:
39 raise 40 raise
40 self._dirty = False 41 self._dirty = False
41 def commit(self): 42 def commit(self):
42 if self._dirty: 43 if self._dirty:
43 f = self._repo.opener("merge/state", "w") 44 f = self._repo.opener(self.statepath, "w")
44 f.write(hex(self._local) + "\n") 45 f.write(hex(self._local) + "\n")
45 for d, v in self._state.iteritems(): 46 for d, v in self._state.iteritems():
46 f.write("\0".join([d] + v) + "\n") 47 f.write("\0".join([d] + v) + "\n")
47 f.close() 48 f.close()
48 self._dirty = False 49 self._dirty = False