2011-11-17 43 views
0

我在一个特定的目录中有数以万计的图像。我从这个目录中挑选特定的文件,我想要移动到一个子目录中: 可以SVN mv优化svn复制+删除?

 
>find . -type f -name '*.png'| \ 
grep -Ev "(_retina|_hd|_iphone)" 

这会导致数千(而不是数万)的图像,这正是我想要的。我想将这些图像从./移到./tmp/

This后期问如何在SVN中集体移动这些图片,虽然它仍在使用svn mv。这一个接一个地移动图像,而且是非常缓慢:

 
>find . -type f -name "*.png"| \ 
grep -Ev "(_retina|_hd|_iphone)"| \ 
xargs -I CMD svn mv "CMD" "tmp/CMD" 

由于SVN保留文件修订历史记录与svn cp,这似乎是更快:

 
>find . -type f -name ".png"| \ grep -Ev "(_retina|_hd|_iphone)"| \ xargs -I CMD svn cp "CMD" "tmp/CMD" >find . -type f -name ".png"| \ 
grep -Ev "(_retina|_hd|_iphone)"| \ 
xargs -I CMD svn rm "CMD" 

我第一次svn cp全部所需图像,这似乎很快飞过。然后我运行svn rm删除原始图像,这也非常快。然后我承诺。

使用svn mv进行批量移动时有没有什么主要优势,比如使用双重svn cp,然后svn rm

回答

2

不,他们应该完全一样。按照SVN manual

This [mv] command is equivalent to an svn copy followed by svn delete 

我很惊讶的是,复制+删除速度较快,但如果是这样,去了。