mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 08:47:12 +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
191 lines
5.9 KiB
Perl
191 lines
5.9 KiB
Perl
#chg-compatible
|
|
|
|
Check that renames are correctly saved by a commit after a merge
|
|
|
|
Test with the merge on 3 having the rename on the local parent
|
|
|
|
$ hg init a
|
|
$ cd a
|
|
|
|
$ echo line1 > foo
|
|
$ hg add foo
|
|
$ hg ci -m '0: add foo'
|
|
|
|
$ echo line2 >> foo
|
|
$ hg ci -m '1: change foo'
|
|
|
|
$ hg up -C 2665aaee66e9fc1bb2da7f5779ba24c07a077f9c
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ hg mv foo bar
|
|
$ rm bar
|
|
$ echo line0 > bar
|
|
$ echo line1 >> bar
|
|
$ hg ci -m '2: mv foo bar; change bar'
|
|
|
|
$ hg merge 5cd961e4045d633bfcbba1c42fc0850c08ea708c
|
|
merging bar and foo to bar
|
|
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
|
|
(branch merge, don't forget to commit)
|
|
|
|
$ cat bar
|
|
line0
|
|
line1
|
|
line2
|
|
|
|
$ hg ci -m '3: merge with local rename'
|
|
|
|
#if common-zlib
|
|
$ hg debugindex bar
|
|
rev offset length ..... linkrev nodeid p1 p2 (re)
|
|
0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
|
|
1 77 80 0 3 5345f5ab8abd 000000000000 d35118874825
|
|
#endif
|
|
|
|
$ hg debugrename bar
|
|
bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
|
|
|
|
#if common-zlib
|
|
$ hg debugindex foo
|
|
rev offset length ..... linkrev nodeid p1 p2 (re)
|
|
0 0 7 ..... 0 690b295714ae 000000000000 000000000000 (re)
|
|
1 7 13 ..... 1 9e25c27b8757 690b295714ae 000000000000 (re)
|
|
#endif
|
|
|
|
Revert the content change from rev 2:
|
|
|
|
$ hg up -C 0f2ff26688b9cebd8fe05c5f24d4b9fbc623e823
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ rm bar
|
|
$ echo line1 > bar
|
|
$ hg ci -m '4: revert content change from rev 2'
|
|
|
|
$ hg log --template '{node|short} {parents}\n'
|
|
2263c1be0967 0f2ff26688b9
|
|
0555950ead28 0f2ff26688b9 5cd961e4045d
|
|
0f2ff26688b9 2665aaee66e9
|
|
5cd961e4045d 2665aaee66e9
|
|
2665aaee66e9 000000000000
|
|
|
|
This should use bar@rev2 as the ancestor:
|
|
|
|
$ hg --debug merge 0555950ead287c667df4449c8b3e25d20f99d55b
|
|
searching for copies back to 5cd961e4045d
|
|
resolving manifests
|
|
branchmerge: True, force: False, partial: False
|
|
ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28
|
|
preserving bar for resolve of bar
|
|
bar: versions differ -> m (premerge)
|
|
picked tool ':merge' for bar (binary False symlink False changedelete False)
|
|
merging bar
|
|
my bar@2263c1be0967+ other bar@0555950ead28 ancestor bar@0f2ff26688b9
|
|
premerge successful
|
|
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
|
|
(branch merge, don't forget to commit)
|
|
|
|
$ cat bar
|
|
line1
|
|
line2
|
|
|
|
$ hg ci -m '5: merge'
|
|
|
|
#if common-zlib
|
|
$ hg debugindex bar
|
|
rev offset length ..... linkrev nodeid p1 p2 (re)
|
|
0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
|
|
1 77 80 0 3 5345f5ab8abd 000000000000 d35118874825
|
|
2 157 7 -1 4 ff4b45017382 d35118874825 000000000000
|
|
3 164 13 -1 5 3701b4893544 ff4b45017382 5345f5ab8abd
|
|
#endif
|
|
|
|
Same thing, but with the merge on 3 having the rename
|
|
on the remote parent:
|
|
|
|
$ cd ..
|
|
$ hg clone -U -r 1 -r 2 a b
|
|
adding changesets
|
|
adding manifests
|
|
adding file changes
|
|
added 3 changesets with 3 changes to 2 files
|
|
$ cd b
|
|
|
|
$ hg up -C 5cd961e4045d633bfcbba1c42fc0850c08ea708c
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
|
|
$ hg merge 0f2ff26688b9cebd8fe05c5f24d4b9fbc623e823
|
|
merging foo and bar to bar
|
|
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
|
|
(branch merge, don't forget to commit)
|
|
|
|
$ cat bar
|
|
line0
|
|
line1
|
|
line2
|
|
|
|
$ hg ci -m '3: merge with remote rename'
|
|
|
|
#if common-zlib
|
|
$ hg debugindex bar
|
|
rev offset length ..... linkrev nodeid p1 p2 (re)
|
|
0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
|
|
1 77 80 0 3 5345f5ab8abd 000000000000 d35118874825
|
|
#endif
|
|
|
|
$ hg debugrename bar
|
|
bar renamed from foo:9e25c27b87571a1edee5ae4dddee5687746cc8e2
|
|
|
|
#if common-zlib
|
|
$ hg debugindex foo
|
|
rev offset length ..... linkrev nodeid p1 p2 (re)
|
|
0 0 7 ..... 0 690b295714ae 000000000000 000000000000 (re)
|
|
1 7 13 ..... 1 9e25c27b8757 690b295714ae 000000000000 (re)
|
|
#endif
|
|
|
|
Revert the content change from rev 2:
|
|
|
|
$ hg up -C 0f2ff26688b9cebd8fe05c5f24d4b9fbc623e823
|
|
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
|
$ rm bar
|
|
$ echo line1 > bar
|
|
$ hg ci -m '4: revert content change from rev 2'
|
|
|
|
$ hg log --template '{node|short} {parents}\n'
|
|
2263c1be0967 0f2ff26688b9
|
|
3ffa6b9e35f0 5cd961e4045d 0f2ff26688b9
|
|
0f2ff26688b9 2665aaee66e9
|
|
5cd961e4045d 2665aaee66e9
|
|
2665aaee66e9 000000000000
|
|
|
|
This should use bar@rev2 as the ancestor:
|
|
|
|
$ hg --debug merge 3ffa6b9e35f066d97cfa87e58fa169bce5415826
|
|
searching for copies back to 5cd961e4045d
|
|
resolving manifests
|
|
branchmerge: True, force: False, partial: False
|
|
ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0
|
|
preserving bar for resolve of bar
|
|
bar: versions differ -> m (premerge)
|
|
picked tool ':merge' for bar (binary False symlink False changedelete False)
|
|
merging bar
|
|
my bar@2263c1be0967+ other bar@3ffa6b9e35f0 ancestor bar@0f2ff26688b9
|
|
premerge successful
|
|
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
|
|
(branch merge, don't forget to commit)
|
|
|
|
$ cat bar
|
|
line1
|
|
line2
|
|
|
|
$ hg ci -m '5: merge'
|
|
|
|
#if common-zlib
|
|
$ hg debugindex bar
|
|
rev offset length ..... linkrev nodeid p1 p2 (re)
|
|
0 0 77 ..... 2 d35118874825 000000000000 000000000000 (re)
|
|
1 77 80 0 3 5345f5ab8abd 000000000000 d35118874825
|
|
2 157 7 -1 4 ff4b45017382 d35118874825 000000000000
|
|
3 164 13 -1 5 3701b4893544 ff4b45017382 5345f5ab8abd
|
|
#endif
|
|
|
|
$ cd ..
|