Merge branch 'mo/cvs-server-cleanup'
Cleanups to prepare for mo/cvs-server-updates. * mo/cvs-server-cleanup: Use character class for sed expression instead of \s cvsserver status: provide real sticky info cvsserver: cvs add: do not expand directory arguments cvsserver: use whole CVS rev number in-process; don't strip "1." prefix cvsserver: split up long lines in req_{status,diff,log} cvsserver: clean up client request handler map comments cvsserver: remove unused functions _headrev and gethistory cvsserver update: comment about how we shouldn't remove a user-modified file cvsserver: add comments about database schema/usage cvsserver: removed unused sha1Or-k mode from kopts_from_path cvsserver t9400: add basic 'cvs log' test
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -400,7 +400,7 @@ cat >expected.C <<EOF
|
|||||||
Line 0
|
Line 0
|
||||||
=======
|
=======
|
||||||
LINE 0
|
LINE 0
|
||||||
>>>>>>> merge.3
|
>>>>>>> merge.1.3
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
for i in 1 2 3 4 5 6 7 8
|
for i in 1 2 3 4 5 6 7 8
|
||||||
@ -504,6 +504,76 @@ test_expect_success 'cvs co -c (shows module database)' '
|
|||||||
! grep -v "^master[ ][ ]*master$" <out
|
! grep -v "^master[ ][ ]*master$" <out
|
||||||
'
|
'
|
||||||
|
|
||||||
|
#------------
|
||||||
|
# CVS LOG
|
||||||
|
#------------
|
||||||
|
|
||||||
|
# Known issues with git-cvsserver current log output:
|
||||||
|
# - Hard coded "lines: +2 -3" placeholder, instead of real numbers.
|
||||||
|
# - CVS normally does not internally add a blank first line
|
||||||
|
# nor a last line with nothing but a space to log messages.
|
||||||
|
# - The latest cvs 1.12.x server sends +0000 timezone (with some hidden "MT"
|
||||||
|
# tagging in the protocol), and if cvs 1.12.x client sees the MT tags,
|
||||||
|
# it converts to local time zone. git-cvsserver doesn't do the +0000
|
||||||
|
# or the MT tags...
|
||||||
|
# - The latest 1.12.x releases add a "commitid:" field on to the end of the
|
||||||
|
# "date:" line (after "lines:"). Maybe we could stick git's commit id
|
||||||
|
# in it? Or does CVS expect a certain number of bits (too few for
|
||||||
|
# a full sha1)?
|
||||||
|
#
|
||||||
|
# Given the above, expect the following test to break if git-cvsserver's
|
||||||
|
# log output is improved. The test is just to ensure it doesn't
|
||||||
|
# accidentally get worse.
|
||||||
|
|
||||||
|
sed -e 's/^x//' -e 's/SP$/ /' > "$WORKDIR/expect" <<EOF
|
||||||
|
x
|
||||||
|
xRCS file: $WORKDIR/gitcvs.git/master/merge,v
|
||||||
|
xWorking file: merge
|
||||||
|
xhead: 1.4
|
||||||
|
xbranch:
|
||||||
|
xlocks: strict
|
||||||
|
xaccess list:
|
||||||
|
xsymbolic names:
|
||||||
|
xkeyword substitution: kv
|
||||||
|
xtotal revisions: 4; selected revisions: 4
|
||||||
|
xdescription:
|
||||||
|
x----------------------------
|
||||||
|
xrevision 1.4
|
||||||
|
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
|
||||||
|
x
|
||||||
|
xMerge test (no-op)
|
||||||
|
xSP
|
||||||
|
x----------------------------
|
||||||
|
xrevision 1.3
|
||||||
|
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
|
||||||
|
x
|
||||||
|
xMerge test (conflict)
|
||||||
|
xSP
|
||||||
|
x----------------------------
|
||||||
|
xrevision 1.2
|
||||||
|
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
|
||||||
|
x
|
||||||
|
xMerge test (merge)
|
||||||
|
xSP
|
||||||
|
x----------------------------
|
||||||
|
xrevision 1.1
|
||||||
|
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
|
||||||
|
x
|
||||||
|
xMerge test (pre-merge)
|
||||||
|
xSP
|
||||||
|
x=============================================================================
|
||||||
|
EOF
|
||||||
|
expectStat="$?"
|
||||||
|
|
||||||
|
cd "$WORKDIR"
|
||||||
|
test_expect_success 'cvs log' '
|
||||||
|
cd cvswork &&
|
||||||
|
test x"$expectStat" = x"0" &&
|
||||||
|
GIT_CONFIG="$git_config" cvs log merge >../out &&
|
||||||
|
sed -e "s%2[0-9][0-9][0-9]/[01][0-9]/[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]%__DATE__%" ../out > ../actual &&
|
||||||
|
test_cmp ../expect ../actual
|
||||||
|
'
|
||||||
|
|
||||||
#------------
|
#------------
|
||||||
# CVS ANNOTATE
|
# CVS ANNOTATE
|
||||||
#------------
|
#------------
|
||||||
|
@ -38,6 +38,25 @@ not_present() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_status_options() {
|
||||||
|
(cd "$1" &&
|
||||||
|
GIT_CONFIG="$git_config" cvs -Q status "$2" > "${WORKDIR}/status.out" 2>&1
|
||||||
|
)
|
||||||
|
if [ x"$?" != x"0" ] ; then
|
||||||
|
echo "Error from cvs status: $1 $2" >> "${WORKDIR}/marked.log"
|
||||||
|
return 1;
|
||||||
|
fi
|
||||||
|
got="$(sed -n -e 's/^[ ]*Sticky Options:[ ]*//p' "${WORKDIR}/status.out")"
|
||||||
|
expect="$3"
|
||||||
|
if [ x"$expect" = x"" ] ; then
|
||||||
|
expect="(none)"
|
||||||
|
fi
|
||||||
|
test x"$got" = x"$expect"
|
||||||
|
stat=$?
|
||||||
|
echo "cvs status: $1 $2 $stat '$3' '$got'" >> "${WORKDIR}/marked.log"
|
||||||
|
return $stat
|
||||||
|
}
|
||||||
|
|
||||||
cvs >/dev/null 2>&1
|
cvs >/dev/null 2>&1
|
||||||
if test $? -ne 1
|
if test $? -ne 1
|
||||||
then
|
then
|
||||||
@ -233,6 +252,22 @@ test_expect_success 'cvs co another copy (guess)' '
|
|||||||
marked_as cvswork2/subdir newfile.c ""
|
marked_as cvswork2/subdir newfile.c ""
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'cvs status - sticky options' '
|
||||||
|
check_status_options cvswork2 textfile.c "" &&
|
||||||
|
check_status_options cvswork2 binfile.bin -kb &&
|
||||||
|
check_status_options cvswork2 .gitattributes "" &&
|
||||||
|
check_status_options cvswork2 mixedUp.c -kb &&
|
||||||
|
check_status_options cvswork2 multiline.c -kb &&
|
||||||
|
check_status_options cvswork2 multilineTxt.c "" &&
|
||||||
|
check_status_options cvswork2/subdir withCr.bin -kb &&
|
||||||
|
check_status_options cvswork2 subdir/withCr.bin -kb &&
|
||||||
|
check_status_options cvswork2/subdir file.h "" &&
|
||||||
|
check_status_options cvswork2 subdir/file.h "" &&
|
||||||
|
check_status_options cvswork2/subdir unspecified.other "" &&
|
||||||
|
check_status_options cvswork2/subdir newfile.bin "" &&
|
||||||
|
check_status_options cvswork2/subdir newfile.c ""
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'add text (guess)' '
|
test_expect_success 'add text (guess)' '
|
||||||
(cd cvswork &&
|
(cd cvswork &&
|
||||||
echo "simpleText" > simpleText.c &&
|
echo "simpleText" > simpleText.c &&
|
||||||
|
Reference in New Issue
Block a user