代码之家  ›  专栏  ›  技术社区  ›  pivotal

为什么/反对使用SVN进行部署?

  •  4
  • pivotal  · 技术社区  · 16 年前

    所以,

    在我的工作中,我们使用SVN来管理源代码,但是在部署时,我们执行SVN导出,并将该树与生产中的代码同步。这是我开始工作以来的做法(这是我的第一项编程工作),也是我们继续做事情的方式。

    我已经开始在工作之外处理我自己的个人项目,并且仍然使用SVN来管理我的代码——但是,我不需要将导出与服务器上的树同步,只需在服务器上执行签出,当我汇总新代码时,我只需要SVN。这对我来说似乎更简单。

    是否有充分的理由不在生产机器上使用SVN?我忽略的安全风险?

    7 回复  |  直到 15 年前
        1
  •  5
  •   anon    16 年前

    我可以考虑几个问题:

    • 在服务器上签出将在那里创建不必要的.svn目录
    • 要在服务器上签出,用户需要SVN和服务器访问权限

    这些都在我的头顶上-我相信还有更多。

        2
  •  4
  •   Billy ONeal IS4    16 年前

    SVN签出是导出数据大小的2倍,因为.svn文件夹包含用于在出错时还原的数据。导出不会创建.svn文件夹,因此可以使用较少的空间。

        3
  •  2
  •   Jani Hartikainen    16 年前

    我觉得部署的SVN可以。如果您的服务器安装了客户机,并且它的步骤比export和rsync少,那么这很容易。

    我能看到的唯一问题是一些不支持这种服务的廉价主机提供商,而且SVN客户机可能会存储您用于签出代码的帐户,可能允许其他人访问。

        4
  •  2
  •   Darryl    16 年前
    • 服务器上的额外负载
    • 对Prod环境的更改意味着对应该与开发基础结构无关的方面的破坏,反之亦然。其中一个问题会扰乱另一个问题。
    • 管理角色和权限的挑战。Neil需要SVN和服务器帐户的例子就是一个例子。管理适当的文件系统访问控制是另一回事(整个团队是否应该对生产目录拥有写权限?).

    简而言之,在服务器上使用SVN会在dev和prod之间引入更紧密的耦合,这会导致与代码不同部分之间的紧密耦合没有太大区别的问题。

        5
  •  1
  •   Jeff Ferland    16 年前

    第一种想法是:如果发生妥协,攻击者现在也可以访问源代码。

        6
  •  1
  •   Paul Biggar    16 年前

    您将使您的源代码在.svn目录下的Web上可用,这可能是一个问题。

    这正是我们对PHC所做的,你可以 access the .svn files 因此。但由于它是开源的,这并不重要。

    当然,你可以用.htaccess文件来解决这个问题。

        7
  •  1
  •   Sebo gabisajr    15 年前

    如果您不想在WWW Live目录中使用.svn文件夹,但仍然使用update而不是export,因为它是fast,只需在另一个名为predeployfolder的文件夹中签出WWW存储库即可。

    每次要将当前的head repository版本传输到live www文件夹时,在predeployment文件夹中快速更新svn,然后在predeployment文件夹和live www文件夹之间重新同步,并指定.svn文件必须按如下方式合并:

    rsync -az --eclude="*.svn*" predeployfolder wwwlivefolder
    
    推荐文章