我的当前工作副本中有一个已在本地修改的文件列表。大约有 50 个文件已更改。
我可以通过这样做获得这些文件的列表:
svn st | ack '^M'
有没有办法可以将这些文件复制到另一个目录中,并且仅将这些文件复制到另一个目录,该目录称为backup
?
我的当前工作副本中有一个已在本地修改的文件列表。大约有 50 个文件已更改。
我可以通过这样做获得这些文件的列表:
svn st | ack '^M'
有没有办法可以将这些文件复制到另一个目录中,并且仅将这些文件复制到另一个目录,该目录称为backup
?
假设 ack 就像 grep ......你可以这样做:
cp`svn st | 确认'^M' | cut -b 8-` 备份
我会把它作为评论发布......但我不知道如何逃避评论中的反引号......
svn status | grep '^[ADMR]' | cut -b 8- | xargs -I '{}' rsync -R {} /directry/
这会做(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
在 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)
这对我行得通:
svn status | grep ^M | awk '{print $2}' | xargs -I '{}' cp --parents {} /backup/