equal
deleted
inserted
replaced
1149 |
1149 |
1150 prev = {} |
1150 prev = {} |
1151 def display(fn, rev, states, prevstates): |
1151 def display(fn, rev, states, prevstates): |
1152 counts = {'-': 0, '+': 0} |
1152 counts = {'-': 0, '+': 0} |
1153 filerevmatches = {} |
1153 filerevmatches = {} |
1154 if incrementing or not opts['all']: |
1154 if not opts['all']: |
1155 a, b, r = prevstates, states, rev |
1155 a, b, r = prevstates, states, rev |
1156 else: |
1156 else: |
1157 a, b, r = states, prevstates, prev.get(fn, -1) |
1157 a, b, r = states, prevstates, prev.get(fn, -1) |
1158 for change, l in difflinestates(a, b): |
1158 for change, l in difflinestates(a, b): |
1159 cols = [fn, str(r)] |
1159 cols = [fn, str(r)] |
1177 fstate = {} |
1177 fstate = {} |
1178 skip = {} |
1178 skip = {} |
1179 get = util.cachefunc(lambda r: repo.changectx(r).changeset()) |
1179 get = util.cachefunc(lambda r: repo.changectx(r).changeset()) |
1180 changeiter, matchfn = cmdutil.walkchangerevs(ui, repo, pats, get, opts) |
1180 changeiter, matchfn = cmdutil.walkchangerevs(ui, repo, pats, get, opts) |
1181 count = 0 |
1181 count = 0 |
1182 incrementing = False |
|
1183 follow = opts.get('follow') |
1182 follow = opts.get('follow') |
1184 for st, rev, fns in changeiter: |
1183 for st, rev, fns in changeiter: |
1185 if st == 'window': |
1184 if st == 'window': |
1186 incrementing = rev |
|
1187 matches.clear() |
1185 matches.clear() |
1188 elif st == 'add': |
1186 elif st == 'add': |
1189 mf = repo.changectx(rev).manifest() |
1187 mf = repo.changectx(rev).manifest() |
1190 matches[rev] = {} |
1188 matches[rev] = {} |
1191 for fn in fns: |
1189 for fn in fns: |
1207 copy = copies.get(rev, {}).get(fn) |
1205 copy = copies.get(rev, {}).get(fn) |
1208 if fn in skip: |
1206 if fn in skip: |
1209 if copy: |
1207 if copy: |
1210 skip[copy] = True |
1208 skip[copy] = True |
1211 continue |
1209 continue |
1212 if incrementing or not opts['all'] or fstate[fn]: |
1210 if not opts['all'] or fstate[fn]: |
1213 pos, neg = display(fn, rev, m, fstate[fn]) |
1211 pos, neg = display(fn, rev, m, fstate[fn]) |
1214 count += pos + neg |
1212 count += pos + neg |
1215 if pos and not opts['all']: |
1213 if pos and not opts['all']: |
1216 skip[fn] = True |
1214 skip[fn] = True |
1217 if copy: |
1215 if copy: |
1219 fstate[fn] = m |
1217 fstate[fn] = m |
1220 if copy: |
1218 if copy: |
1221 fstate[copy] = m |
1219 fstate[copy] = m |
1222 prev[fn] = rev |
1220 prev[fn] = rev |
1223 |
1221 |
1224 if not incrementing: |
1222 fstate = fstate.items() |
1225 fstate = fstate.items() |
1223 fstate.sort() |
1226 fstate.sort() |
1224 for fn, state in fstate: |
1227 for fn, state in fstate: |
1225 if fn in skip: |
1228 if fn in skip: |
1226 continue |
1229 continue |
1227 if fn not in copies.get(prev[fn], {}): |
1230 if fn not in copies.get(prev[fn], {}): |
1228 display(fn, rev, {}, state) |
1231 display(fn, rev, {}, state) |
|
1232 return (count == 0 and 1) or 0 |
1229 return (count == 0 and 1) or 0 |
1233 |
1230 |
1234 def heads(ui, repo, **opts): |
1231 def heads(ui, repo, **opts): |
1235 """show current repository heads |
1232 """show current repository heads |
1236 |
1233 |