mercurial/merge.py
changeset 13400 14f3795a5ed7
parent 13323 d8d478f9ee0f
child 13437 6169493ac3f9
equal deleted inserted replaced
13399:eff102facb15 13400:14f3795a5ed7
    30                 if i == 0:
    30                 if i == 0:
    31                     self._local = bin(l[:-1])
    31                     self._local = bin(l[:-1])
    32                 else:
    32                 else:
    33                     bits = l[:-1].split("\0")
    33                     bits = l[:-1].split("\0")
    34                     self._state[bits[0]] = bits[1:]
    34                     self._state[bits[0]] = bits[1:]
       
    35             f.close()
    35         except IOError, err:
    36         except IOError, err:
    36             if err.errno != errno.ENOENT:
    37             if err.errno != errno.ENOENT:
    37                 raise
    38                 raise
    38         self._dirty = False
    39         self._dirty = False
    39     def commit(self):
    40     def commit(self):
    40         if self._dirty:
    41         if self._dirty:
    41             f = self._repo.opener("merge/state", "w")
    42             f = self._repo.opener("merge/state", "w")
    42             f.write(hex(self._local) + "\n")
    43             f.write(hex(self._local) + "\n")
    43             for d, v in self._state.iteritems():
    44             for d, v in self._state.iteritems():
    44                 f.write("\0".join([d] + v) + "\n")
    45                 f.write("\0".join([d] + v) + "\n")
       
    46             f.close()
    45             self._dirty = False
    47             self._dirty = False
    46     def add(self, fcl, fco, fca, fd, flags):
    48     def add(self, fcl, fco, fca, fd, flags):
    47         hash = util.sha1(fcl.path()).hexdigest()
    49         hash = util.sha1(fcl.path()).hexdigest()
    48         self._repo.opener("merge/" + hash, "w").write(fcl.data())
    50         self._repo.opener("merge/" + hash, "w").write(fcl.data())
    49         self._state[fd] = ['u', hash, fcl.path(), fca.path(),
    51         self._state[fd] = ['u', hash, fcl.path(), fca.path(),
    65         if self[dfile] == 'r':
    67         if self[dfile] == 'r':
    66             return 0
    68             return 0
    67         state, hash, lfile, afile, anode, ofile, flags = self._state[dfile]
    69         state, hash, lfile, afile, anode, ofile, flags = self._state[dfile]
    68         f = self._repo.opener("merge/" + hash)
    70         f = self._repo.opener("merge/" + hash)
    69         self._repo.wwrite(dfile, f.read(), flags)
    71         self._repo.wwrite(dfile, f.read(), flags)
       
    72         f.close()
    70         fcd = wctx[dfile]
    73         fcd = wctx[dfile]
    71         fco = octx[ofile]
    74         fco = octx[ofile]
    72         fca = self._repo.filectx(afile, fileid=anode)
    75         fca = self._repo.filectx(afile, fileid=anode)
    73         r = filemerge.filemerge(self._repo, self._local, lfile, fcd, fco, fca)
    76         r = filemerge.filemerge(self._repo, self._local, lfile, fcd, fco, fca)
    74         if not r:
    77         if not r: