Delphi 带着乌龟通过一垒

Delphi 带着乌龟通过一垒,delphi,version-control,tortoisesvn,sync,Delphi,Version Control,Tortoisesvn,Sync,好吧,我已经确信SVN是未来的发展方向,但我还没有看到顿悟。我不确定如何为我的开发环境设置SubVersion 这是我目前的设置。我不想搞砸它,如果subversion能与它并肩作战,那就太好了: 工作: N:\Projects N:\Projects\Lib N:\Projects\App1 N:\Projects\App1\Help N:\Projects\App1\Images N:\Projects\App2 等等 N:在大楼的另一台服务器上 还有一些其他的开发机器在本地安装了这些工具,

好吧,我已经确信SVN是未来的发展方向,但我还没有看到顿悟。我不确定如何为我的开发环境设置SubVersion

这是我目前的设置。我不想搞砸它,如果subversion能与它并肩作战,那就太好了:

工作:

N:\Projects
N:\Projects\Lib
N:\Projects\App1
N:\Projects\App1\Help
N:\Projects\App1\Images
N:\Projects\App2
等等

N:在大楼的另一台服务器上

还有一些其他的开发机器在本地安装了这些工具,但是所有的开发都是参照服务器上的文件进行的,也就是说,工作站上没有保存任何源代码

主页

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

N:\Projects和C:\Project之间的源当前与一个与DropBox一起使用的自定义应用程序保持一致。文件排除确保不同步非源文件

我想使用此设置运行SubVersion

  • 我应该将存储库放在哪里
  • 假设我可以在 一个可以互相接近的地方,威尔·斯文 删除当前同步的需要 在工作和家庭之间
  • 您的共享目录应该被删除,并且每台机器上都有一份代码副本,这是SVN存储库的工作副本
  • 将您的服务器与文件一起使用,以将SVN服务器放置在其中或包括您的家庭计算机在内的所有人都有权访问的任何服务器上
  • 每天提交/更新,每天多次,并在需要时管理合并

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

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


    查看Git或Mercurial以了解良好的DVC(Git语法很糟糕,但它是使用最广泛的系统,从技术上来说也是最好的系统)。

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


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

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


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

    为什么不创建一个可访问internet(免费)的试用Subversion帐户,在您将整个源代码树移入其中之前,先玩一玩,让自己熟悉一下。这样你就不会无意中删除你所有的东西。也许从一个虚拟项目开始。在因特网上主持某事。你甚至不用付一分钱就可以使用这个网站:

    然后,您可以设置自己的starter subversion服务器。您可以创建一个全新的Delphi应用程序(文件->新建Delphi应用程序),并添加一个按钮,双击该按钮,编写一个消息框之类的东西,或者在演示应用程序中执行任何操作。现在创建一个subversion存储库(也许他们在project locker上称之为project),并将您保存此项目的文件夹添加到该存储库中

    现在,您可以使用(a)Ortoise SVN,(b)SVN集成内置到Rad Studio XE中(如果您有Rad Studio XE),以及(c)JCL中的版本控制插件(如果您没有Rad Studio XE)

    另外,我建议,如果您希望了解您正在做什么,您可以学习如何从命令行添加、提交和更新。其实没那么难。以后会有回报的

    知道您可以键入
    svnco
    将项目签出到磁盘,这非常方便。有时候,我认为GUI是训练大脑的轮子。如果你不学习命令行,你就会使自己瘫痪

    像我上面展示的托管subversion服务的一个好处是,您有一个异地备份。当然,如果你正在写一些开源的东西,即使是大型项目,这种托管也是免费的。然后您可以在sourceforge上托管。否则,您将(a)需要使用您自己的internet可访问主机或(b)支付主机费用,否则您将无法在家中和工作中轻松访问存储库

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

  • 将存储库放在最安全的地方。这通常意味着在受控服务器中有一个良好的冗余服务器(磁盘等)