将SVN修改后的文件仅复制到另一个目录

时间:2012-05-03 14:13:30

标签: svn unix version-control ack

我的当前工作副本中的文件列表已在本地修改。大约有50个文件已被更改。

我可以通过这样做获得这些文件的列表:

svn st | ack '^M'

有没有办法可以将这些文件和这些文件复制到另一个名为backup的目录?

5 个答案:

答案 0 :(得分:4)

假设ack就像grep ......你可以做类似的事情:

cp `svn st | ack '^M' | cut -b 8-` backup

我发布此评论作为评论...但我不知道如何在评论中逃避反对...

答案 1 :(得分:2)

svn status | grep '^[ADMR]' | cut -b 8- | xargs -I '{}' rsync -R  {} /directry/

答案 2 :(得分:1)

这样做(bash):

#!/bin/bash
set -eu

# for each modified file
for f in $(svn st| awk '/^M/{print $2}'); do
    # create a directory under backup root and copy the file there
    mkdir -p .../backup/${f%/*} && cp -a $f .../backup/$f
done

答案 3 :(得分:1)

在Windows 8中,可以在当前的svn目录中使用此命令:

(FOR /F "tokens=2 delims== " %i IN ('svn st ^| findstr "^[ADMR]"') DO @echo %i & echo f| xcopy /f /y %i c:\projects\backup\%i)

答案 4 :(得分:0)

这对我有用:

svn status | grep ^M | awk '{print $2}' | xargs -I '{}' cp --parents {} /backup/