mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
98d9269874
Summary: Create a fork of the Mercurial code that we can use to build server rpms. The hg servers will continue to exist for a few more months while we move the darkstorm and ediscovery use cases off them. In the mean time, we want to start making breaking changes to the client, so let's create a stable copy of the hg code to produce rpms for the hg servers. The fork is based off c7770c78d, the latest hg release. This copies the files as is, then adds some minor tweaks to get it to build: - Disables some lint checks that appear to be bypassed by path - sed replace eden/scm with eden/hg-server - Removed a dependency on scm/telemetry from the edenfs-client tests since scm/telemetry pulls in the original eden/scm/lib/configparser which conflicts with the hg-server conflict parser. allow-large-files Reviewed By: quark-zju Differential Revision: D27632557 fbshipit-source-id: b2f442f4ec000ea08e4d62de068750832198e1f4
207 lines
3.8 KiB
Perl
207 lines
3.8 KiB
Perl
#chg-compatible
|
|
|
|
$ configure mutation-norecord
|
|
$ enable rebase
|
|
|
|
$ 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 `hg log -r $i -T '{node}'` -i BOOK-$i
|
|
> done
|
|
|
|
$ hg debugdrawdag<<'EOS'
|
|
> E
|
|
> |
|
|
> D
|
|
> |
|
|
> B
|
|
> EOS
|
|
$ hg book -d A B C D E F
|
|
|
|
$ hg log -G -T '{desc} {bookmarks}'
|
|
o E
|
|
│
|
|
o D
|
|
│
|
|
│ o F BOOK-F
|
|
│ │
|
|
│ o E BOOK-E
|
|
│ │
|
|
│ o D BOOK-D
|
|
│ │
|
|
│ o C BOOK-C
|
|
│ │
|
|
o │ B
|
|
├─╯
|
|
o A
|
|
|
|
With --keep, bookmark should move
|
|
|
|
$ hg rebase -r 'e7b3f00ed42ef8977173765eccff8a861809549b+"BOOK-E"' -d 'max(desc(E))' --keep
|
|
rebasing e7b3f00ed42e "D" (BOOK-D)
|
|
note: rebase of e7b3f00ed42e created no changes to commit
|
|
rebasing 69a34c08022a "E" (BOOK-E)
|
|
note: rebase of 69a34c08022a created no changes to commit
|
|
$ hg log -G -T '{desc} {bookmarks}'
|
|
o E BOOK-D BOOK-E
|
|
│
|
|
o D
|
|
│
|
|
│ o F BOOK-F
|
|
│ │
|
|
│ o E
|
|
│ │
|
|
│ o D
|
|
│ │
|
|
│ o C BOOK-C
|
|
│ │
|
|
o │ B
|
|
├─╯
|
|
o A
|
|
|
|
Move D and E back for the next test
|
|
|
|
$ hg bookmark BOOK-D -fqir e7b3f00ed42ef8977173765eccff8a861809549b
|
|
$ hg bookmark BOOK-E -fqir 69a34c08022af689d8a6e9be8d266f91f0cc79ec
|
|
|
|
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 'desc(C)' -d 'max(desc(E))'
|
|
rebasing dc0947a82db8 "C" (BOOK-C)
|
|
rebasing e7b3f00ed42e "D" (BOOK-D)
|
|
note: rebase of e7b3f00ed42e created no changes to commit
|
|
rebasing 69a34c08022a "E" (BOOK-E)
|
|
note: rebase of 69a34c08022a created no changes to commit
|
|
rebasing 6b2aeab91270 "F" (BOOK-F)
|
|
$ hg log -G -T '{desc} {bookmarks}'
|
|
o F BOOK-F
|
|
│
|
|
o C BOOK-C BOOK-D BOOK-E
|
|
│
|
|
o E
|
|
│
|
|
o D
|
|
│
|
|
o B
|
|
│
|
|
o 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 `hg log -r $i -T '{node}'` -i BOOK-$i
|
|
> done
|
|
|
|
$ hg debugdrawdag<<'EOS'
|
|
> H
|
|
> |
|
|
> D
|
|
> |
|
|
> C
|
|
> |
|
|
> B
|
|
> EOS
|
|
$ hg book -d A B C D E
|
|
|
|
$ hg rebase -r '(desc(A)::)-(desc(B)::)-desc(A)' -d 'desc(H)'
|
|
rebasing b18e25de2cf5 "D" (BOOK-D)
|
|
note: rebase of b18e25de2cf5 created no changes to commit
|
|
rebasing dc0947a82db8 "C" (BOOK-C)
|
|
note: rebase of dc0947a82db8 created no changes to commit
|
|
rebasing 86a1f6686812 "E" (BOOK-E)
|
|
note: rebase of 86a1f6686812 created no changes to commit
|
|
|
|
$ hg log -G -T '{desc} {bookmarks}'
|
|
o H BOOK-C BOOK-D BOOK-E H
|
|
│
|
|
o D
|
|
│
|
|
o C
|
|
│
|
|
o B
|
|
│
|
|
o 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 `hg log -r $i -T '{node}'` -i BOOK-$i
|
|
> done
|
|
|
|
$ hg debugdrawdag<<'EOS'
|
|
> H
|
|
> |
|
|
> F
|
|
> |
|
|
> C
|
|
> |
|
|
> B
|
|
> EOS
|
|
$ hg book -d A B C D E F G H
|
|
|
|
$ hg rebase -r '(desc(A)::)-(desc(B)::)-desc(A)' -d 'desc(H)'
|
|
rebasing dc0947a82db8 "C" (BOOK-C)
|
|
note: rebase of dc0947a82db8 created no changes to commit
|
|
rebasing 03ca77807e91 "E" (BOOK-E)
|
|
rebasing b18e25de2cf5 "D" (BOOK-D)
|
|
rebasing ad6717a6a58e "F" (BOOK-F)
|
|
note: rebase of ad6717a6a58e created no changes to commit
|
|
rebasing c58e8bdac1f4 "G" (BOOK-G)
|
|
|
|
$ hg log -G -T '{desc} {bookmarks}'
|
|
o G BOOK-G
|
|
├─╮
|
|
│ o D BOOK-D BOOK-F
|
|
│ │
|
|
o │ E BOOK-E
|
|
├─╯
|
|
o H BOOK-C
|
|
│
|
|
o F
|
|
│
|
|
o C
|
|
│
|
|
o B
|
|
│
|
|
o A
|
|
|