了解与Visual Studio 2010,AnkhSVN和SVN 1.7.4一起使用分支

时间:2012-04-20 04:03:32

标签: visual-studio-2010 svn ankhsvn

我是Subversion的完全新手,但我正试图超越SourceSafe令人恐惧的阴影。所以我正在学习,试着教自己什么是什么,而且我遇到了一些我还不太了解的障碍。

SVN 1.7.3已在本地Linux机器上启动并运行。 AnkhSVN安装在我的VS 2010设置中。 VS / AnkhSVN可以与我的存储库通信。所以我开始尝试一些非常简单的Console项目来开始。我按照目前为止发现的指南中的建议创建了trunk,branches和tags目录。

我创建了一个新的控制台解决方案,并允许Ankh在我的存储库中在推荐的“trunk”文件夹下创建该项目。在Program.cs中添加“Hello,World”行后,我将更改提交给trunk。这工作......到目前为止,非常好......

我现在想要假装我正在私人分支机构工作,所以我从“trunk”和“Head / Latest”版本中选择Subversion-> Branch Project ...,选中“切换到分支后”创建。”这看起来很顺利。

问题1。

现在这里的事情变得冒险了。我决定将单个源文件添加到我的私有分支中的项目中,添加该文件,但我无法将文件从我的私有分支移动到trunk。合并/重新整合不起作用。更新不起作用。开关不起作用。现在,在尝试从分支切换到主干后,VS告诉我我的项目文件已损坏且无法加载。

显然,我做了一件非常糟糕的事,但我不知道是什么。看来我只需要获得一个主干工作副本,然后进行合并,但是如何在我的VS项目文件夹设置中执行此操作?

问题2

我的下一个问题或问题可能是问题1的一部分,它是理解如何在Visual Studio端构建Subversion管理的项目。在Unix方面我更清楚你可以将项目拉到本地文件夹,但它根本不清楚VS项目的典型目录结构应该如何受到Subversion的影响。是否应该在本地Visual Studio框中复制主干和分支文件夹?如果我从主干“切换”到专用分支(反之亦然),是相应文件应该进入同一组VS文件夹的意图,还是应该有分支和主干的相应集合?

问题3 这更像是一个新手SVN问题,但当SVN告诉我存在冲突时,我还不知道如何解决它们。 ankhSVN插件是否具有解决冲突的特殊工具,或者我是否需要使用完整的svn工具在主机服务器上修复它们?如果是这样,那么“最典型”的冲突是什么?

2 个答案:

答案 0 :(得分:2)

  1. 您是否添加并提交了该文件?

  2. 您可以使用切换到保持相同的文件夹,如示例here中所示,或者您可以为主干和分支分配两个单独的文件夹。这取决于您和您的项目的作用。如果你的项目必须在某个工作路径上,例如Web服务,那么使用switch可能会更好。

  3. 不幸的是我没有Ankh在我面前,但您应该能够使用Ankh内置的工具编辑或解决冲突,但您也可以更改配置以使用第三方工具。文档here

答案 1 :(得分:2)

要做的第一件事:至少阅读Version Control with Subversion的前两章并使用示例。要执行后者,最好使用命令行客户端,例如Slik SVN

AnkhSVN本身对于SVN客户端来说还不够 - 它只是将SVN集成到VS中的便利工具。因此,如果您想使用GUI客户端(除了命令行客户端,在任何情况下都必须使用恕我直言),那么最流行的Windows版本是Tortoise SVN

(主动)阅读版本控制与Subversion将帮助您解决所有当前的问题,但这里有一些初步的想法:

问题1 您是否已经提交了分支机构?您可以通过运行svn info [repo_url]/branches/[your_branch]

来确保

问题2 似乎您对此有一些误解:SVN还在本地“拉”(术语“检出”)您的文件。读这本书!!!

通常,您的SVN结构应该反映您的文件夹结构,反之亦然。通常,您一次只能处理一个分支,并且只检出一个分支。当你需要在另一个分支上工作时,你会'svn switch'。它节省了空间。现在,您当然可以从repo root开始查看所有存储库,但为什么要这样做呢? (我可以想到这种情况,但他们更关心的是存储库维护,而不是常规的工作流程。)

问题3 冲突 - 在您阅读本书之前,甚至不值得讨论。

我希望这会指出你正确的方向。阅读本书的前两章应该可以带你几个小时到几天。