mirror of
https://github.com/git/git.git
synced 2024-11-01 06:47:52 +01:00
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:
commit
3aedff6b60
3 changed files with 435 additions and 210 deletions
File diff suppressed because it is too large
Load diff
|
@ -400,7 +400,7 @@ cat >expected.C <<EOF
|
|||
Line 0
|
||||
=======
|
||||
LINE 0
|
||||
>>>>>>> merge.3
|
||||
>>>>>>> merge.1.3
|
||||
EOF
|
||||
|
||||
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
|
||||
'
|
||||
|
||||
#------------
|
||||
# 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
|
||||
#------------
|
||||
|
|
|
@ -38,6 +38,25 @@ not_present() {
|
|||
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
|
||||
if test $? -ne 1
|
||||
then
|
||||
|
@ -233,6 +252,22 @@ test_expect_success 'cvs co another copy (guess)' '
|
|||
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)' '
|
||||
(cd cvswork &&
|
||||
echo "simpleText" > simpleText.c &&
|
||||
|
|
Loading…
Reference in a new issue