Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
仅将SVN修改的文件复制到另一个目录_Svn_Unix_Version Control_Ack - Fatal编程技术网

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

仅将SVN修改的文件复制到另一个目录,svn,unix,version-control,ack,Svn,Unix,Version Control,Ack,我的当前工作副本中有一个已在本地修改的文件列表。大约有50个文件已被更改 通过执行以下操作,我可以获得这些文件的列表: svn st | ack '^M' 是否有一种方法可以将这些文件和仅这些文件复制到另一个名为backup的目录中?这样做(bash): 假设ack像grep。。。你可以这样做: cp `svn st | ack '^M' | cut -b 8-` backup cp`svn st | ack'^M'|切割-b 8-`备份 我会将此作为评论发布。。。但是我不知道如何避免注释中的

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

通过执行以下操作,我可以获得这些文件的列表:

svn st | ack '^M'
是否有一种方法可以将这些文件和仅这些文件复制到另一个名为
backup
的目录中?

这样做(bash):


假设ack像grep。。。你可以这样做:

cp `svn st | ack '^M' | cut -b 8-` backup cp`svn st | ack'^M'|切割-b 8-`备份
我会将此作为评论发布。。。但是我不知道如何避免注释中的反勾号…

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

svn status | grep '^[ADMR]' | cut -b 8- | xargs -I '{}' rsync -R  {} /directry/
(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/

请编辑您的帖子,以显示svn管道生成的输出的小样本。那我们就可以很容易地帮上忙了。很有可能你可以把它当作一条直线。祝你好运。我在运行代码时遇到了这个错误。抱歉,我不熟悉bash脚本
copy_modified_files.sh:第5行:查找匹配项时出现意外的EOF)
@crmpicco-在“”之前缺少括号;是否可以这样做并维护文件所在的目录?例如,如果修改后的文件位于
/images
中,那么在将文件复制到
/backup
目录时,我是否可以创建/复制
/images
文件夹?由于某种原因,在mac上上述命令不起作用。我使用了以下svn状态| grep'^[ADMR]'| cut-b8-| xargs-I'{}cp{}/directory/@forsvarir:backticks(至少在bash中)可以由$()-构造(顺便说一句,它允许嵌套表达式)交换。我解决了“维护目录”的问题:
for I in$(svn st|grep^[MA]| cut-b8-);do x=“b/$(dirname$i)”;mkdir-p$x;cp“$i”“$x”;完成
。希望这能有所帮助。我使用@JoergReinhardt的很棒的bash脚本在备份中包括未计划的文件/目录,并避免嵌套目录的问题,我修改了脚本:
for I in$(svn st|grep^[MA?]| cut-b8-);do x=“../\u svnexport/$(dirname$i)”;mkdir-p$x;cp-ir“$i”“$x”;完成
。svn st| grep^[MA?]| cut-b 8-:获取修改、添加和未计划的文件/目录路径。mkdir-p:如果不可用,则创建父目录。cp-ir“$i”:递归复制文件/目录,并询问如果文件/目录存在该怎么办。我刚刚尝试过这个方法,但它不维护文件所在的目录。因此,如果您有一个/inc/picco.txt,那么它不会创建
inc/
。rsync-R应该保留目录结构。我已经更新了脚本。请让我知道这是否对你有效。尝试运行此程序,但它有一些目录错误
svn status | grep ^M | awk '{print $2}' | xargs -I '{}' cp --parents {} /backup/