Mercurial > hg
diff mercurial/dirstate.py @ 48252:602c8e8411f5
dirstate: add a concept of "fallback" flags to dirstate item
The concept is defined and "used" by the flag code, but it is neither persisted
nor set anywhere yet. We currently focus on defining the semantic of the
attribute. More to come in the next changesets
Check the inline documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D11686
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Mon, 18 Oct 2021 20:02:15 +0200 |
parents | 5c567aca080d |
children | 269ff8978086 |
line wrap: on
line diff
--- a/mercurial/dirstate.py Fri Oct 15 16:33:19 2021 +0200 +++ b/mercurial/dirstate.py Mon Oct 18 20:02:15 2021 +0200 @@ -259,7 +259,11 @@ def f(x): if os.path.islink(self._join(x)): return b'l' - if b'x' in fallback(x): + entry = self.get_entry(x) + if entry.has_fallback_exec: + if entry.fallback_exec: + return b'x' + elif b'x' in fallback(x): return b'x' return b'' @@ -269,13 +273,28 @@ def f(x): if b'l' in fallback(x): return b'l' + entry = self.get_entry(x) + if entry.has_fallback_symlink: + if entry.fallback_symlink: + return b'l' if util.isexec(self._join(x)): return b'x' return b'' return f else: - return fallback + + def f(x): + entry = self.get_entry(x) + if entry.has_fallback_symlink: + if entry.fallback_symlink: + return b'l' + if entry.has_fallback_exec: + if entry.fallback_exec: + return b'x' + elif entry.has_fallback_symlink: + return b'' + return fallback(x) @propertycache def _cwd(self):