Mercurial > public > mercurial-scm > hg
diff mercurial/subrepo.py @ 15534:80ec63090a7a
merge with stable
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 20 Nov 2011 16:06:18 -0600 |
parents | 646759147717 0810ccc51f0a |
children | 260a6449d83a |
line wrap: on
line diff
--- a/mercurial/subrepo.py Fri Nov 18 14:23:03 2011 +0100 +++ b/mercurial/subrepo.py Sun Nov 20 16:06:18 2011 -0600 @@ -823,6 +823,12 @@ def _gitisbare(self): return self._gitcommand(['config', '--bool', 'core.bare']) == 'true' + def _gitupdatestat(self): + """This must be run before git diff-index. + diff-index only looks at changes to file stat; + this command looks at file contents and updates the stat.""" + self._gitcommand(['update-index', '-q', '--refresh']) + def _gitbranchmap(self): '''returns 2 things: a map from git branch to revision @@ -892,6 +898,7 @@ # different version checked out return True # check for staged changes or modified files; ignore untracked files + self._gitupdatestat() out, code = self._gitdir(['diff-index', '--quiet', 'HEAD']) return code == 1 @@ -999,6 +1006,7 @@ source, revision, kind = state self._fetch(source, revision) base = self._gitcommand(['merge-base', revision, self._state[1]]) + self._gitupdatestat() out, code = self._gitdir(['diff-index', '--quiet', 'HEAD']) def mergefunc(): @@ -1106,6 +1114,7 @@ # if the repo is missing, return no results return [], [], [], [], [], [], [] modified, added, removed = [], [], [] + self._gitupdatestat() if rev2: command = ['diff-tree', rev1, rev2] else: