我是 Mercurial 的新手 - 实际上是源代码管理方面的新手。

我在本地主机上有项目,即 ~/mamp/htdocs。我想在本地工作。有一点我很困惑:

我应该将存储库保存在与我的 htdocs 不同的路径中,因此我创建了“/reps/”文件夹并为此处下的每个项目创建文件夹,并将所有文件从 htdocs 项目文件夹复制到代表。

例如;项目01

复制文件自 ~/mamp/htdocs/project01//reps/project01/

但我在本地主机(htdocs)工作以更改文件等。那么我如何将这些变化与 /reps/?

显然我错过了一些关于源代码控制的非常明显的观点。难道我的开始就错了?

我想我在网上找到的所有教程都需要某种基础知识;他们都没有从零开始讲述任何事情!:/

有帮助吗?

解决方案

最简单的方法,如果您想编辑文件 ~/mamp/htdocs/project01/ (因为我也同意,最好有某种暂存区域,您可以在将更改部署到生产服务器之前测试您的更改,但也许正是您的计算机就是暂存区域,所以一切都可以:- )) 是为了:

  1. 安装 Mercurial
  2. cd ~/mamp/htdocs/project01/
  3. hg init
  4. hg add *.html subdir *.css (无论你想管理什么)
  5. hg commit -m"initial version"

完成后 hg init, ,有一个存储库 .hg 目录下 ~/mamp/htdocs/project01/ !使用 hg 无法(至少)避免这种情况:如果您在project01中有源代码,则需要在project01中有一个存储库。这已经足够了,因为您可以从版本控制中受益,每当您更改文件时,您都可以提交它并给出一条日志消息来告诉系统您做了什么,例如,

  • <edit> a.html
  • hg status (会告诉你当前修改的文件)
  • hg diff (会告诉你与保存版本的差异)
  • hg commit -m"what-has-changed-message" (保存新版本)

即使没有必要在其他地方(例如,在 /reps 中)建立另一个存储库,如果您 想要, ,例如要将数据保存在备份区域中,那么您可以将数据克隆到 $HOME 中:

  • cd /reps
  • hg clone /home/name/mamp/htdocs/project01/ project01

哪个会进入 /reps/project01 您所做的事情的精确副本:您的所有更改和所有日志消息。现在如果你这样做,无论何时你这样做 "hg commit" 要保存主存储库中的更改,您还需要执行以下操作 "cd /reps/project01""hg pull" 为了将更改转发到 /reps(如果您希望它保持同步)。

希望它足够简单..

其他提示

许多不同的途径/方法. 。我的工作方式如下:

  1. 发展: 我将我的文件检查(在 Mercurials 情况下克隆)到我的“开发环境”以对其进行处理,然后提交/推送/等。在同一个地方。

  2. 下一阶段: 一旦我认为他们已准备好进行用户测试/生产/或无论您的下一阶段是什么,那么您可以将代码作为

    2a.包(可以是最新文件的简单 zip)或

    2b.将它们签入下一阶段目录。

  3. 其他用途: 一旦您熟悉了主要使用场景,那么您应该考虑其他 版本控制用法如 标记, 分枝合并

通常,您应该将 VCS(版本控制系统)及其文件与生产 Web 服务器环境分开(鉴于提到了 htdocs,我推断您正在询问这个问题)。

许多(至少是旧时代的)网络系统都有一个暂存区域,您可以在其中从源系统复制材料,您可以使用第二个(不可公开访问的)网络服务器仔细检查。当您确信代码正确时,您可以将其投入生产。

该场景包含三个区域:

  • 具有VCS等的工作(开发)区域;也许可以通过另一个网络服务器访问)。
  • 暂存区(无 VCS,无公共通道;测试和验证)。
  • 生产区域(无 VCS,公共访问)。

听起来有点像是您将这三者混为一谈——这是我有限经验中的常见情况。即使您决定不使用临时区域,您也确实需要将开发系统和生产系统分开。工作区域使用VCS(Mercurial)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top