我们有一个包含多个文件(没有文件夹)的存储库。每个构建时间我们必须从另一个源(db)下载相同的文件夹,然后提交到SVN更改 - 更新现有,删除不存在并添加新文件。
所以想法是在每次构建时在SVN中“复制”db脚本(这就是使用 MSBuild 的原因)
问题是我不知道 hg 的 addremove 的模拟 - 它会自动同步两个文件夹。
有谁知道如何模拟 addremove ?
答案 0 :(得分:9)
我个人有一个小的bash脚本来做这件事(在linux上):
svn status | grep "^\?" | gawk '{print $2}' | xargs -r svn add
svn status | grep "^\!" | gawk '{print $2}' | xargs -r svn remove
编辑:感谢cesar,这是一个更简单的版本:
svn status | gawk '/^\?.*/ {print $2}' | xargs -r svn add
svn status | gawk '/^\!.*/ {print $2}' | xargs -r svn remove
答案 1 :(得分:1)
对于这类事情,我只使用mercurial,并使用以下命令检入和退出svn: https://www.mercurial-scm.org/wiki/HgSubversion ......可能不是你想要的。
答案 2 :(得分:0)
为此,我一直使用svn附带的svn_load_dirs.pl
脚本。
答案 3 :(得分:0)
(改进@ Eric-Karl的回答)
适用于:
svn status | perl -ne 'print "$1\0" if /^\?\s+([^\r\n]+)/' | xargs -0 -r -I FILE svn add 'FILE@'
svn status | perl -ne 'print "$1\0" if /^\!\s+([^\r\n]+)/' | xargs -0 -r -I FILE svn remove 'FILE@'