我们如何跟踪我们的工作副本的分支?

问题描述:

有没有什么好的技术可以帮助我们知道我们的工作副本来自哪个分支(或主干)?我们最近转换为Subversion,我们正在使用发布分支。我让两个开发人员对发布分支提交了应该已经提交给主干的更改。我们使用CI(TeamCity),所以我马上意识到了这个问题,并且能够恢复更改,但是我想阻止它再次发生。从Visual Studio中,尤其是,很容易犯一个错误,并承诺错误的分支。我们如何跟踪我们的工作副本的分支?

我们使用的是TortoiseSVN和AnkhSVN。

编辑补充: 为了澄清,我正在寻找一种防止粗心的错误的方法,我已经知道如何找到这些信息。我试图防止两个粗心的错误:

  1. 在错误的分支上工作。如果这在提交之前被捕获,则开发人员必须将这些更改合并回正确的分支。
  2. 承诺错误的分支。这将点1的痛苦与必须恢复Subversion中的更改相结合。

编辑添加:我们只是切换到VisualSVN VS插件,它有一个工具栏,显示当前工作副本的路径。我非常喜欢我在正确的分支上工作的保证。

在AnkhSVN(Visual Studio)中,工作副本的项目URL显示在待处理更改窗口的“工作”字段中(查看 - >待定更改)。

当您在挂起的更改窗口或工作副本浏览器中选择文件时(甚至在解决方案资源管理器中选择文件时,文件/文件夹的URL也显示在Visual Studio项目窗口中;但这取决于项目类型)。

[更新:我只是说AnkhSVN的issue #581的提交对话框的扩展]

右键单击该文件夹,移动到subversion选项卡,在那里显示它链接到的项目。

另外,在提交对话框中,它在对话框的顶部表示。

+0

确实够了,但这并没有防止错误。我们通常从VS提交并且AnkhSVN不显示URL。也许是时候看看VisualSVN了。 – 2009-04-14 13:49:04

从工作目录:

svn info 

网址将包含分支工作目录指向。

<编辑>看到有多少人不喜欢命令行,我从TortoiseSVN发现的关闭事物是“回购浏览器”,它似乎将所选分支用作回购的起始路径。 </EDIT >

也许你应该考虑使用pre-commit钩子:http://svnbook.red-bean.com/nightly/en/svn.reposadmin.create.html

然后,你可以做这样的事情只在特定部门或类似的东西的意见批准具有“发布”签到并返回一个错误消息,否则。

Tortoise SVN将列添加到Windows资源管理器视图。在“详细信息”模式下,右键单击列标题以获取可用列的列表,在底部选择“更多”以获得所有可用列类型的对话框。

SVN短URL应该会快速显示存储库中的位置。

但是,这似乎不能在Vista下工作...

避免重复使用工作副本。如果您在存储库中的两个位置上工作,请提供2个工作副本,并进行适当命名,如:Project-trunk,Project-release。

下面是一个简单的想法,这可能有助于:
创建一个名为“branch_XX”一个空的文本文件(或名称)和将它添加到你的分支。
提交此内容,然后当您切换到中继时,该文件将不会出现在解决方案资源管理器中。

这听起来很愚蠢......但它确实有效。

我真的希望他们会添加一些东西,可能标记我们正在使用的分支而不去其他窗口。

在AnkhSVN中(在Visual Studio中),右键单击您的项目/解决方案,然后右键单击源代码管理 - > Subversion - >在资源库资源管理器中选择。它会自动选择您当前正在使用的分支(即您切换到的分支)。

我不认为AnkhSVN接受的答案适用于项目,因为即使在项目中使用“切换项目”选项后,我仍然会在“待定更改”中看到相同的URL。