1

好的,这个问题的不同版本无处不在,但是我搜索的越多,它就越混乱。

所以。我是在远程位置的 Linux 服务器场上运行的内容管理系统的唯一开发人员。它在 /Atlas/Core 层次结构中保存了大约 700MB 的 PHP 文件,在 /Atlas/Sites 中保存了 700MB 的站点文件 - 所有媒体和临时数据都保存在这些位置之外,因此出于所有意图和目的,这两个位置形成我的系统的肉。

Sites 目录对于这个特定位置是唯一的,并且不需要与 Core 目录同时进行版本控制 - 基本上,据我所知 - 将它们作为两个存储库是正确的方法。

我在我的 Mac(工作 Mac、笔记本电脑、家用 Mac 等)上进行所有开发,并且由于我的 CMS 配置为在远程 Linux 系统上运行,因此在我的工作环境中设置相同的 Apache/MySQL 环境并不是一件容易的事优先权 - 它可能可以完成,但我不知道它是否值得。

那么,为什么要进行版本控制呢?嗯,一个是为了能够回到早期版本,第二个是什么时候/如果有更多的开发人员参与。

但是我该怎么做呢?我会在服务器 X 上有一个存储库,而我的实时生产服务器是服务器 Y,然后我在服务器 Z 上设置了一个“测试”环境吗?那么在 Z 上进行更改,推送到 X,然后拉到 Y?

然后我从任何 Mac 连接到 Z,进行更改,然后在 Web 浏览器中检查它们,然后将它们推送到生产服务器的两个步骤?那对我来说显然是超级麻烦的,但如果没有别的办法呢?

关于如何解决这个问题的任何想法?我究竟做错了什么?我应该使用什么版本控制系统?

4

3 回答 3

0

好吧,那里的问题很少,所以我将尝试解决所有问题;

Q1。那么,为什么要进行版本控制呢?

您给出的两个理由绰绰有余,而且;

  • 要有备份。
  • 将您的代码库的某些快照标记为“特殊” - 一个版本,一个里程碑......
  • 尝试一些可能需要很长时间并且可能会被废弃的东西。您可以将其提交到一个分支,如果它不起作用,您的产品代码将保持不变。

一个更好的问题可能是,is there a good reason not to have version control?我唯一能想到的是它在您的工作流程中增加了几个步骤,但由于从长远来看这会带来 100 倍的回报,因此您可以并且应该接受它的额外步骤。

我建议将 git 与BitBucketGitHub等在线存储库服务一起使用。我更喜欢 BitBucket - 你需要多少免费的私人回购(在发布时)。

Q2。但是我该怎么做呢?我会在服务器 X 上有一个存储库,而我的实时生产服务器是服务器 Y,然后我在服务器 Z 上设置了一个“测试”环境吗?那么在 Z 上进行更改,推送到 X,然后拉到 Y?

你描述的听起来不错,所以只是:

  • 阅读progit 书
  • 在你的服务器上安装 git。
  • 使用 BitBucket 或 GitHub 作为server X.

“……把他们两步推到生产服务器?……”没有别的办法了吗?

严格来说,您甚至不需要服务器 X。您可以直接从 Y 推送到 Z。但我不会,只是因为我更喜欢使用您所描述的中央存储库的概念。但是,每个 git 存储库都是存储库的完整副本,因此您可以直接从 Y 推送到 Z。这个链接可能有用;

关于如何解决这个问题的任何想法?我究竟做错了什么?我应该使用什么版本控制系统?

我不认为你做错了什么。

正如我上面所说,我推荐 git。Mercurial 非常相似,但我发现 git 有更多支持。我认为 BitBucket 和 GitHub 都支持。

如果你最终有多个开发人员,你会想要改变我想象的这种方法,并开始在本地开发。在这种情况下,以下可能会有所帮助:

注意 - 我也怀疑你有不想提交的文件,因为 700MB 的代码是巨大的。使用 .gitignore 文件过滤掉不需要跟踪的文件。

于 2013-04-30T23:40:39.293 回答
-1

我认为您的工作环境中的 Apache/MySQL 是最佳选择。你可以有更简单的开发过程。

关于版本控制,我只怀疑大小。700Mb 是非常大的代码库。例如,Linux 内核只有 100Mb 左右,几千人写了好几年。可能你有很多二进制文件?

无论如何,我建议先尝试 git,但请记住,它在真实源代码上效果最好,而不是二进制/自动生成的文件。如果你能排除它们,那就太好了。如果你有这么好的代码库,我还建议将它分成几个小的存储库。

于 2013-04-29T12:09:55.577 回答
-1

首先,有 700MB 的源代码有一些(非常)错误。我认为这不是所有真实来源,但那里有一些数据库转储和图像?

用 git 对这一切进行版本控制相当容易。只要您是唯一的开发人员,您就根本不需要中央服务器来处理代码。只需在您的开发系统上设置 git 并开始版本控制。如果你愿意,你可以停在那里。坚持旧的部署过程并完成它。

下一步是为该设置添加一个中央仓库。我个人建议以 7 美元/月的价格购买一个私人 github 存储库。这样您就不必担心设置或备份,并且向您的项目添加新的开发人员就像蛋糕一样容易。此外,您还可以获得代码审查和问题跟踪。当您有一个中央仓库时,您只需偶尔将您的更改推送到那里。完毕。拥有中央存储库(只要您是唯一的开发人员)的最大优势是您可以在远程位置备份代码及其所有历史记录。

如果你愿意,你也可以使用 git 进行部署。我会推荐那个。有很多关于如何做到这一点的教程。我更喜欢“推送和自动结帐”设置。然后你的工作流程是这样的:开发、提交、推送到网络服务器。无论您是否有中央回购,都没有任何区别。

我推荐的版本控制系统绝对是 git。或任何其他去中心化的,但我只有 git 的经验。

于 2013-04-29T14:39:02.837 回答