Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/context.py @ 3996:c190df14338c
exec: add execfunc to simplify exec flag support on non-exec filesystems
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 29 Dec 2006 20:04:30 -0600 |
parents | b4eaa68dea1b |
children | d7b9ec589546 |
comparison
equal
deleted
inserted
replaced
3995:a4e79f86d304 | 3996:c190df14338c |
---|---|
376 | 376 |
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 copied = self._repo.dirstate.copies() | 382 copied = self._repo.dirstate.copies() |
382 modified, added, removed, deleted, unknown = self._status[:5] | 383 modified, added, removed, deleted, unknown = self._status[:5] |
383 for i, l in (("a", added), ("m", modified), ("u", unknown)): | 384 for i, l in (("a", added), ("m", modified), ("u", unknown)): |
384 for f in l: | 385 for f in l: |
385 man[f] = man.get(copied.get(f, f), nullid) + i | 386 man[f] = man.get(copied.get(f, f), nullid) + i |
386 try: | 387 try: |
387 man.set(f, util.is_exec(self._repo.wjoin(f), man.execf(f))) | 388 man.set(f, is_exec(f)) |
388 except OSError: | 389 except OSError: |
389 pass | 390 pass |
390 | 391 |
391 for f in deleted + removed: | 392 for f in deleted + removed: |
392 if f in man: | 393 if f in man: |