mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 15:27:13 +03:00
Reproduce crash where synthetic revs break merge detection (issue1578).
(The fix for this was committed as ca297bc0642d.) Slightly edited by Patrick Mezard <pmezard@gmail.com>
This commit is contained in:
parent
014b3c7e92
commit
8e956c0016
@ -7,6 +7,7 @@ set -e
|
||||
|
||||
echo "[extensions]" >> $HGRCPATH
|
||||
echo "convert = " >> $HGRCPATH
|
||||
echo "graphlog = " >> $HGRCPATH
|
||||
echo "[convert]" >> $HGRCPATH
|
||||
echo "cvsps=builtin" >> $HGRCPATH
|
||||
|
||||
@ -51,10 +52,10 @@ cvscall -q tag -b v1_0
|
||||
cvscall -q tag -b v1_1
|
||||
|
||||
echo % create file2 on branch v1_0
|
||||
cvscall -q up -rv1_0
|
||||
cvscall -Q up -rv1_0
|
||||
touch file2
|
||||
cvscall -Q add file2
|
||||
cvsci -m"add file2 on branch v1_0" file2
|
||||
cvsci -m"add file2" file2
|
||||
|
||||
echo % create file3, file4 on branch v1_1
|
||||
cvscall -Q up -rv1_1
|
||||
@ -64,15 +65,54 @@ cvscall -Q add file3 file4
|
||||
cvsci -m"add file3, file4 on branch v1_1" file3 file4
|
||||
|
||||
echo % merge file2 from v1_0 to v1_1
|
||||
cvscall -q up -jv1_0
|
||||
cvsci -m"merge file2 from v1_0 to v1_1"
|
||||
cvscall -Q up -jv1_0
|
||||
cvsci -m"MERGE from v1_0: add file2"
|
||||
|
||||
# Step things up a notch: now we make the history really hairy, with
|
||||
# changes bouncing back and forth between trunk and v1_2 and merges
|
||||
# going both ways. (I.e., try to model the real world.)
|
||||
|
||||
echo "% create branch v1_2"
|
||||
cvscall -Q up -A
|
||||
cvscall -q tag -b v1_2
|
||||
|
||||
echo "% create file5 on branch v1_2"
|
||||
cvscall -Q up -rv1_2
|
||||
touch file5
|
||||
cvs -Q add file5
|
||||
cvsci -m"add file5 on v1_2"
|
||||
|
||||
echo "% create file6 on trunk post-v1_2"
|
||||
cvscall -Q up -A
|
||||
touch file6
|
||||
cvscall -Q add file6
|
||||
cvsci -m"add file6 on trunk post-v1_2"
|
||||
|
||||
echo "% merge file5 from v1_2 to trunk"
|
||||
cvscall -Q up -A
|
||||
cvscall -Q up -jv1_2 file5
|
||||
cvsci -m"MERGE from v1_2: add file5"
|
||||
|
||||
echo "% merge file6 from trunk to v1_2"
|
||||
cvscall -Q up -rv1_2
|
||||
cvscall up -jHEAD file6
|
||||
cvsci -m"MERGE from HEAD: add file6"
|
||||
|
||||
echo % cvs rlog output
|
||||
filterpath cvscall -q rlog proj | egrep '^(RCS file|revision)'
|
||||
|
||||
echo % convert to hg
|
||||
echo "% convert to hg (#1)"
|
||||
cd ..
|
||||
filterpath hg convert proj proj.hg
|
||||
filterpath hg convert --datesort proj proj.hg
|
||||
|
||||
echo % hg log output
|
||||
hg -R proj.hg log --template "{rev} {desc}\n"
|
||||
echo "% hg glog output (#1)"
|
||||
hg -R proj.hg glog --template "{rev} {desc}\n"
|
||||
|
||||
echo "% convert to hg (#2: with merge detection)"
|
||||
filterpath hg convert \
|
||||
--config convert.cvsps.mergefrom="\"^MERGE from (\S+):\"" \
|
||||
--datesort \
|
||||
proj proj.hg2
|
||||
|
||||
echo "% hg glog output (#2)"
|
||||
hg -R proj.hg2 glog --template "{rev} {desc}\n"
|
||||
|
@ -10,17 +10,36 @@ T file1
|
||||
cvs -f -q tag -b v1_1
|
||||
T file1
|
||||
% create file2 on branch v1_0
|
||||
cvs -f -q up -rv1_0
|
||||
cvs -f -Q up -rv1_0
|
||||
cvs -f -Q add file2
|
||||
cvs -f ci -madd file2 on branch v1_0 file2
|
||||
cvs -f ci -madd file2 file2
|
||||
% create file3, file4 on branch v1_1
|
||||
cvs -f -Q up -rv1_1
|
||||
cvs -f -Q add file3 file4
|
||||
cvs -f ci -madd file3, file4 on branch v1_1 file3 file4
|
||||
% merge file2 from v1_0 to v1_1
|
||||
cvs -f -q up -jv1_0
|
||||
U file2
|
||||
cvs -f ci -mmerge file2 from v1_0 to v1_1
|
||||
cvs -f -Q up -jv1_0
|
||||
cvs -f ci -mMERGE from v1_0: add file2
|
||||
% create branch v1_2
|
||||
cvs -f -Q up -A
|
||||
cvs -f -q tag -b v1_2
|
||||
T file1
|
||||
% create file5 on branch v1_2
|
||||
cvs -f -Q up -rv1_2
|
||||
cvs -f ci -madd file5 on v1_2
|
||||
% create file6 on trunk post-v1_2
|
||||
cvs -f -Q up -A
|
||||
cvs -f -Q add file6
|
||||
cvs -f ci -madd file6 on trunk post-v1_2
|
||||
% merge file5 from v1_2 to trunk
|
||||
cvs -f -Q up -A
|
||||
cvs -f -Q up -jv1_2 file5
|
||||
cvs -f ci -mMERGE from v1_2: add file5
|
||||
% merge file6 from trunk to v1_2
|
||||
cvs -f -Q up -rv1_2
|
||||
cvs -f up -jHEAD file6
|
||||
U file6
|
||||
cvs -f ci -mMERGE from HEAD: add file6
|
||||
% cvs rlog output
|
||||
RCS file: *REPO*/proj/file1,v
|
||||
revision 1.1
|
||||
@ -35,23 +54,83 @@ revision 1.1.2.1
|
||||
RCS file: *REPO*/proj/Attic/file4,v
|
||||
revision 1.1
|
||||
revision 1.1.2.1
|
||||
% convert to hg
|
||||
RCS file: *REPO*/proj/file5,v
|
||||
revision 1.2
|
||||
revision 1.1
|
||||
revision 1.1.2.1
|
||||
RCS file: *REPO*/proj/file6,v
|
||||
revision 1.1
|
||||
revision 1.1.2.2
|
||||
revision 1.1.2.1
|
||||
% convert to hg (#1)
|
||||
initializing destination proj.hg repository
|
||||
connecting to *REPO*
|
||||
scanning source...
|
||||
using builtin cvsps
|
||||
collecting CVS rlog
|
||||
9 log entries
|
||||
15 log entries
|
||||
creating changesets
|
||||
4 changeset entries
|
||||
8 changeset entries
|
||||
sorting...
|
||||
converting...
|
||||
3 add file1 on trunk
|
||||
2 add file2 on branch v1_0
|
||||
1 add file3, file4 on branch v1_1
|
||||
0 merge file2 from v1_0 to v1_1
|
||||
% hg log output
|
||||
3 merge file2 from v1_0 to v1_1
|
||||
2 add file3, file4 on branch v1_1
|
||||
1 add file2 on branch v1_0
|
||||
0 add file1 on trunk
|
||||
7 add file1 on trunk
|
||||
6 add file2
|
||||
5 add file3, file4 on branch v1_1
|
||||
4 MERGE from v1_0: add file2
|
||||
3 add file5 on v1_2
|
||||
2 add file6 on trunk post-v1_2
|
||||
1 MERGE from v1_2: add file5
|
||||
0 MERGE from HEAD: add file6
|
||||
% hg glog output (#1)
|
||||
o 7 MERGE from HEAD: add file6
|
||||
|
|
||||
| o 6 MERGE from v1_2: add file5
|
||||
| |
|
||||
| o 5 add file6 on trunk post-v1_2
|
||||
| |
|
||||
o | 4 add file5 on v1_2
|
||||
|/
|
||||
| o 3 MERGE from v1_0: add file2
|
||||
| |
|
||||
| o 2 add file3, file4 on branch v1_1
|
||||
|/
|
||||
| o 1 add file2
|
||||
|/
|
||||
o 0 add file1 on trunk
|
||||
|
||||
% convert to hg (#2: with merge detection)
|
||||
initializing destination proj.hg2 repository
|
||||
connecting to *REPO*
|
||||
scanning source...
|
||||
using builtin cvsps
|
||||
collecting CVS rlog
|
||||
15 log entries
|
||||
creating changesets
|
||||
8 changeset entries
|
||||
sorting...
|
||||
converting...
|
||||
7 add file1 on trunk
|
||||
6 add file2
|
||||
5 add file3, file4 on branch v1_1
|
||||
4 MERGE from v1_0: add file2
|
||||
3 add file5 on v1_2
|
||||
2 add file6 on trunk post-v1_2
|
||||
1 MERGE from v1_2: add file5
|
||||
0 MERGE from HEAD: add file6
|
||||
% hg glog output (#2)
|
||||
o 7 MERGE from HEAD: add file6
|
||||
|\
|
||||
| o 6 MERGE from v1_2: add file5
|
||||
| |
|
||||
| o 5 add file6 on trunk post-v1_2
|
||||
| |
|
||||
o | 4 add file5 on v1_2
|
||||
|/
|
||||
| o 3 MERGE from v1_0: add file2
|
||||
| |\
|
||||
+---o 2 add file3, file4 on branch v1_1
|
||||
| |
|
||||
| o 1 add file2
|
||||
|/
|
||||
o 0 add file1 on trunk
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user