Mercurial > public > mercurial-scm > hg-stable
diff mercurial/dirstate.py @ 6297:fed1a9c22076
dirstate.remove: during merges, remember the previous file state
We encode the previous state as a negative file size (AFAICS, previous
versions of hg always have size == 0 when state == 'r').
We save the state of 'm'erged and dirty files, because they're the
two states that indicate that a file has to be committed on a merge
to correctly record per-file history.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Tue, 18 Mar 2008 04:07:39 -0300 |
parents | bfd49ce0db64 |
children | 53cbb33e1269 |
line wrap: on
line diff
--- a/mercurial/dirstate.py Tue Mar 18 04:07:39 2008 -0300 +++ b/mercurial/dirstate.py Tue Mar 18 04:07:39 2008 -0300 @@ -270,8 +270,15 @@ 'mark a file removed' self._dirty = True self._changepath(f, 'r') - self._map[f] = ('r', 0, 0, 0, 0) - if f in self._copymap: + size = 0 + if self._pl[1] != nullid and f in self._map: + entry = self._map[f] + if entry[0] == 'm': + size = -1 + elif entry[0] == 'n' and entry[2] == -2: + size = -2 + self._map[f] = ('r', 0, size, 0, 0) + if size == 0 and f in self._copymap: del self._copymap[f] def merge(self, f):