我目前正在使用 SVN 对我的软件项目进行版本控制。在一个正在进行的项目中,我有主干,用于客户的共同功能和规范以及分支,用于客户特定的。
有没有办法在每次执行此类操作时标记一些不应合并到分支中的文件/文件夹?
最佳答案
我没有立即看到解决方案,但编写脚本很容易。我给你的是没有经过错误测试。
首先,您将列出要排除的目录。称为 ~/.svn-merge-excludes
#regexes to exclude
./helpfiles/
./deploy_scripts/
./models/customer_integration
然后,您将编写另一个脚本以在将 Turnk 合并到分支中后恢复这些目录。
#/usr/bin/bash
# I am assuming that you made the excludes based on the root directory
# so that relative paths will work
for dir in $(cat ~/.svn-merge-excludes) ; do
svn revert -R $dir
done
那应该工作。这里最重要的是 revert 中的 '-R' 选项以递归方式作用于目录。因此,您的工作流程看起来像。
# cd path/to/branch
# svn merge -r123:245 svn://svnserver.com/svn/trunk
# revert_excludes_from_branch.sh
然后你会处理冲突,然后提交。如果您使用的是 Windows,那么批处理文件也可以使用,您只需连续输入恢复命令即可。
关于svn - 合并时忽略文件/文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2381116/