diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -713,11 +713,12 @@ class localrepository(repo.repository): linkrev = self.changelog.count() commit.sort() is_exec = util.execfunc(self.root, m1.execf) + is_link = util.linkfunc(self.root, m1.linkf) for f in commit: self.ui.note(f + "\n") try: new[f] = self.filecommit(f, m1, m2, linkrev, tr, changed) - m1.set(f, is_exec(f)) + m1.set(f, is_exec(f), is_link(f)) except IOError: if use_dirstate: self.ui.warn(_("trouble committing %s!\n") % f) @@ -879,9 +880,10 @@ class localrepository(repo.repository): # XXX: create it in dirstate.py ? mf2 = mfmatches(self.dirstate.parents()[0]) is_exec = util.execfunc(self.root, mf2.execf) + is_link = util.linkfunc(self.root, mf2.linkf) for f in lookup + modified + added: mf2[f] = "" - mf2.set(f, is_exec(f)) + mf2.set(f, is_exec(f), is_link(f)) for f in removed: if f in mf2: del mf2[f]