SVN新手,我应该保留一个项目的本地副本吗?

时间:2011-06-28 13:59:29

标签: svn

我是SVN的新手,我的项目通常是.NET winforms项目, 在过去,网络驱动器上有一个共享文件夹,并且是“当前版本”文件夹。

我的团队,3名成员,我们所有人都在自己的窗户上有本地副本。 问题出现了,可能程序员A&程序员B同时修改文件 覆盖B的文件等。

我的老板让我建立一个SVN来防止上面的问题。

我搜索SOF并了解SVN的概念,但是, 有人说必须从/ branch文件夹签出源,完成后,签入回/ branch文件夹并合并到/ trunk。

这让我提出了一些问题: 假设我的项目包含3个文件:

  • Cart.cs
  • Product.cs
  • Customer.cs

SVN存储库结构:

  • / trunk:Cart.cs / Product.cs / Customer.cs

-

今天,我想修改Cart.cs,我将Cart.cs复制到/ branch并创建一个新文件夹“1.0.1”并结帐到我的本地并在VS2010上打开,但Cart.cs继承了产品.cs,所以它在我的VS上做了一些“遗漏参考”错误。

所以,正确的方法是将所有文件复制到/branch/1.0.1并将checkout复制到本地,或者只保留本地副本并覆盖/ branch中的文件以使编译正确?

谢谢你。

2 个答案:

答案 0 :(得分:7)

你似乎对SVN的基本概念感到困惑。我强烈建议你阅读本书的前几章,特别是第2章和基本工作周期的部分 Subversion Red Bean Book

你应该做些什么才能充分利用SVN。

您创建一个存储库并存储任何启动文件或其中的内容,为您的项目创建一个特殊文件夹,然后在其中创建文件夹,即

/myProject
+ trunk
+ branches
+ tags
+ sandbox

从那里,所有你的工作应该在主干中完成。每个人都应该从主干检查项目,并单独处理他们的本地(工作)副本,理想情况下一次只能处理一个任务/问题。修复大型或实现新功能后,将工作与存储库同步,如果发生冲突,则应解决它们。 SVN 不会让您签入冲突的文件。您必须推迟,覆盖或合并您的工作与主干。如果此时需要与其他开发人员进行通信,则应该。解决所有冲突并使用工作副本测试完所有内容后,您可以提交代码并将更改发布回主干,然后进行更新。

当您需要从主干分叉以实现特定功能而不提交到主干时,将使用分支。几天后你应该将主干合并到你的分支中,然后最终你需要将分支合并到主干中。

答案 1 :(得分:1)

如果您只想开始一个非常简单的设置,您可以在SVN存储库中创建一个分支,其中文件夹/分支称为“Trunk”。

然后,每个开发人员都可以将该存储库签出到其计算机本地的文件夹中。当他们进行更改时,他们提交这些更改到“Trunk”存储库分支。

当您知道其他人进行了更改时,您会在本地副本上执行“更新”来提取这些更改。

最后,当您执行某些发布或达到某个里程碑时,您可以使用“版本1.0.1”等名称发布“标记”(其中标记实际上是另一个分支,包含给定时间实例的代码,您将不会继续处理该分支,但保持稳定)。