#!/bin/bash
TMP=$HOME/tmp
GIT_TMP_BLOBFILE=$TMP/gitblob.dat
GIT_TMP_DUMPFILE=$TMP/gitdump.dat
LOG_FAIL_LIST=$TMP/log_fail_list`date +"%Y_%m_%d_%H_%M"`.txt
CVSROOTFOLDER=/home/lake/hw/CVS-Root
GITROOTFOLDER=/home/lake/hw/git
convertmycvs(){
# echo "$1 in convertmycvs "
echo start convert: $1
echo /home/lake/software/cvs2svn/cvs2git --blobfile $GIT_TMP_BLOBFILE --dumpfile $GIT_TMP_DUMPFILE --encoding cp850 --encoding gbk --encoding gb2312 --encoding utf8 $1
/home/lake/software/cvs2svn/cvs2git --blobfile $GIT_TMP_BLOBFILE --dumpfile $GIT_TMP_DUMPFILE --encoding cp850 --encoding gbk --encoding gb2312 --encoding utf8 $1
if [ $? -eq 0 ]; then
BASE_PRJ_NAME=`basename $1`
DEST_GIT_PRJ_FOLDER=$GITROOTFOLDER/$BASE_PRJ_NAME
mkdir -p $DEST_GIT_PRJ_FOLDER
cd $DEST_GIT_PRJ_FOLDER
git init
echo "cat $GIT_TMP_BLOBFILE and git fast-import"
echo "cat $GIT_TMP_DUMPFILE and git fast-import"
cat $GIT_TMP_BLOBFILE $GIT_TMP_DUMPFILE|git fast-import
if [ $? -eq 0 ]; then
echo $BASE_PRJ_NAME OK|tee -a $LOG_FAIL_LIST
else
echo $BASE_PRJ_NAME FAIL |tee -a $LOG_FAIL_LIST
fi
cd $CVSROOTFOLDER
rm -f $GIT_TMP_BLOBFIL
rm -f $GIT_TMP_DUMPFILE
else
echo $BASE_PRJ_NAME FAIL |tee -a $LOG_FAIL_LIST
return
fi
}
if [ $# -ne 2 ]; then
echo " usage : sh yourfolder , default $CVSROOTFOLDER"
else
if [ -d $1 ]; then
CVSROOTFOLDER=$1
fi
fi
echo CVSROOTFOLDER=$CVSROOTFOLDER
if [ -d $CVSROOTFOLDER ]; then
i=0;
for fileentry in `find $CVSROOTFOLDER -maxdepth 1 -type d ! -name "CVSROOT" ! -name "CVS-Root" -print`
do
if [ -d $fileentry ]; then
i=`expr $i + 1`
echo "$i ####start " $fileentry cvs to git
convertmycvs $fileentry
## read -p "Press any key to continue."
fi
done
else
echo " $CVSROOTFOLDER is not a directory \n"
exit
fi