我的当前工作副本中有一个已在本地修改的文件列表。大约有 50 个文件已更改。
我正在使用以下命令将已在 subversion 中修改的文件复制到名为 /backup 的文件夹中。有没有办法做到这一点,但维护他们所在的目录?所以它会做一些类似于导出文件的 SVN 差异的事情。例如,如果我更改了一个名为的文件,/usr/lib/SPL/RFC.php
那么它也会将该usr/lib/SPL
目录复制到备份中。
cp `svn st | ack '^M' | cut -b 8-` backup
看起来很奇怪,但是用tar
. 例如
tar -cf - $( svn st | ack '^M' | cut -b 8- ) |
tar -C /backup -xf -
为什么不为您的更改创建一个补丁?这样,您就有了一个包含所有更改的文件,您可以在名称中加上时间戳 - 例如2012-05-28-17-30-00-UnitTestChanges.patch
,每天一个。
然后,您可以在准备好后将更改汇总到新的结帐,然后提交它们。
仅供参考:Subversion 1.8应该有检查点/搁置(这是您似乎想要做的),但这还有很长的路要走,并且可能只会在 Subversion 1.9 中添加。