[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

svn miss to checkout one or more subdirectories and no error message

From: qifa zhao <qifa.zhao_at_gmail.com>
Date: Sat, 31 Dec 2011 17:13:53 +0800

hi folks,

Recently, we encountered a problem when checking out directories
frequently. But I am not sure whether is an issue or not.
Suppose that there is a svn address
https://10.38.90.34/app/tools/tags/ts/ts_stable_101_PD_BL, it's a tag
for https://10.38.90.34/app/tools/ts.
And there are some subdirectories under ts, let's call them ts_a, ts_b, ts_c...

So we can use command 'svn co
https://10.38.90.34/app/tools/tags/ts/ts_stable_101_PD_BL ./ts' to
checkout ts.
But, some times, one or more subdirectories were not checked out successfully.
What's really amazing is that the 'svn co' operation returned 0 and no
error message prompted, like that the subdirectories missing did not
exist.
I write a script to reproduce this problem, it happened about one or
two times in 1000 times.
*OS information:*
[work_at_cm-perf03 test2]$ lsb_release -a
LSB Version: :core-3.0-amd64:core-3.0-noarch:graphics-3.0-amd64:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 3)
Release: 4
Codename: NahantUpdate3
*Svn information:*
[work_at_cm-perf03 test2]$ svn --version
svn, version 1.6.5 (r38866)
   compiled Aug 17 2010, 18:57:09*
Compiler:* (no special options used when compile subversion and
noprivate modifications to subversion)
[work_at_cm-perf03 test2]$ gcc --version
gcc (GCC) 3.4.5 20051201 (Red Hat 3.4.5-2)
Copyright (C) 2004 Free Software Foundation, Inc.

Detail of the test script:
function print()
{
    nowtime=`date +%Y-%m%d-%H:%M --date='today'`
    echo "$nowtime $1" >> run.log
}
function checkout_and_check()
{
    run_fail=0
    if [ -d "./ts" ];then print "rm directory failed!";run_fail=1; fi
    svn --force co
https://10.38.90.34/app/tools/tags/ts/ts_stable_101_PD_BL ./ts
    if [ $? -ne 0 ];then
        print "check out fail!"
        run_fail=1
    fi
    if [ ! -d "./ts/ts_c" ];then
        print "check subdirectory fail!"
        run_fail=1
    fi
    if [ $run_fail -ne 0 ];then
        mv "./ts" "./ts.$1"
    else
        /bin/rm -fr "./ts"
    fi
    sleep 3
    return $run_fail
}
/bin/rm -f run.log
for((i=0;i<1000;i++))
do
    checkout_and_check $i
    if [ $? -ne 0 ];then
        print "Fail at index:$i"
    fi
done
print "well done!"

Thank you,
-Tery
Received on 2011-12-31 20:30:55 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.