通过TortoiseSVN超越一垒

时间:2011-03-10 23:33:31

标签: delphi version-control tortoisesvn sync

好的,我一直相信SVN是进入previous posting的方式,但我还没有看到顿悟。我不确定如何为我的开发环境设置SubVersion。

这是我目前的设置。我不是很想搞砸它,如果颠覆可以与它并列,那将是非常好的:

工作:

N:\项目
  N:\项目\库
  N:\项目\ App1的
  N:\项目\应用1 \帮助
  N:\项目\应用1 \图片
  N:\项目\ App2的
  ..etc

N:在建筑物的单独服务器上。

还有其他一些开发机器在本地安装了这些工具,但所有开发都是在引用服务器上的文件时进行的 - 即工作站上没有源代码。

具有相同开发工具集的笔记本电脑,以及c:\ Projects \ App1 ..等中的源代码,即工作中n:\ Projects上的设置镜像。

N:\ Projects和C:\ Project之间的源代码目前与DropBox一起保持与自定义应用程序对齐。文件排除确保非源文件不会被同步

我想使用此设置运行SubVersion。

  • 我在哪里放置存储库?
  • 假设我可以拥有存储库 SVN将是一个可以互相访问的地方 删除当前需要同步 工作和家庭之间?

5 个答案:

答案 0 :(得分:8)

为了拥抱Subversion,您将使用服务器上的Subversion存储库替换您的共享源目录。每个开发人员工作站将在本地签出整个源代码的副本(但是,如果您愿意,这可能是网络服务器上的私有区域。)

您可以将N:\Projects树保留为每日构建的只读副本,或者其他任何内容。但Subversion的目标之一是在两个人大致同时编辑同一个文件之间进行调解。这与包含可写源代码的共享目录不兼容。此外,让多个开发人员以某种方式“共享”同一个Subversion工作目录注定要失败。

答案 1 :(得分:4)

在将整个源代码树移入其中之前,为什么不创建一个可访问互联网的(免费)试用版Subversion帐户,并玩一下,让自己熟悉一下。因此,您不会意外删除您拥有的所有内容。也许从一个虚拟项目开始。在互联网上托管一些东西。没有支付一分钱,你可以使用这个网站:

http://www.projectlocker.com/

然后您可以设置自己的starter subversion服务器。你可以创建一个全新的Delphi应用程序(文件 - >新的delphi应用程序),然后添加一个按钮,然后双击该按钮,编写一个消息框,或者你想在演示应用程序中做什么。现在创建一个subversion存储库(也许他们称之为项目,在项目锁定器上),并将保存此项目的文件夹添加到该存储库中。

现在你可以玩(a)陆龟SVN,(b)SVN集成构建到Rad Studio XE,如果你有Rad Studio XE,和(c)JCL中的版本控制插件,如果你不没有Rad Studio XE。

另外,如果您希望知道自己在做什么,我可以建议您从命令行学习如何添加,提交和更新。这真的不是那么难。它会在以后得到回报。

知道你可以输入svn co http://reposite.something.com/svn/myproject来检查磁盘上的项目,非常方便。有时,我认为GUI正在为你的大脑训练轮子。如果你不学习命令行,你就会瘫痪自己。

托管的subversion服务的好处就像我上面展示的那样,就是你有一个异地备份。当然,如果您正在编写开源软件,即使对于大型项目,此类托管也始终是免费的。然后你可以托管sourceforge。否则,您将(a)需要使用您自己的互联网可访问主机或(b)支付托管费用,否则您将无法在家中和工作中轻松访问您的存储库。

就个人而言,如果这是我自己的事业,或者我编写软件的专业工作,我会主持我自己的subversion服务器,它只是私有(LAN),我会使用VPN从家里访问它。

答案 2 :(得分:3)

1:您肯定希望可以从两个位置访问存储库。要么,您需要使用分布式版本控制系统,如Mercurial或Git

2:是的,您的自定义同步应用不再需要了。这正是您的版本控制系统的工作。除了使用SVN之外,手动同步不是必需的,甚至会产生许多冲突。

答案 3 :(得分:1)

  1. 应删除您的共享目录,并在每台计算机上提供代码副本,该副本是SVN存储库的工作副本。
  2. 将您的服务器与文件放在一起,将SVN服务器放在其上,或者包括家用计算机在内的任何服务器都可以访问。
  3. 每天提交/更新,每天多次,并在需要时管理合并。

  4. 对于家庭访问,最简单的方法是在网络上获取专用服务器或重定向路由器上的正确端口(但显然需要一些访问控制),以便可以从外部访问您的存储库。如果需要,您可以限制从家庭IP或具有良好路由器的IP列表的访问。

    另一种解决方案是另一种称为“分布式”的版本系统,其中每个提交都在您自己的PC上的本地存储库中完成,并且此存储库合并在“主”存储库中以共享代码和更改该团队的其他成员被拉回到您的本地存储库中(您不需要任何“主”存储库技术上在DVCS上,但对于您将拥有的公司而言)。

    请参阅Git或Mercurial以获得良好的DVCS(Git语法很糟糕,但它是使用最广泛的系统,技术上是最好的系统)。

答案 4 :(得分:1)

  1. 将存储库放在最安全的地方。这通常意味着在受控服务器机房中的良好冗余服务器(磁盘等),以及正确备份的服务器。切换到VCS时,要处理的源代码通常位于本地计算机沙箱中,因为每个开发人员都必须拥有自己的源代码。然后获取更改并发送到服务器或从服务器发送。请注意,某些工具可能在远程目录中存在问题,因为例如SMB协议的工作方式 - 如果您需要使用它们,请检查它们是否得到明确支持。除非您有最高级的安全需求,否则在本地沙盒中工作的恕我直言会更快更容易。
  2. 如果您可以从家里(即通过VPN)访问SVN服务器,那么它与在办公室工作的情况没有什么不同。您将以相同的方式“同步”(更新/提交)您的笔记本电脑沙箱,您不需要本地服务器和存储库。如果你需要一个本地服务器(原因可能是你无法从外部访问中央存储库,需要工作断开连接但版本文件等),可能有方法跨SVN服务器进行复制,但此时可能是分布式VCS应该在这种情况下更好地工作。