Re: [PATCH] t9402: sed -i is not portable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Torsten Bögershausen <tboegi@xxxxxx> writes:

> On some systems sed allows the usage of e.g.
> sed -i -e "s/line1/line2/" afile
> to edit the file "in place".
> Other systems don't allow that: one observed behaviour is that
> sed -i -e "s/line1/line2/" afile
> creates a backup file called afile-e, which breaks the test.
> As sed -i is not part of POSIX, avoid it.
>
> Use test_cmp, makes the test easier to debug.
> Chain all shell commands with && to detect all kinds of failure.
> While at it, Use TAB to indent.
>
> Signed-off-by: Torsten Bögershausen <tboegi@xxxxxx>
> ---
> Note: this should go on top of pu
>
>  t/t9402-git-cvsserver-refs.sh | 764 +++++++++++++++++++++---------------------
>  1 file changed, 383 insertions(+), 381 deletions(-)
>
> diff --git a/t/t9402-git-cvsserver-refs.sh b/t/t9402-git-cvsserver-refs.sh
> index 858ef0f..39c6b01 100755
> --- a/t/t9402-git-cvsserver-refs.sh
> +++ b/t/t9402-git-cvsserver-refs.sh
> @@ -10,59 +10,58 @@ tags, branches and other git refspecs'
>  #########
>  
>  check_start_tree() {
> -    rm -f "$WORKDIR/check.list"
> -    echo "start $1" >> "${WORKDIR}/check.log"
> +		rm -f "$WORKDIR/check.list"
> +		echo "start $1" >> "${WORKDIR}/check.log"

I think the indentation is broken throughout the patch.  Why two
tabs at the beginning?

Please do not do many unrelated things at once in a commit, as it
makes the changes unnecessarily noisy for reviewing.  When a
reviewer wants to concentrate on formatting, changes to other text
become distracting.  When a reviewer wants to concentrate on the
logic of replacing "sed -i" with a temporary file, formatting
changes become distracting.

If you want to fix "sed -i", do that and only that in one patch.  If
you want to fix indentation and other style fixes (which is a good
thing to do), do that and only that in a separate patch, either
before or after the main patch.

Thanks.

>  }
>  
>  check_file() {
> -    sandbox="$1"
> -    file="$2"
> -    ver="$3"
> -    GIT_DIR=$SERVERDIR git show "${ver}:${file}" \
> +		sandbox="$1"
> +		file="$2"
> +		ver="$3"
> +		GIT_DIR=$SERVERDIR git show "${ver}:${file}" \
>  	> "$WORKDIR/check.got" 2> "$WORKDIR/check.stderr"
> -    test_cmp "$WORKDIR/check.got" "$sandbox/$file"
> -    stat=$?
> -    echo "check_file $sandbox $file $ver : $stat" >> "$WORKDIR/check.log"
> -    echo "$file" >> "$WORKDIR/check.list"
> -    return $stat
> +		test_cmp "$WORKDIR/check.got" "$sandbox/$file"
> +		stat=$?
> +		echo "check_file $sandbox $file $ver : $stat" >> "$WORKDIR/check.log"
> +		echo "$file" >> "$WORKDIR/check.list"
> +		return $stat
>  }
>  
>  check_end_tree() {
> -    sandbox="$1"
> -    expectCount=$(wc -l < "$WORKDIR/check.list")
> -    cvsCount=$(find "$sandbox" -name CVS -prune -o -type f -print | wc -l)
> -    test x"$cvsCount" = x"$expectCount"
> -    stat=$?
> -    echo "check_end $sandbox : $stat cvs=$cvsCount expect=$expectCount" \
> -	>> "$WORKDIR/check.log"
> -    return $stat
> +		sandbox="$1" &&
> +		wc -l < "$WORKDIR/check.list" > expected &&
> +		find "$sandbox" -type f | grep -v "/CVS" > "$WORKDIR/check.cvsCount" &&
> +		wc -l < "$WORKDIR/check.cvsCount" >actual &&
> +		test_cmp expected actual &&
> +		rm expected actual &&
> +		sort < "$WORKDIR/check.list" > expected &&
> +		sort < "$WORKDIR/check.cvsCount" | sed -e "s%cvswork/%%" >actual &&
> +		test_cmp expected actual &&
> +		rm expected actual
>  }
>  
>  check_end_full_tree() {
> -    sandbox="$1"
> -    ver="$2"
> -    expectCount=$(wc -l < "$WORKDIR/check.list")
> -    cvsCount=$(find "$sandbox" -name CVS -prune -o -type f -print | wc -l)
> -    gitCount=$(git ls-tree -r "$2" | wc -l)
> -    test x"$cvsCount" = x"$expectCount" -a x"$gitCount" = x"$expectCount"
> -    stat=$?
> -    echo "check_end $sandbox : $stat cvs=$cvsCount git=$gitCount expect=$expectCount" \
> -	>> "$WORKDIR/check.log"
> -    return $stat
> +		sandbox="$1" &&
> +		sort < "$WORKDIR/check.list" >expected &&
> +		find "$sandbox" -name CVS -prune -o -type f -print | sed -e "s%$sandbox/%%" | sort >act1 &&
> +		test_cmp expected act1 &&
> +		git ls-tree -r "$2" | sed -e "s/^.*blob [0-9a-fA-F]*[	 ]*//" | sort > act2 &&
> +		test_cmp expected act2 &&
> +		rm expected act1 act2
>  }
>  
>  #########
>  
>  check_diff() {
> -    diffFile="$1"
> -    vOld="$2"
> -    vNew="$3"
> -    rm -rf diffSandbox
> -    git clone -q -n . diffSandbox &&
> -    ( cd diffSandbox &&
> -      git checkout "$vOld" &&
> -      git apply -p0 --index <"../$diffFile" &&
> -      git diff --exit-code "$vNew" ) > check_diff_apply.out 2>&1
> +		diffFile="$1"
> +		vOld="$2"
> +		vNew="$3"
> +		rm -rf diffSandbox
> +		git clone -q -n . diffSandbox &&
> +		( cd diffSandbox &&
> +			git checkout "$vOld" &&
> +			git apply -p0 --index <"../$diffFile" &&
> +			git diff --exit-code "$vNew" ) > check_diff_apply.out 2>&1
>  }
>  
>  #########
> @@ -70,17 +69,17 @@ check_diff() {
>  cvs >/dev/null 2>&1
>  if test $? -ne 1
>  then
> -    skip_all='skipping git-cvsserver tests, cvs not found'
> -    test_done
> +		skip_all='skipping git-cvsserver tests, cvs not found'
> +		test_done
>  fi
>  if ! test_have_prereq PERL
>  then
> -    skip_all='skipping git-cvsserver tests, perl not available'
> -    test_done
> +		skip_all='skipping git-cvsserver tests, perl not available'
> +		test_done
>  fi
>  "$PERL_PATH" -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
> -    skip_all='skipping git-cvsserver tests, Perl SQLite interface unavailable'
> -    test_done
> +		skip_all='skipping git-cvsserver tests, Perl SQLite interface unavailable'
> +		test_done
>  }
>  
>  unset GIT_DIR GIT_CONFIG
> @@ -94,465 +93,468 @@ export CVSROOT CVS_SERVER
>  
>  rm -rf "$CVSWORK" "$SERVERDIR"
>  test_expect_success 'setup v1, b1' '
> -    echo "Simple text file" > textfile.c &&
> -    echo "t2" > t2 &&
> -    mkdir adir &&
> -    echo "adir/afile line1" > adir/afile &&
> -    echo "adir/afile line2" >> adir/afile &&
> -    echo "adir/afile line3" >> adir/afile &&
> -    echo "adir/afile line4" >> adir/afile &&
> -    echo "adir/a2file" >> adir/a2file &&
> -    mkdir adir/bdir &&
> -    echo "adir/bdir/bfile line 1" > adir/bdir/bfile &&
> -    echo "adir/bdir/bfile line 2" >> adir/bdir/bfile &&
> -    echo "adir/bdir/b2file" > adir/bdir/b2file &&
> -    git add textfile.c t2 adir &&
> -    git commit -q -m "First Commit (v1)" &&
> -    git tag v1 &&
> -    git branch b1 &&
> -    git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
> -    GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
> -    GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log"
> +		echo "Simple text file" > textfile.c &&
> +		echo "t2" > t2 &&
> +		mkdir adir &&
> +		echo "adir/afile line1" > adir/afile &&
> +		echo "adir/afile line2" >> adir/afile &&
> +		echo "adir/afile line3" >> adir/afile &&
> +		echo "adir/afile line4" >> adir/afile &&
> +		echo "adir/a2file" >> adir/a2file &&
> +		mkdir adir/bdir &&
> +		echo "adir/bdir/bfile line 1" > adir/bdir/bfile &&
> +		echo "adir/bdir/bfile line 2" >> adir/bdir/bfile &&
> +		echo "adir/bdir/b2file" > adir/bdir/b2file &&
> +		git add textfile.c t2 adir &&
> +		git commit -q -m "First Commit (v1)" &&
> +		git tag v1 &&
> +		git branch b1 &&
> +		git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
> +		GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
> +		GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log"
>  '
>  
>  rm -rf cvswork
>  test_expect_success 'cvs co v1' '
> -    cvs -f -Q co -r v1 -d cvswork master >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_tree cvswork
> +		cvs -f -Q co -r v1 -d cvswork master >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_tree cvswork
>  '
>  
>  rm -rf cvswork
>  test_expect_success 'cvs co b1' '
> -    cvs -f co -r b1 -d cvswork master >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_tree cvswork
> +		cvs -f co -r b1 -d cvswork master >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_tree cvswork
>  '
>  
>  test_expect_success 'cvs co b1 [cvswork3]' '
> -    cvs -f co -r b1 -d cvswork3 master >cvs.log 2>&1 &&
> -    check_start_tree cvswork3 &&
> -    check_file cvswork3 textfile.c v1 &&
> -    check_file cvswork3 t2 v1 &&
> -    check_file cvswork3 adir/afile v1 &&
> -    check_file cvswork3 adir/a2file v1 &&
> -    check_file cvswork3 adir/bdir/bfile v1 &&
> -    check_file cvswork3 adir/bdir/b2file v1 &&
> -    check_end_full_tree cvswork3 v1
> +		cvs -f co -r b1 -d cvswork3 master >cvs.log 2>&1 &&
> +		check_start_tree cvswork3 &&
> +		check_file cvswork3 textfile.c v1 &&
> +		check_file cvswork3 t2 v1 &&
> +		check_file cvswork3 adir/afile v1 &&
> +		check_file cvswork3 adir/a2file v1 &&
> +		check_file cvswork3 adir/bdir/bfile v1 &&
> +		check_file cvswork3 adir/bdir/b2file v1 &&
> +		check_end_full_tree cvswork3 v1
>  '
>  
>  test_expect_success 'edit cvswork3 and save diff' '
> -    ( cd cvswork3 &&
> -      sed -i -e "s/line1/line1 - data/" adir/afile &&
> -      echo "afile5" > adir/afile5 &&
> -      rm t2 &&
> -      cvs -f add adir/afile5 &&
> -      cvs -f rm t2 &&
> -      test_must_fail cvs -f diff -N -u >"$WORKDIR/cvswork3edit.diff"
> -    )
> +		( cd cvswork3 &&
> +			sed -e "s/line1/line1 - data/" adir/afile >adir/afileNEW &&
> +			mv -f adir/afileNEW adir/afile &&
> +			echo "afile5" > adir/afile5 &&
> +			rm t2 &&
> +			cvs -f add adir/afile5 &&
> +			cvs -f rm t2 &&
> +			test_must_fail cvs -f diff -N -u >"$WORKDIR/cvswork3edit.diff"
> +		)
>  '
>  
>  test_expect_success 'setup v1.2 on b1' '
> -    git checkout b1 &&
> -    echo "new v1.2" > t3 &&
> -    rm t2 &&
> -    sed -i -e "s/line3/line3 - more data/" adir/afile &&
> -    rm adir/a2file &&
> -    echo "a3file" >> adir/a3file &&
> -    echo "bfile line 3" >> adir/bdir/bfile &&
> -    rm adir/bdir/b2file &&
> -    echo "b3file" > adir/bdir/b3file &&
> -    mkdir cdir &&
> -    echo "cdir/cfile" > cdir/cfile &&
> -    git add -A cdir adir t3 t2 &&
> -    git commit -q -m 'v1.2' &&
> -    git tag v1.2 &&
> -    git push --tags gitcvs.git b1:b1
> +		git checkout b1 &&
> +		echo "new v1.2" > t3 &&
> +		rm t2 &&
> +		sed -e "s/line3/line3 - more data/" adir/afile >adir/afileNEW &&
> +		mv -f adir/afileNEW adir/afile &&
> +		rm adir/a2file &&
> +		echo "a3file" >> adir/a3file &&
> +		echo "bfile line 3" >> adir/bdir/bfile &&
> +		rm adir/bdir/b2file &&
> +		echo "b3file" > adir/bdir/b3file &&
> +		mkdir cdir &&
> +		echo "cdir/cfile" > cdir/cfile &&
> +		git add -A cdir adir t3 t2 &&
> +		git commit -q -m 'v1.2' &&
> +		git tag v1.2 &&
> +		git push --tags gitcvs.git b1:b1
>  '
>  
>  test_expect_success 'cvs -f up (on b1 adir)' '
> -    ( cd cvswork/adir &&
> -      cvs -f up -d ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1.2 &&
> -    check_file cvswork adir/a3file v1.2 &&
> -    check_file cvswork adir/bdir/bfile v1.2 &&
> -    check_file cvswork adir/bdir/b3file v1.2 &&
> -    check_end_tree cvswork
> +		( cd cvswork/adir &&
> +			cvs -f up -d ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1.2 &&
> +		check_file cvswork adir/a3file v1.2 &&
> +		check_file cvswork adir/bdir/bfile v1.2 &&
> +		check_file cvswork adir/bdir/b3file v1.2 &&
> +		check_end_tree cvswork
>  '
>  
>  test_expect_success 'cvs up (on b1 /)' '
> -    ( cd cvswork &&
> -      cvs -f up -d ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1.2 &&
> -    check_file cvswork t3 v1.2 &&
> -    check_file cvswork adir/afile v1.2 &&
> -    check_file cvswork adir/a3file v1.2 &&
> -    check_file cvswork adir/bdir/bfile v1.2 &&
> -    check_file cvswork adir/bdir/b3file v1.2 &&
> -    check_file cvswork cdir/cfile v1.2 &&
> -    check_end_tree cvswork
> +		( cd cvswork &&
> +			cvs -f up -d ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1.2 &&
> +		check_file cvswork t3 v1.2 &&
> +		check_file cvswork adir/afile v1.2 &&
> +		check_file cvswork adir/a3file v1.2 &&
> +		check_file cvswork adir/bdir/bfile v1.2 &&
> +		check_file cvswork adir/bdir/b3file v1.2 &&
> +		check_file cvswork cdir/cfile v1.2 &&
> +		check_end_tree cvswork
>  '
>  
>  # Make sure "CVS/Tag" files didn't get messed up:
>  test_expect_success 'cvs up (on b1 /) (again; check CVS/Tag files)' '
> -    ( cd cvswork &&
> -      cvs -f up -d ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1.2 &&
> -    check_file cvswork t3 v1.2 &&
> -    check_file cvswork adir/afile v1.2 &&
> -    check_file cvswork adir/a3file v1.2 &&
> -    check_file cvswork adir/bdir/bfile v1.2 &&
> -    check_file cvswork adir/bdir/b3file v1.2 &&
> -    check_file cvswork cdir/cfile v1.2 &&
> -    check_end_tree cvswork
> +		( cd cvswork &&
> +			cvs -f up -d ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1.2 &&
> +		check_file cvswork t3 v1.2 &&
> +		check_file cvswork adir/afile v1.2 &&
> +		check_file cvswork adir/a3file v1.2 &&
> +		check_file cvswork adir/bdir/bfile v1.2 &&
> +		check_file cvswork adir/bdir/b3file v1.2 &&
> +		check_file cvswork cdir/cfile v1.2 &&
> +		check_end_tree cvswork
>  '
>  
>  # update to another version:
>  test_expect_success 'cvs up -r v1' '
> -    ( cd cvswork &&
> -      cvs -f up -r v1 ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_tree cvswork
> +		( cd cvswork &&
> +			cvs -f up -r v1 ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_tree cvswork
>  '
>  
>  test_expect_success 'cvs up' '
> -    ( cd cvswork &&
> -      cvs -f up ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_tree cvswork
> +		( cd cvswork &&
> +			cvs -f up ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_tree cvswork
>  '
>  
>  test_expect_success 'cvs up (again; check CVS/Tag files)' '
> -    ( cd cvswork &&
> -      cvs -f up -d ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_tree cvswork
> +		( cd cvswork &&
> +			cvs -f up -d ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_tree cvswork
>  '
>  
>  test_expect_success 'setup simple b2' '
> -    git branch b2 v1 &&
> -    git push --tags gitcvs.git b2:b2
> +		git branch b2 v1 &&
> +		git push --tags gitcvs.git b2:b2
>  '
>  
>  test_expect_success 'cvs co b2 [into cvswork2]' '
> -    cvs -f co -r b2 -d cvswork2 master >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_tree cvswork
> +		cvs -f co -r b2 -d cvswork2 master >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_tree cvswork
>  '
>  
>  test_expect_success 'root dir edit [cvswork2]' '
> -    ( cd cvswork2 &&
> -      echo "Line 2" >> textfile.c &&
> -      test_must_fail cvs -f diff -u >"$WORKDIR/cvsEdit1.diff" &&
> -      cvs -f commit -m "edit textfile.c" textfile.c
> -    ) >cvsEdit1.log 2>&1
> +		( cd cvswork2 &&
> +			echo "Line 2" >> textfile.c &&
> +			test_must_fail cvs -f diff -u >"$WORKDIR/cvsEdit1.diff" &&
> +			cvs -f commit -m "edit textfile.c" textfile.c
> +		) >cvsEdit1.log 2>&1
>  '
>  
>  test_expect_success 'root dir rm file [cvswork2]' '
> -    ( cd cvswork2 &&
> -      cvs -f rm -f t2 &&
> -      cvs -f diff -u > ../cvsEdit2-empty.diff &&
> -      test_must_fail cvs -f diff -N -u >"$WORKDIR/cvsEdit2-N.diff" &&
> -      cvs -f commit -m "rm t2"
> -    ) > cvsEdit2.log 2>&1
> +		( cd cvswork2 &&
> +			cvs -f rm -f t2 &&
> +			cvs -f diff -u > ../cvsEdit2-empty.diff &&
> +			test_must_fail cvs -f diff -N -u >"$WORKDIR/cvsEdit2-N.diff" &&
> +			cvs -f commit -m "rm t2"
> +		) > cvsEdit2.log 2>&1
>  '
>  
>  test_expect_success 'subdir edit/add/rm files [cvswork2' '
> -    ( cd cvswork2 &&
> -      sed -i -e "s/line 1/line 1 (v2)/" adir/bdir/bfile &&
> -      rm adir/bdir/b2file &&
> -      cd adir &&
> -      cvs -f rm bdir/b2file &&
> -      echo "4th file" > bdir/b4file &&
> -      cvs -f add bdir/b4file &&
> -      test_must_fail cvs -f diff -N -u >"$WORKDIR/cvsEdit3.diff" &&
> -      git fetch gitcvs.git b2:b2 &&
> -      ( cd .. &&
> +		( cd cvswork2 &&
> +			sed -e "s/line 1/line 1 (v2)/" adir/bdir/bfile >adir/bdir/bfileNEW &&
> +			mv -f adir/bdir/bfileNEW adir/bdir/bfile &&
> +			rm adir/bdir/b2file &&
> +			cd adir &&
> +			cvs -f rm bdir/b2file &&
> +			echo "4th file" > bdir/b4file &&
> +			cvs -f add bdir/b4file &&
> +			test_must_fail cvs -f diff -N -u >"$WORKDIR/cvsEdit3.diff" &&
> +			git fetch gitcvs.git b2:b2 &&
> +			( cd .. &&
>  	test_must_fail cvs -f diff -u -N -r v1.2 >"$WORKDIR/cvsEdit3-v1.2.diff" &&
>  	test_must_fail cvs -f diff -u -N -r v1.2 -r v1 >"$WORKDIR/cvsEdit3-v1.2-v1.diff"
> -      ) &&
> -      cvs -f commit -m "various add/rm/edit"
> -    ) >cvs.log 2>&1
> +			) &&
> +			cvs -f commit -m "various add/rm/edit"
> +		) >cvs.log 2>&1
>  '
>  
>  test_expect_success 'validate result of edits [cvswork2]' '
> -    git fetch gitcvs.git b2:b2 &&
> -    git tag v2 b2 &&
> -    git push --tags gitcvs.git b2:b2 &&
> -    check_start_tree cvswork2 &&
> -    check_file cvswork2 textfile.c v2 &&
> -    check_file cvswork2 adir/afile v2 &&
> -    check_file cvswork2 adir/a2file v2 &&
> -    check_file cvswork2 adir/bdir/bfile v2 &&
> -    check_file cvswork2 adir/bdir/b4file v2 &&
> -    check_end_full_tree cvswork2 v2
> +		git fetch gitcvs.git b2:b2 &&
> +		git tag v2 b2 &&
> +		git push --tags gitcvs.git b2:b2 &&
> +		check_start_tree cvswork2 &&
> +		check_file cvswork2 textfile.c v2 &&
> +		check_file cvswork2 adir/afile v2 &&
> +		check_file cvswork2 adir/a2file v2 &&
> +		check_file cvswork2 adir/bdir/bfile v2 &&
> +		check_file cvswork2 adir/bdir/b4file v2 &&
> +		check_end_full_tree cvswork2 v2
>  '
>  
>  test_expect_success 'validate basic diffs saved during above cvswork2 edits' '
> -    test $(grep Index: cvsEdit1.diff | wc -l) = 1 &&
> -    test ! -s cvsEdit2-empty.diff &&
> -    test $(grep Index: cvsEdit2-N.diff | wc -l) = 1 &&
> -    test $(grep Index: cvsEdit3.diff | wc -l) = 3 &&
> -    rm -rf diffSandbox &&
> -    git clone -q -n . diffSandbox &&
> -    ( cd diffSandbox &&
> -      git checkout v1 &&
> -      git apply -p0 --index <"$WORKDIR/cvsEdit1.diff" &&
> -      git apply -p0 --index <"$WORKDIR/cvsEdit2-N.diff" &&
> -      git apply -p0 --directory=adir --index <"$WORKDIR/cvsEdit3.diff" &&
> -      git diff --exit-code v2 ) >"check_diff_apply.out" 2>&1
> +		test $(grep Index: cvsEdit1.diff | wc -l) = 1 &&
> +		test ! -s cvsEdit2-empty.diff &&
> +		test $(grep Index: cvsEdit2-N.diff | wc -l) = 1 &&
> +		test $(grep Index: cvsEdit3.diff | wc -l) = 3 &&
> +		rm -rf diffSandbox &&
> +		git clone -q -n . diffSandbox &&
> +		( cd diffSandbox &&
> +			git checkout v1 &&
> +			git apply -p0 --index <"$WORKDIR/cvsEdit1.diff" &&
> +			git apply -p0 --index <"$WORKDIR/cvsEdit2-N.diff" &&
> +			git apply -p0 --directory=adir --index <"$WORKDIR/cvsEdit3.diff" &&
> +			git diff --exit-code v2 ) >"check_diff_apply.out" 2>&1
>  '
>  
>  test_expect_success 'validate v1.2 diff saved during last cvswork2 edit' '
> -    test $(grep Index: cvsEdit3-v1.2.diff | wc -l) = 9 &&
> -    check_diff cvsEdit3-v1.2.diff v1.2 v2
> +		test $(grep Index: cvsEdit3-v1.2.diff | wc -l) = 9 &&
> +		check_diff cvsEdit3-v1.2.diff v1.2 v2
>  '
>  
>  test_expect_success 'validate v1.2 v1 diff saved during last cvswork2 edit' '
> -    test $(grep Index: cvsEdit3-v1.2-v1.diff | wc -l) = 9 &&
> -    check_diff cvsEdit3-v1.2-v1.diff v1.2 v1
> +		test $(grep Index: cvsEdit3-v1.2-v1.diff | wc -l) = 9 &&
> +		check_diff cvsEdit3-v1.2-v1.diff v1.2 v1
>  '
>  
>  test_expect_success 'cvs up [cvswork2]' '
> -    ( cd cvswork2 &&
> -      cvs -f up ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork2 &&
> -    check_file cvswork2 textfile.c v2 &&
> -    check_file cvswork2 adir/afile v2 &&
> -    check_file cvswork2 adir/a2file v2 &&
> -    check_file cvswork2 adir/bdir/bfile v2 &&
> -    check_file cvswork2 adir/bdir/b4file v2 &&
> -    check_end_full_tree cvswork2 v2
> +		( cd cvswork2 &&
> +			cvs -f up ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork2 &&
> +		check_file cvswork2 textfile.c v2 &&
> +		check_file cvswork2 adir/afile v2 &&
> +		check_file cvswork2 adir/a2file v2 &&
> +		check_file cvswork2 adir/bdir/bfile v2 &&
> +		check_file cvswork2 adir/bdir/b4file v2 &&
> +		check_end_full_tree cvswork2 v2
>  '
>  
>  test_expect_success 'cvs up -r b2 [back to cvswork]' '
> -    ( cd cvswork &&
> -      cvs -f up -r b2 ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v2 &&
> -    check_file cvswork adir/afile v2 &&
> -    check_file cvswork adir/a2file v2 &&
> -    check_file cvswork adir/bdir/bfile v2 &&
> -    check_file cvswork adir/bdir/b4file v2 &&
> -    check_end_full_tree cvswork v2
> +		( cd cvswork &&
> +			cvs -f up -r b2 ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v2 &&
> +		check_file cvswork adir/afile v2 &&
> +		check_file cvswork adir/a2file v2 &&
> +		check_file cvswork adir/bdir/bfile v2 &&
> +		check_file cvswork adir/bdir/b4file v2 &&
> +		check_end_full_tree cvswork v2
>  '
>  
>  test_expect_success 'cvs up -r b1' '
> -    ( cd cvswork &&
> -      cvs -f up -r b1 ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1.2 &&
> -    check_file cvswork t3 v1.2 &&
> -    check_file cvswork adir/afile v1.2 &&
> -    check_file cvswork adir/a3file v1.2 &&
> -    check_file cvswork adir/bdir/bfile v1.2 &&
> -    check_file cvswork adir/bdir/b3file v1.2 &&
> -    check_file cvswork cdir/cfile v1.2 &&
> -    check_end_full_tree cvswork v1.2
> +		( cd cvswork &&
> +			cvs -f up -r b1 ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1.2 &&
> +		check_file cvswork t3 v1.2 &&
> +		check_file cvswork adir/afile v1.2 &&
> +		check_file cvswork adir/a3file v1.2 &&
> +		check_file cvswork adir/bdir/bfile v1.2 &&
> +		check_file cvswork adir/bdir/b3file v1.2 &&
> +		check_file cvswork cdir/cfile v1.2 &&
> +		check_end_full_tree cvswork v1.2
>  '
>  
>  test_expect_success 'cvs up -A' '
> -    ( cd cvswork &&
> -      cvs -f up -A ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_full_tree cvswork v1
> +		( cd cvswork &&
> +			cvs -f up -A ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_full_tree cvswork v1
>  '
>  
>  test_expect_success 'cvs up (check CVS/Tag files)' '
> -    ( cd cvswork &&
> -      cvs -f up ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_full_tree cvswork v1
> +		( cd cvswork &&
> +			cvs -f up ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_full_tree cvswork v1
>  '
>  
>  # This is not really legal CVS, but it seems to work anyway:
>  test_expect_success 'cvs up -r heads/b1' '
> -    ( cd cvswork &&
> -      cvs -f up -r heads/b1 ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1.2 &&
> -    check_file cvswork t3 v1.2 &&
> -    check_file cvswork adir/afile v1.2 &&
> -    check_file cvswork adir/a3file v1.2 &&
> -    check_file cvswork adir/bdir/bfile v1.2 &&
> -    check_file cvswork adir/bdir/b3file v1.2 &&
> -    check_file cvswork cdir/cfile v1.2 &&
> -    check_end_full_tree cvswork v1.2
> +		( cd cvswork &&
> +			cvs -f up -r heads/b1 ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1.2 &&
> +		check_file cvswork t3 v1.2 &&
> +		check_file cvswork adir/afile v1.2 &&
> +		check_file cvswork adir/a3file v1.2 &&
> +		check_file cvswork adir/bdir/bfile v1.2 &&
> +		check_file cvswork adir/bdir/b3file v1.2 &&
> +		check_file cvswork cdir/cfile v1.2 &&
> +		check_end_full_tree cvswork v1.2
>  '
>  
>  # But this should work even if CVS client checks -r more carefully:
>  test_expect_success 'cvs up -r heads_-s-b2 (cvsserver escape mechanism)' '
> -    ( cd cvswork &&
> -      cvs -f up -r heads_-s-b2 ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v2 &&
> -    check_file cvswork adir/afile v2 &&
> -    check_file cvswork adir/a2file v2 &&
> -    check_file cvswork adir/bdir/bfile v2 &&
> -    check_file cvswork adir/bdir/b4file v2 &&
> -    check_end_full_tree cvswork v2
> +		( cd cvswork &&
> +			cvs -f up -r heads_-s-b2 ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v2 &&
> +		check_file cvswork adir/afile v2 &&
> +		check_file cvswork adir/a2file v2 &&
> +		check_file cvswork adir/bdir/bfile v2 &&
> +		check_file cvswork adir/bdir/b4file v2 &&
> +		check_end_full_tree cvswork v2
>  '
>  
>  v1hash=$(git rev-parse v1)
>  test_expect_success 'cvs up -r $(git rev-parse v1)' '
> -    test -n "$v1hash" &&
> -    ( cd cvswork &&
> -      cvs -f up -r "$v1hash" ) >cvs.log 2>&1 &&
> -    check_start_tree cvswork &&
> -    check_file cvswork textfile.c v1 &&
> -    check_file cvswork t2 v1 &&
> -    check_file cvswork adir/afile v1 &&
> -    check_file cvswork adir/a2file v1 &&
> -    check_file cvswork adir/bdir/bfile v1 &&
> -    check_file cvswork adir/bdir/b2file v1 &&
> -    check_end_full_tree cvswork v1
> +		test -n "$v1hash" &&
> +		( cd cvswork &&
> +			cvs -f up -r "$v1hash" ) >cvs.log 2>&1 &&
> +		check_start_tree cvswork &&
> +		check_file cvswork textfile.c v1 &&
> +		check_file cvswork t2 v1 &&
> +		check_file cvswork adir/afile v1 &&
> +		check_file cvswork adir/a2file v1 &&
> +		check_file cvswork adir/bdir/bfile v1 &&
> +		check_file cvswork adir/bdir/b2file v1 &&
> +		check_end_full_tree cvswork v1
>  '
>  
>  test_expect_success 'cvs diff -r v1 -u' '
> -    ( cd cvswork &&
> -      cvs -f diff -r v1 -u ) >cvsDiff.out 2>cvs.log &&
> -    test ! -s cvsDiff.out &&
> -    test ! -s cvs.log
> +		( cd cvswork &&
> +			cvs -f diff -r v1 -u ) >cvsDiff.out 2>cvs.log &&
> +		test ! -s cvsDiff.out &&
> +		test ! -s cvs.log
>  '
>  
>  test_expect_success 'cvs diff -N -r v2 -u' '
> -    ( cd cvswork &&
> -      test_must_fail cvs -f diff -N -r v2 -u ) >cvsDiff.out 2>cvs.log &&
> -    test ! -s cvs.log &&
> -    test -s cvsDiff.out &&
> -    check_diff cvsDiff.out v2 v1 > check_diff.out 2>&1
> +		( cd cvswork &&
> +			test_must_fail cvs -f diff -N -r v2 -u ) >cvsDiff.out 2>cvs.log &&
> +		test ! -s cvs.log &&
> +		test -s cvsDiff.out &&
> +		check_diff cvsDiff.out v2 v1 > check_diff.out 2>&1
>  '
>  
>  test_expect_success 'cvs diff -N -r v2 -r v1.2' '
> -    ( cd cvswork &&
> -      test_must_fail cvs -f diff -N -r v2 -r v1.2 -u ) >cvsDiff.out 2>cvs.log &&
> -    test ! -s cvs.log &&
> -    test -s cvsDiff.out &&
> -    check_diff cvsDiff.out v2 v1.2 > check_diff.out 2>&1
> +		( cd cvswork &&
> +			test_must_fail cvs -f diff -N -r v2 -r v1.2 -u ) >cvsDiff.out 2>cvs.log &&
> +		test ! -s cvs.log &&
> +		test -s cvsDiff.out &&
> +		check_diff cvsDiff.out v2 v1.2 > check_diff.out 2>&1
>  '
>  
>  test_expect_success 'apply early [cvswork3] diff to b3' '
> -    git clone -q . gitwork3 &&
> -    ( cd gitwork3 &&
> -      git checkout -b b3 v1 &&
> -      git apply -p0 --index <"$WORKDIR/cvswork3edit.diff" &&
> -      git commit -m "cvswork3 edits applied" ) &&
> -    git fetch gitwork3 b3:b3 &&
> -    git tag v3 b3
> +		git clone -q . gitwork3 &&
> +		( cd gitwork3 &&
> +			git checkout -b b3 v1 &&
> +			git apply -p0 --index <"$WORKDIR/cvswork3edit.diff" &&
> +			git commit -m "cvswork3 edits applied" ) &&
> +		git fetch gitwork3 b3:b3 &&
> +		git tag v3 b3
>  '
>  
>  test_expect_success 'check [cvswork3] diff' '
> -    ( cd cvswork3 &&
> -      test_must_fail cvs -f diff -N -u ) >"$WORKDIR/cvsDiff.out" 2>cvs.log &&
> -    test ! -s cvs.log &&
> -    test -s cvsDiff.out &&
> -    test $(grep Index: cvsDiff.out | wc -l) = 3 &&
> -    test_cmp cvsDiff.out cvswork3edit.diff &&
> -    check_diff cvsDiff.out v1 v3 > check_diff.out 2>&1
> +		( cd cvswork3 &&
> +			test_must_fail cvs -f diff -N -u ) >"$WORKDIR/cvsDiff.out" 2>cvs.log &&
> +		test ! -s cvs.log &&
> +		test -s cvsDiff.out &&
> +		test $(grep Index: cvsDiff.out | wc -l) = 3 &&
> +		test_cmp cvsDiff.out cvswork3edit.diff &&
> +		check_diff cvsDiff.out v1 v3 > check_diff.out 2>&1
>  '
>  
>  test_expect_success 'merge early [cvswork3] b3 with b1' '
> -    ( cd gitwork3 &&
> -      git merge "message" HEAD b1 )
> -    git fetch gitwork3 b3:b3 &&
> -    git tag v3merged b3 &&
> -    git push --tags gitcvs.git b3:b3
> +		( cd gitwork3 &&
> +			git merge "message" HEAD b1 )
> +		git fetch gitwork3 b3:b3 &&
> +		git tag v3merged b3 &&
> +		git push --tags gitcvs.git b3:b3
>  '
>  
>  # This test would fail if cvsserver properly created a ".#afile"* file
>  # for the merge.
>  # TODO: Validate that the .# file was saved properly, and then
> -#   delete/ignore it when checking the tree.
> +#		delete/ignore it when checking the tree.
>  test_expect_success 'cvs up dirty [cvswork3]' '
> -    ( cd cvswork3 &&
> -      cvs -f up &&
> -      test_must_fail cvs -f diff -N -u >"$WORKDIR/cvsDiff.out" ) >cvs.log 2>&1 &&
> -    test -s cvsDiff.out &&
> -    test $(grep Index: cvsDiff.out | wc -l) = 2
> -    check_start_tree cvswork3 &&
> -    check_file cvswork3 textfile.c v3merged &&
> -    check_file cvswork3 t3 v3merged &&
> -    check_file cvswork3 adir/afile v3merged &&
> -    check_file cvswork3 adir/a3file v3merged &&
> -    check_file cvswork3 adir/afile5 v3merged &&
> -    check_file cvswork3 adir/bdir/bfile v3merged &&
> -    check_file cvswork3 adir/bdir/b3file v3merged &&
> -    check_file cvswork3 cdir/cfile v3merged &&
> -    check_end_full_tree cvswork3 v3merged
> +		( cd cvswork3 &&
> +			cvs -f up &&
> +			test_must_fail cvs -f diff -N -u >"$WORKDIR/cvsDiff.out" ) >cvs.log 2>&1 &&
> +		test -s cvsDiff.out &&
> +		test $(grep Index: cvsDiff.out | wc -l) = 2
> +		check_start_tree cvswork3 &&
> +		check_file cvswork3 textfile.c v3merged &&
> +		check_file cvswork3 t3 v3merged &&
> +		check_file cvswork3 adir/afile v3merged &&
> +		check_file cvswork3 adir/a3file v3merged &&
> +		check_file cvswork3 adir/afile5 v3merged &&
> +		check_file cvswork3 adir/bdir/bfile v3merged &&
> +		check_file cvswork3 adir/bdir/b3file v3merged &&
> +		check_file cvswork3 cdir/cfile v3merged &&
> +		check_end_full_tree cvswork3 v3merged
>  '
>  
>  # TODO: test cvs status
>  
>  test_expect_success 'cvs commit [cvswork3' '
> -    ( cd cvswork3 &&
> -      cvs -f commit -m "dirty sandbox after auto-merge"
> -    ) > cvs.log 2>&1 &&
> -    check_start_tree cvswork3 &&
> -    check_file cvswork3 textfile.c v3merged &&
> -    check_file cvswork3 t3 v3merged &&
> -    check_file cvswork3 adir/afile v3merged &&
> -    check_file cvswork3 adir/a3file v3merged &&
> -    check_file cvswork3 adir/afile5 v3merged &&
> -    check_file cvswork3 adir/bdir/bfile v3merged &&
> -    check_file cvswork3 adir/bdir/b3file v3merged &&
> -    check_file cvswork3 cdir/cfile v3merged &&
> -    check_end_full_tree cvswork3 v3merged &&
> -    git fetch gitcvs.git b3:b4 &&
> -    git tag v4.1 b4 &&
> -    git diff --exit-code v4.1 v3merged > check_diff_apply.out 2>&1
> +		( cd cvswork3 &&
> +			cvs -f commit -m "dirty sandbox after auto-merge"
> +		) > cvs.log 2>&1 &&
> +		check_start_tree cvswork3 &&
> +		check_file cvswork3 textfile.c v3merged &&
> +		check_file cvswork3 t3 v3merged &&
> +		check_file cvswork3 adir/afile v3merged &&
> +		check_file cvswork3 adir/a3file v3merged &&
> +		check_file cvswork3 adir/afile5 v3merged &&
> +		check_file cvswork3 adir/bdir/bfile v3merged &&
> +		check_file cvswork3 adir/bdir/b3file v3merged &&
> +		check_file cvswork3 cdir/cfile v3merged &&
> +		check_end_full_tree cvswork3 v3merged &&
> +		git fetch gitcvs.git b3:b4 &&
> +		git tag v4.1 b4 &&
> +		git diff --exit-code v4.1 v3merged > check_diff_apply.out 2>&1
>  '
>  
>  test_done
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]