##// END OF EJS Templates
hgweb: render next pages on /graph incrementally...
hgweb: render next pages on /graph incrementally Previously, when user scrolled down to see the next page on /graph, all hgweb did was re-render everything that would be visible (by simply incrementing revcount). It was not efficient at all, and this patch makes /graph page behave similarly to the regular /log: every new page only consists of new changesets, no duplication, and only jsdata is based on the full set of changesets required to build accurate graph. This is achieved by adding "?graphtop=<node>" to the next page URL template, effectively remembering where the graph started, and using that value to create the new `tree` that covers the whole visible graph. That variable is then used to produce jsdata for redrawing graph client-side. nextentry is used for the same purpose as on /log page (to format the next page URL), but it's not a part of the graph.

File last commit:

r34366:f61f5af5 merge default
r35410:f84b0125 default
Show More
test-rebase-emptycommit.t
207 lines | 3.8 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-emptycommit.t
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 $ cat >> $HGRCPATH<<EOF
> [extensions]
> rebase=
> drawdag=$TESTDIR/drawdag.py
> EOF
$ hg init non-merge
$ cd non-merge
$ hg debugdrawdag<<'EOS'
> F
> |
> E
> |
> D
> |
> B C
> |/
> A
> EOS
$ for i in C D E F; do
> hg bookmark -r $i -i BOOK-$i
> done
$ hg debugdrawdag<<'EOS'
> E
> |
> D
> |
> B
> EOS
$ hg log -G -T '{rev} {desc} {bookmarks}'
o 7 E
|
o 6 D
|
| o 5 F BOOK-F
| |
| o 4 E BOOK-E
| |
| o 3 D BOOK-D
| |
| o 2 C BOOK-C
| |
o | 1 B
|/
o 0 A
Jun Wu
rebase: move bookmarks with --keep (issue5682)...
r34364 With --keep, bookmark should move
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591
$ hg rebase -r 3+4 -d E --keep
rebasing 3:e7b3f00ed42e "D" (BOOK-D)
note: rebase of 3:e7b3f00ed42e created no changes to commit
rebasing 4:69a34c08022a "E" (BOOK-E)
note: rebase of 4:69a34c08022a created no changes to commit
$ hg log -G -T '{rev} {desc} {bookmarks}'
Jun Wu
rebase: move bookmarks with --keep (issue5682)...
r34364 o 7 E BOOK-D BOOK-E
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 |
o 6 D
|
| o 5 F BOOK-F
| |
Jun Wu
rebase: move bookmarks with --keep (issue5682)...
r34364 | o 4 E
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 | |
Jun Wu
rebase: move bookmarks with --keep (issue5682)...
r34364 | o 3 D
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 | |
| o 2 C BOOK-C
| |
o | 1 B
|/
o 0 A
Jun Wu
rebase: move bookmarks with --keep (issue5682)...
r34364 Move D and E back for the next test
$ hg bookmark BOOK-D -fqir 3
$ hg bookmark BOOK-E -fqir 4
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 Bookmark is usually an indication of a head. For changes that are introduced by
an ancestor of bookmark B, after moving B to B-NEW, the changes are ideally
still introduced by an ancestor of changeset on B-NEW. In the below case,
"BOOK-D", and "BOOK-E" include changes introduced by "C".
$ hg rebase -s 2 -d E
Martin von Zweigbergk
rebase: also include other namespaces in changeset description...
r34291 rebasing 2:dc0947a82db8 "C" (BOOK-C C)
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 rebasing 3:e7b3f00ed42e "D" (BOOK-D)
note: rebase of 3:e7b3f00ed42e created no changes to commit
rebasing 4:69a34c08022a "E" (BOOK-E)
note: rebase of 4:69a34c08022a created no changes to commit
Martin von Zweigbergk
rebase: also include other namespaces in changeset description...
r34291 rebasing 5:6b2aeab91270 "F" (BOOK-F F)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/non-merge/.hg/strip-backup/dc0947a82db8-52bb4973-rebase.hg
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 $ hg log -G -T '{rev} {desc} {bookmarks}'
o 5 F BOOK-F
|
o 4 C BOOK-C BOOK-D BOOK-E
|
o 3 E
|
o 2 D
|
o 1 B
|
o 0 A
Merge and its ancestors all become empty
$ hg init $TESTTMP/merge1
$ cd $TESTTMP/merge1
$ hg debugdrawdag<<'EOS'
> E
> /|
> B C D
> \|/
> A
> EOS
$ for i in C D E; do
> hg bookmark -r $i -i BOOK-$i
> done
$ hg debugdrawdag<<'EOS'
> H
> |
> D
> |
> C
> |
> B
> EOS
$ hg rebase -r '(A::)-(B::)-A' -d H
rebasing 2:dc0947a82db8 "C" (BOOK-C)
note: rebase of 2:dc0947a82db8 created no changes to commit
rebasing 3:b18e25de2cf5 "D" (BOOK-D)
note: rebase of 3:b18e25de2cf5 created no changes to commit
Martin von Zweigbergk
rebase: also include other namespaces in changeset description...
r34291 rebasing 4:86a1f6686812 "E" (BOOK-E E)
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 note: rebase of 4:86a1f6686812 created no changes to commit
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/merge1/.hg/strip-backup/b18e25de2cf5-1fd0a4ba-rebase.hg
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591
$ hg log -G -T '{rev} {desc} {bookmarks}'
o 4 H BOOK-C BOOK-D BOOK-E
|
o 3 D
|
o 2 C
|
o 1 B
|
o 0 A
Part of ancestors of a merge become empty
$ hg init $TESTTMP/merge2
$ cd $TESTTMP/merge2
$ hg debugdrawdag<<'EOS'
> G
> /|
> E F
> | |
> B C D
> \|/
> A
> EOS
$ for i in C D E F G; do
> hg bookmark -r $i -i BOOK-$i
> done
$ hg debugdrawdag<<'EOS'
> H
> |
> F
> |
> C
> |
> B
> EOS
$ hg rebase -r '(A::)-(B::)-A' -d H
rebasing 2:dc0947a82db8 "C" (BOOK-C)
note: rebase of 2:dc0947a82db8 created no changes to commit
Martin von Zweigbergk
rebase: also include other namespaces in changeset description...
r34291 rebasing 3:b18e25de2cf5 "D" (BOOK-D D)
rebasing 4:03ca77807e91 "E" (BOOK-E E)
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591 rebasing 5:ad6717a6a58e "F" (BOOK-F)
note: rebase of 5:ad6717a6a58e created no changes to commit
Martin von Zweigbergk
rebase: also include other namespaces in changeset description...
r34291 rebasing 6:c58e8bdac1f4 "G" (BOOK-G G)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/merge2/.hg/strip-backup/b18e25de2cf5-2d487005-rebase.hg
Jun Wu
rebase: move bookmark to destination for commits becoming empty (issue5627)...
r33591
$ hg log -G -T '{rev} {desc} {bookmarks}'
o 7 G BOOK-G
|\
| o 6 E BOOK-E
| |
o | 5 D BOOK-D BOOK-F
|/
o 4 H BOOK-C
|
o 3 F
|
o 2 C
|
o 1 B
|
o 0 A