5

我是 Subversion 的新手,但我正试图摆脱 SourceSafe 的可怕阴影。所以我在学习,试图自学什么是什么,我遇到了一些我还不太明白的障碍。

SVN 1.7.3 在本地 Linux 机器上启动并运行。AnkhSVN 安装在我的 VS 2010 设置中。VS/AnkhSVN 可以与我的存储库对话。所以我开始尝试一些非常简单的控制台项目来开始。我按照迄今为止找到的指南中的建议创建了主干、分支和标签目录。

我创建了一个新的控制台解决方案,并允许 Ankh 在我的存储库中推荐的“主干”文件夹下创建该项目。在 Program.cs 中仅添加“Hello, World”行后,我将更改提交到主干。那行得通……到目前为止,很好……

我现在想假装我在一个私有分支上工作,所以我从“主干”和“头/最新”版本中选择 Subversion->Branch Project...,选中“创建后切换到分支”。这似乎进展顺利。

问题1。

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

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

问题 2

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

问题 3 这更像是一个新手 SVN 问题,但是当 SVN 告诉我有冲突时,我还不明白如何解决它们。ankhSVN插件是否有专门的工具来解决冲突,还是我需要在宿主服务器上用完整的svn工具来修复它们?如果是这样,要解决的“最典型”类型的冲突是什么?

4

2 回答 2

2

要做的第一件事:至少阅读带有 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 根目录开始检查您的所有存储库,但您为什么要这样做呢?(我可以想到这种情况,但他们更关心存储库维护,而不是常规工作流程)。

问题 3冲突——在你读完这本书之前,甚至不值得讨论。

我希望这将为您指明正确的方向。阅读本书的前两章应该花费你几个小时到几天的时间。

于 2012-04-20T07:25:27.477 回答
2
  1. 您是否添加并提交了文件?

  2. 您可以使用切换到保持相同的文件夹,如此处示例中所示或者您可以为您的主干和分支设置两个单独的文件夹。这取决于您以及对您的项目有效的方法。如果您的项目必须在特定路径中工作,例如 Web 服务,则使用 switch 可能会更好。

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

于 2012-04-20T07:15:37.607 回答