Можно ли оптимизировать SVN mv для копирования + удаления SVN? - PullRequest
0 голосов
/ 18 ноября 2011

У меня есть десятки тысяч изображений в определенном каталоге. У меня есть определенные файлы из этого каталога, которые я хочу переместить в подкаталог: >find . -type f -name '*.png'| \ grep -Ev "(_retina|_hd|_iphone)"

В результате получаются тысячи (а не десятки тысяч) изображений, чего я и хочу. Я хочу переместить эти изображения из ./ в ./tmp/.

В этом посте спрашивается, как перемещать эти изображения в 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 "<em>.png"| \ grep -Ev "(_retina|_hd|_iphone)"| \ xargs -I CMD svn cp "CMD" "tmp/CMD" >find . -type f -name "</em>.png"| \ grep -Ev "(_retina|_hd|_iphone)"| \ xargs -I CMD svn rm "CMD"

Я сначала svn cp все нужные изображения, которые, кажется, пролетают очень быстро. Затем я запускаю svn rm, чтобы удалить исходные изображения, что также происходит очень быстро. Тогда я совершаю.

Есть ли существенное преимущество в использовании svn mv при выполнении массовых перемещений, подобных этому, по сравнению с использованием двойного svn cp затем svn rm?

1 Ответ

2 голосов
/ 18 ноября 2011

Нет, они должны быть точно такими же.Согласно руководству SVN :

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

Я удивлен тем, что копирование + удаление происходит быстрее, но если это так, продолжайте.

...