1

我有一个使用版本控制设置的网站。我们将Beanstalkgit一起使用。现在,我刚刚收到一个向他的网站添加 CMS 的请求,这基本上只是向我希望客户能够编辑的任何 div 添加一个“cms”类。

对于我们的 CMS,我们使用Pagelime,一个非常轻量级的 CMS。但是客户端将获得自己的登录名来进行更改,它会自动通过 FTP 实时上传这些更改。

这将如何与我的版本控制设置一起使用?如果客户端进入并使用 CMS 添加新内容,则该网站存储库中的文件将过时。

谢谢!

4

2 回答 2

1

我们的 S/FTP 部署会自动将文件复制到您的远程服务器,但不会保留指向 Beanstalk 托管 git 存储库的链接。相反,您可以通过将 Beanstalk 存储库克隆到远程服务器来进行部署,然后每次部署时,您将从服务器上的该存储库中发出“git pull”以从 Beanstalk 获取任何更改。

为了补偿 Pagelime 所做的更改,您需要在拉取之前和之后执行几个额外的步骤:

1) 通过发出命令提交 pagelime 所做的任何更改

git commit -am "commit pagelime changes"

2) 从 Beanstalk 拉取更改到服务器

git pull origin master

3) 将 Pagelime 更改推送到 Beanstalk

git push master

这是最简单的工作流程,并且不考虑 Pagelime 更改与您从开发环境中做出并提交到 Beanstalk 的更改之间无法自动解决的冲突。

使用首选脚本语言(ruby、python、php)配置和/或编写此工作流程后,您可以开始使用 Beanstalk 的 SSH 部署而不是 S/FTP 部署。然后,每次运行部署时,Beanstalk 都可以自动登录到您的服务器和脚本或命令。

于 2012-04-29T18:43:33.667 回答
1

你在使用 PHP 吗?您可以使用 Pagelime FTP-XML 发布系统,然后使用此 GIST 中的代码:https ://gist.github.com/945294

它将设置 Pagelime 以使用 XML 将内容推送到您的客户端站点,而不是通过重写源代码。然后,您使用 PHP(或任何其他语言)将内容拉入您的页面。

一切仍然托管在您的 FTP 上,但您的源代码永远不会被触及!

只要确保永远不要删除“cms-assets”文件夹,因为这是 Pagelime 上传的 XML、图像和文档。

希望这是有道理的!

于 2012-04-30T19:43:04.413 回答