1

这是一个真正的版本控制系统假人!合适的新首发!


到目前为止我的工作方式:

我有一个 Drupal-6 网络项目www.blabla.com并在www.blabla.com/beta下进行开发。我直接在服务器上的 blabla.com/beta 上工作。在我当地什么都没有,在其他任何地方都没有。只备份到本地,不时。我知道可怕且不安全的方式:/


从现在开始我想工作的新方式:

我决定使用Mercurial。我还有一位开发人员要和我一起做同一个项目。我在 bluehost 上有一个 blabla.com Drupal-6 项目,正在开发 blabla.com/beta。我发现http://bitbucket.org/用于 mercurial 托管。我已经创建了一个帐户。

那么现在我该如何设置呢?读了几十篇文章后我完全糊涂了:/

  • bitbucket 仅用于托管修改后的文件?所以如果我或我的开发者朋友编辑 index.php,bitbucket 将只托管 index.php?
  • 从现在开始,我是否必须在 localhost 工作并将更改上传到 blueshost?不再直接在 blabla.com/beta 上进行编辑?或者我还能在 blabla.com/beta2 下的 bluehost 上工作吗?
  • 当我需要编辑任何文件时,我是否首先从 bitbucket 下载更新,在 localhost 进行更改,更新 bitbucket 以获取已编辑的文件,然后上传到 bluehost?

对不起,愚蠢的问题,我真的需要指导......

欣赏帮助很大!多谢!

4

1 回答 1

4

bitbucket 仅用于托管修改后的文件?

bitbucket 的主要服务是在版本控制下托管文件,但也有一种方法可以在那里存储任意文件。

所以如果我或我的开发者朋友编辑 index.php,bitbucket 将只托管 index.php?

我是一个典型的项目,属于产品的每个文件都被检查到修订控制中,而不仅仅是 index.php。看这个例子

从现在开始,我是否必须在 localhost 工作并将更改上传到 blueshost?不再直接在 blabla.com/beta 上进行编辑?或者我还能在 blabla.com/beta2 下的 bluehost 上工作吗?

Mercurial 没有规定修复工作流程。但我建议您在编辑文件的地方安装 mercurial。例如,您可以直接查看自上次提交以来所做的更改,而无需将文件从服务器复制到本地存储库。

我绝对推荐一个工作流,其中存储库中的某处是一个脚本,该脚本生成传输到服务器的存档文件,其中包含创建存档时存储库的修订。此修订信息也应该存储在服务器上的某个位置(不一定在公共可访问区域),因为当出现问题时,此信息会非常方便。

当我需要编辑任何文件时,我是否首先从 bitbucket 下载更新,在 localhost 进行更改,更新 bitbucket 以获取已编辑的文件,然后上传到 bluehost?

有几种不同的方法可以将数据发送到服务器:

  • 将本地 repo 导出到存档中并将其传输到服务器 ( hg archive production.tar.bz2),这是最安全的变体,因为它不依赖于服务器上的任何额外软件。此外,根据存档的大小,这种方法会浪费大量带宽。
  • 在服务器上工作并将更改的文件复制回来,但我不建议这样做,因为容易错过重要的事情
  • 在服务器上安装 mercurial,在那里工作副本和hg export本地工作到生产区域
  • hg fetch在服务器上和从 bitbucket(或任何其他服务器可访问的存储库)安装 mercurial
  • 在服务器上安装 mercurial 并hg push从本地工作副本到服务器(然后hg update在服务器上)

最后两点可以将存储库暴露给公众。这个展示可能有好有坏,这取决于您的存储库包含的内容以及您是否想要共享内容。当您想要共享内容,或者您​​可以限制对 www.blabla.com/beta/.hg 的访问时,您可以直接从您的 Web 服务器克隆。

另请注意,即使您对存储库进行访问限制,也不应签入任何带有密码或关键机密的文件。签入模板文件(与生产中的名称不同)并在服务器上复制和编辑这些文件更省钱。

于 2010-07-16T16:26:59.213 回答