2014-06-18 37 views
0

我正在将工作副本转换为全部小写字母。我有一个脚本,循环移动一个混合的案例位置到一个全部小写的位置。我正在使用svn move --parent src dst在保留历史记录的同时将混合大小写文件夹移动到全部小写字母

这里是我的整个脚本:

IFS=$'\n' 
cd /path/to/working/copy 

for SRC in `find . -iname '*.*' -depth | grep -v '.svn'` 

do 
     DST=$(echo "$SRC" | tr '[A-Z]' '[a-z]') 


     #get directory 
     OLD_DIRECTORY="${SRC%/*}" 
     NEW_DIRECTORY=$(echo "$OLD_DIRECTORY" | tr '[A-Z]' '[a-z]') 

     if [ "${SRC}" != "${DST}" ] 
     then 
       [ ! -e "${DST}" ] && svn move --parents "${SRC}" "${DST}" || echo "${SRC} was not renamed" 
     fi 
done 

到目前为止,文件历史似乎被保留。但是,文件夹历史不是。

回答

0

这是我最终使用的。这将保留文件的历史记录,但不保存文件夹。

IFS=$'\n' 
cd opensol2 

for SRC in `find . -depth -type f | grep -v '.svn'` 

do 
     NEW_FILE=$(echo "$SRC" | tr '[A-Z]' '[a-z]') 

     if [ "${SRC}" != "${NEW_FILE}" ] 
     then 
       [ ! -e "${NEW_FILE}" ] && svn move --parents "${SRC}" "${NEW_FILE}" || echo "${SRC} was not renamed" 
     fi 
done 
相关问题