有没有人知道一种递归删除工作副本中不受版本控制的所有文件的方法?(我需要这样才能在自动构建VMware中获得更可靠的结果.)
我有我认为的简单场景 - 使用TortoiseSVN:
1)我创建了一个应用程序的分支(B2)(用于实现图像精灵和JAWR).
2)测试和开发在主干上正常进行.
3)在过去的几天里,我通过以下几次重新设立了分支机构:
3.1)合并主干(按修订范围)到我的branch-b2工作副本,解决合并期间的冲突.
3.2)(在测试branch-b2之后),我提交了基于重新分支的-b2.
这一切都像我预期的那样奏效.但是将分支合并到主干中是有道理的:
4)在branch-b2中提交的所有更新之后; 我确保在trunk和branch-b2上进行SVN更新.
5)然后,我尝试将branch-b2中的(修订范围)合并到主干中.但是,对于任何已添加到主干的新文件,以及随后在我重新添加时添加到branch-b2的新文件,我会遇到树冲突.我不确定解决这些冲突的正确方法是什么.
我见过的最典型的建议是从trunk中删除树冲突文件,然后合并分支; 或者删除整个中继,将分支文件复制过来,然后在中继中将它们作为新版本提交.这些选项似乎都不是一个好主意 - 首先是痛苦,而且看起来他们都会丢失文件修订历史.
我做错了什么,我该如何解决?
如何使用svn命令行工具从SVN结帐中删除所有未跟踪的文件?为此目的Git和Hg提供clean和purge命令,但我在SVN中找不到相应的命令.
我不在乎是否必须在此过程中恢复所有本地修改(在这种情况下,我基本上希望将我的结帐恢复到原始状态)或者对跟踪文件的本地修改是否可以保持不变; 两种情况都可以接受.
我正在使用正则表达式来匹配文件内容:
> (get-content $_) -match $somePattern
the line of text that matches the pattern
Run Code Online (Sandbox Code Playgroud)
这返回true,匹配,但我的$ matches变量保持为null.
> $matches -eq $null
True
Run Code Online (Sandbox Code Playgroud)
$ match是否应该包含匹配组?
我在Subversion中有一个带有几个分支的源代码树.我刚刚在一个活跃的分支中完成了一个相当激烈的调试会话,现在需要将更改合并到新分支.最近,在旧分支中的所有开发(显然)之后但在我提交所有调试之前,新分支被取下了trunk(代表已发布的代码).svn merge但是,尝试不会合并所有已添加的文件.它增加了一些,但不是全部.
这是时间表:
正如预期的那样,有许多变化,包括新文件,但不是全部.是因为我合并的版本范围包括dev2分支的版本吗?或者我应该合并到主干然后下降到dev2?
编辑:所有代码完全提交到Subversion.但我认为可能发生的事情是文件添加不会通过合并传播.也就是说,之前合并到 DEV1增加了一些文件,但合并从 DEV1涵盖现有合并提交不包括添加的文件.
但我还在检查.
有什么方法可以完全清理VS解决方案吗?完全我的意思不仅仅是删除Active配置构建的项目的当前输出.我的意思是清除所有构建配置的所有输出和中间文件.
即使在我更改构建输出路径之后,我也想从先前的输出路径中删除输出.
示例场景:我签出了一个源代码树并进行了发布版本,然后是一个调试版本.现在我有\ bin\Debug目录和bin\Release目录,以及\ obj目录.然后我想清理两种配置的输出.
也许Subversion是一个更好的工具,例如删除所有不受源代码控制的东西?否则,我认为一个批处理文件可以递归清除obj,bin和TestResults目录,并且可以将VS菜单项绑定到此工具.
我正在使用SVN 1.7和VS 2012.
有没有人已经使用VS,SVN,PowerShell或Windows批处理文件创建了这样的工具?