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

时间:2012-05-25 13:04:57

标签: file svn unix cut ack

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

我使用以下命令将已在subversion中修改过的文件复制到名为/ backup的文件夹中。有没有办法做到这一点,但维护他们所在的目录?所以它会做类似于导出文件的SVN差异。例如,如果我更改了一个名为/usr/lib/SPL/RFC.php的文件,那么它也会将usr/lib/SPL目录复制到备份中。

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

2 个答案:

答案 0 :(得分:6)

看起来很奇怪,但使用tar复制文件非常容易。 E.g。

tar -cf - $( svn st | ack '^M' | cut -b 8- ) |
tar -C /backup -xf -

答案 1 :(得分:1)

为什么不创建更改补丁?这样,您就有一个文件包含您可以在名称中添加时间戳的所有更改 - 类似2012-05-28-17-30-00-UnitTestChanges.patch,每天一个。

然后,您可以在准备好后将更改汇总到新的结帐,然后提交。

仅供参考:Subversion 1.8应该有checkpointing / shelving(您似乎想要这样做),但这还有很长的路要走,而且可能只会在Subversion 1.9中添加