我目前使用SVN来版本化我的软件项目。在一个正在进行的项目中,我为客户的常用功能和规格以及分支机构提供了客户端专用的主干。忽略合并时的文件/文件夹
有没有办法标记一些文件/文件夹,每次我执行这样的操作时都不应该合并到分支中?
我目前使用SVN来版本化我的软件项目。在一个正在进行的项目中,我为客户的常用功能和规格以及分支机构提供了客户端专用的主干。忽略合并时的文件/文件夹
有没有办法标记一些文件/文件夹,每次我执行这样的操作时都不应该合并到分支中?
有一个选项可以合并,这意味着合并不会更改目标中的文件,而是将其标记在合并跟踪道具中。这样,所做的更改永远不会在要合并的文件中出现。
该功能在命令行版本中被称为仅记录。
的--record只选项与-r,准确地做什么你认为它的作用:它标志着一个修订的合并(或卸载了,如果使用的是“ - ”版本号否定语法),而不需要实际改变mergeinfo以外的任何东西。例如,当某人手动编辑文件以便有效合并已经在其他地方进行的更改时,这将非常有用。在下一次同步合并中,不必将原始更改移植到合适的位置,从而避免文本冲突,只要两个版本的细微差别不同,就可以将更改记录为已合并。 (有关更多详细信息,请参阅合并跟踪要求以及Subversion书中的阻止更改。)
我没有立即看到解决方案,但很容易编写脚本。我给你的东西没有经过测试。
首先,您将制作一个您想要删除的目录列表。所谓的〜/ .svn文件合并,排除
#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
这应该工作。这里最重要的是恢复在目录上递归执行的'-R'选项。因此你的工作流程看起来像这样。
# cd path/to/branch
# svn merge -r123:245 svn://svnserver.com/svn/trunk
# revert_excludes_from_branch.sh
然后,你会处理冲突,然后提交。如果您使用的是Windows,那么批处理文件也可以工作,您可以直接输入revert命令。
可能的[如何在Subversion合并期间忽略文件夹]的副本(http://stackoverflow.com/questions/1559552 /如何到忽略文件夹,在颠覆合并) – 2015-03-02 14:48:55