mercurial/context.py
changeset 4002 d7b9ec589546
parent 3996 c190df14338c
child 4108 20af6a2f0b0e
equal deleted inserted replaced
4001:dda03b2d9ef1 4002:d7b9ec589546
   377     def _buildmanifest(self):
   377     def _buildmanifest(self):
   378         """generate a manifest corresponding to the working directory"""
   378         """generate a manifest corresponding to the working directory"""
   379 
   379 
   380         man = self._parents[0].manifest().copy()
   380         man = self._parents[0].manifest().copy()
   381         is_exec = util.execfunc(self._repo.root, man.execf)
   381         is_exec = util.execfunc(self._repo.root, man.execf)
       
   382         is_link = util.linkfunc(self._repo.root, man.linkf)
   382         copied = self._repo.dirstate.copies()
   383         copied = self._repo.dirstate.copies()
   383         modified, added, removed, deleted, unknown = self._status[:5]
   384         modified, added, removed, deleted, unknown = self._status[:5]
   384         for i, l in (("a", added), ("m", modified), ("u", unknown)):
   385         for i, l in (("a", added), ("m", modified), ("u", unknown)):
   385             for f in l:
   386             for f in l:
   386                 man[f] = man.get(copied.get(f, f), nullid) + i
   387                 man[f] = man.get(copied.get(f, f), nullid) + i
   387                 try:
   388                 try:
   388                     man.set(f, is_exec(f))
   389                     man.set(f, is_exec(f), is_link(f))
   389                 except OSError:
   390                 except OSError:
   390                     pass
   391                     pass
   391 
   392 
   392         for f in deleted + removed:
   393         for f in deleted + removed:
   393             if f in man:
   394             if f in man: