【问题标题】:Drupal 6: using bitbucket.org for my Drupal projects as a real version control system dummyDrupal 6:在我的 Drupal 项目中使用 bitbucket.org 作为真正的版本控制系统假人
【发布时间】:2011-03-16 23:46:42
【问题描述】:

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


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

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


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

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

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

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

抱歉问了些愚蠢的问题,我真的需要指导......

欣赏帮助很大!非常感谢!

【问题讨论】:

    标签: version-control drupal mercurial drupal-6 bitbucket


    【解决方案1】:

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

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

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

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

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

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

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

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

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

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

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

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

    【讨论】:

    • 感谢详细回复!我一直在一遍又一遍地阅读您的回复以了解所有细节。我整理了很多东西,谢谢,从我的 localhost 存储库中测试了 bitbucket。效果很好。最后,我需要找到一种将 mercurial 安装到 bluehost 的方法,正如我从您的帖子中了解到的那样,因为我将在 bluehost(而不是在我的本地主机)上进行开发,对吗?
    • 先检查是否已经安装了python。如果是这样,您可以下载 hg 源并尝试使用python setup.py install --prefix=/path/to/your/home/directory/hg 安装它。如果由于没有安装编译器而失败,请继续使用python setup.py --pure install --prefix=/path/to/your/home/directory/hg,它会安装纯 python 变体(有一些 c 模块用于优化,--pure 选择回退到纯 python 代码)。
    • @artmania 之后你需要把 /path/to/your/home/directory/hg/bin 放到你的 PATH 和 /path/to/your/home/directory/hg/lib/site-打包到您的 PYTHONPATH。当您的 shell 是 bash 时,您可以将 export PATH=$PATH:/path/to/your/home/directory/hg/bin;export PYTHONPATH=/path/to/your/home/directory/hg/lib/site-packages 添加到您的 ~/.bashrc 中。 (感谢 600char 评论限制,我需要将 awnser 分成两个 cmets。grml
    猜你喜欢
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 2023-03-15
    • 2010-10-02
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多