log: remove increasing windows usage in fastpath
The purpose of increasing windows is to allow backwards iteration on the
filelog at a reasonable cost.
But is it needed?
- if follow is False, we have no reason to iterate backwards.
We basically just want to walk the complete filelog and yield all revisions
within the revision range. We can do this forward or
backwards, as it only reads the index.
- when follow is True, we need to examine the contents of the filelog, and to
do this efficiently we need to read the filelog forward.
And on the other hand, to track ancestors and copies, we need to process
revisions backwards. But is it necessary to use increasing windows
for this?
We can iterate over the complete filelog forward, stack the revisions, and
read the reversed(pile), it does the same thing with a more readable code.
% test fetch with default branches only
adding a
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding b
1:97d72e5f12c7
% should pull one change
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1:97d72e5f12c7
adding c
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
% should merge c into a
pulling from ../a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
updating to 2:97d72e5f12c7
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
merging with 1:5e056962225c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
new changeset 3:cd3a41621cf0 merges remote changes with local
a
b
c
% fetch over http, no auth
pulling from http://localhost:$HGPORT/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
updating to 2:97d72e5f12c7
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
merging with 1:5e056962225c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
new changeset 3:... merges remote changes with local
Automated merge with http://localhost:$HGPORT/
% fetch over http with auth (should be hidden in desc)
pulling from http://user:***@localhost:$HGPORT/
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
updating to 2:97d72e5f12c7
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
merging with 1:5e056962225c
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
new changeset 3:... merges remote changes with local
Automated merge with http://localhost:$HGPORT/
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating to branch default
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding f
adding g
% should merge f into g
pulling from ../f
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
merging with 3:cc6a3744834d
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
new changeset 4:55aa4f32ec59 merges remote changes with local
% should abort, because i is modified
abort: working directory is missing some files
% test fetch with named branches
adding a
marked working directory as branch a
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
marked working directory as branch b
adding b
% pull in change on foreign branch
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
pulling from n1
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
% parent should be 2 (no automatic update)
2
% pull in changes on both foreign and local branches
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
pulling from n1
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% parent should be 4 (fast forward)
4
% pull changes on foreign (2 new heads) and local (1 new head) branches
% with a local change
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
created new head
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
adding c
pulling from n1
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 3 changes to 2 files (+2 heads)
updating to 5:708c6cce3d26
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
merging with 3:d83427717b1f
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
new changeset 7:48f1a33f52af merges remote changes with local
% parent should be 7 (new merge changeset)
7
% pull in changes on foreign (merge of local branch) and local (2 new
% heads) with a local change
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
created new head
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
pulling from n1
searching for changes
adding changesets
adding manifests
adding file changes
added 3 changesets with 2 changes to 1 files (+2 heads)
not merging with 1 other new branch heads (use "hg heads ." and "hg merge" to merge them)
% parent should be 3 (fetch did not merge anything)
3
% pull in change on different branch than dirstate
adding a
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
marked working directory as branch topic
abort: working dir not at branch tip (use "hg update" to check out branch tip)
% parent should be 0 (fetch did not update or merge anything)
0
% test fetch with inactive branches
adding a
marked working directory as branch second
adding b
marked working directory as branch default
adding c
created new head
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
% fetch should succeed
pulling from ../ib1
searching for changes
no changes found
% test issue1726
adding a
updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
pulling from ../i1726r1
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
updating to 2:7837755a2789
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
merging with 1:d1f0c6c48ebd
merging a
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
new changeset 3 merges remote changes with local
3
% test issue2047
pulling from ../i2047a
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files