Mercurial > public > mercurial-scm > hg
comparison 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 |
comparison
equal
deleted
inserted
replaced
15530:eeac5e179243 | 15534:80ec63090a7a |
---|---|
821 return base == r1 | 821 return base == r1 |
822 | 822 |
823 def _gitisbare(self): | 823 def _gitisbare(self): |
824 return self._gitcommand(['config', '--bool', 'core.bare']) == 'true' | 824 return self._gitcommand(['config', '--bool', 'core.bare']) == 'true' |
825 | 825 |
826 def _gitupdatestat(self): | |
827 """This must be run before git diff-index. | |
828 diff-index only looks at changes to file stat; | |
829 this command looks at file contents and updates the stat.""" | |
830 self._gitcommand(['update-index', '-q', '--refresh']) | |
831 | |
826 def _gitbranchmap(self): | 832 def _gitbranchmap(self): |
827 '''returns 2 things: | 833 '''returns 2 things: |
828 a map from git branch to revision | 834 a map from git branch to revision |
829 a map from revision to branches''' | 835 a map from revision to branches''' |
830 branch2rev = {} | 836 branch2rev = {} |
890 return True | 896 return True |
891 if not ignoreupdate and self._state[1] != self._gitstate(): | 897 if not ignoreupdate and self._state[1] != self._gitstate(): |
892 # different version checked out | 898 # different version checked out |
893 return True | 899 return True |
894 # check for staged changes or modified files; ignore untracked files | 900 # check for staged changes or modified files; ignore untracked files |
901 self._gitupdatestat() | |
895 out, code = self._gitdir(['diff-index', '--quiet', 'HEAD']) | 902 out, code = self._gitdir(['diff-index', '--quiet', 'HEAD']) |
896 return code == 1 | 903 return code == 1 |
897 | 904 |
898 def get(self, state, overwrite=False): | 905 def get(self, state, overwrite=False): |
899 source, revision, kind = state | 906 source, revision, kind = state |
997 | 1004 |
998 def merge(self, state): | 1005 def merge(self, state): |
999 source, revision, kind = state | 1006 source, revision, kind = state |
1000 self._fetch(source, revision) | 1007 self._fetch(source, revision) |
1001 base = self._gitcommand(['merge-base', revision, self._state[1]]) | 1008 base = self._gitcommand(['merge-base', revision, self._state[1]]) |
1009 self._gitupdatestat() | |
1002 out, code = self._gitdir(['diff-index', '--quiet', 'HEAD']) | 1010 out, code = self._gitdir(['diff-index', '--quiet', 'HEAD']) |
1003 | 1011 |
1004 def mergefunc(): | 1012 def mergefunc(): |
1005 if base == revision: | 1013 if base == revision: |
1006 self.get(state) # fast forward merge | 1014 self.get(state) # fast forward merge |
1104 rev1 = self._state[1] | 1112 rev1 = self._state[1] |
1105 if self._gitmissing() or not rev1: | 1113 if self._gitmissing() or not rev1: |
1106 # if the repo is missing, return no results | 1114 # if the repo is missing, return no results |
1107 return [], [], [], [], [], [], [] | 1115 return [], [], [], [], [], [], [] |
1108 modified, added, removed = [], [], [] | 1116 modified, added, removed = [], [], [] |
1117 self._gitupdatestat() | |
1109 if rev2: | 1118 if rev2: |
1110 command = ['diff-tree', rev1, rev2] | 1119 command = ['diff-tree', rev1, rev2] |
1111 else: | 1120 else: |
1112 command = ['diff-index', rev1] | 1121 command = ['diff-index', rev1] |
1113 out = self._gitcommand(command) | 1122 out = self._gitcommand(command) |