svn - 合并时忽略文件/文件夹

标签 svn merge

我目前正在使用 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/

相关文章:

r - 如何在 R 中使用每一侧多个变量进行模糊连接

svn - 获取 SVN 中作者的电子邮件地址

python - 如何在 Python 中合并 200 个 csv 文件

java - 当解决与 git 的 merge 冲突时,可解决的差异是否会自动 merge ?

sql - 如何在 MERGE INTO 语句中使用 JOIN?

arrays - 简单 k 数组合并的复杂性

svn - Maven SVN 结帐示例

git - 我如何向非程序员解释源代码控制(特别是 Mercurial/Tortoise)?

svn - 持续集成和自动版本标记的工作流 : . NET 项目 + CC.NET + SVN + MSBuild

svn - 颠覆标签和分支