svn - Magento 和 Subversion (SVN) - 开始构建开发环境吗?

标签 svn magento development-environment

我正在构建一个 Magento 网站,它是迄今为止我使用过的最庞大的软件包。我决定建立一个合适的开发服务器并使用 Subversion 进行版本控制。我遇到了一些障碍,需要一些帮助。

到目前为止我做了什么:

  1. 在使用 cPanel 的主机上设置网络托管。我的“实时”网站 (mysite.com) 将位于 ~/public_html/。
  2. 创建了一个指向 ~/public_html/dev/的“开发”子域 (dev.mysite.com)。
  3. 在 ~/svn/内启动了 SVN 存储库。我的存储库包含文件夹分支 |标签 |行李箱。
  4. 将新解压的 magento tarball (v.1.3.2.4) 导入到我位于 trunk/magento 的存储库中。
  5. 创建了两个数据库mysite_live 和 b. mysite_dev。
  6. 从我的存储库中将 magento 代码 checkin ~/public_html/dev/(dev.mysite.com)
  7. 运行初始 Magento 安装程序,它填充了我的 mysite_dev 数据库并创建了一些配置文件(app/etc/local.xml 是我所知道的唯一一个 - 可能还有其他文件?)。

这就是我陷入困境的地方:

所以我在我的开发空间中安装了功能齐全的 Magento。我现在想做的是将我的实时站点部署为与我的开发站点相同的,作为起点。因为app/etc/local.xml文件中的config不同;再加上 Magento 将 {{base_url}} 的值存储在数据库中,这不像从我的开发站点更新我的 svn trunk,然后导出/导入数据库那么容易。

随着我的进一步发展,我希望有一个简单的路径可以通过 SVN 将我的开发站点上的所有内容推送到我的实时站点,同时保持数据库同步(除了 {{ 的值)基本网址}}。我在其他地方读过一些论坛帖子,其中引用了使用 svn:ignore 来避免某些特定于环境的文件和目录,但不知道如何在我的实时站点上进行设置并确保所有内容都正确同步。

我是否应该从我的存储库中检查 trunk/magentoo 的基本代码副本到我的实时站点空间,然后运行安装,然后将 svn 设置为忽略 local.xml,并假设它们是相同的,除了地方差异?

此时我只是不知道如何继续,并且不愿意做出任何猜测,以防在不久的将来不得不清除所有内容并重新开始。

作为旁注 - 我还需要为另一个子域创建代码的“演示”分支;向人们展示作为概念验证。当我到达那座桥时,我可能会穿过那座桥。也许当我完成这项任务时,一切都会有意义。

tl;dr 版本 - 如何使用 SVN 管理 Magento 开发&实时代码&Db?

感谢大家花时间阅读和回复!

最佳答案

首先要做的是检查程序的安装版本。这样,存储库中的程序副本就是您可以实际使用的工作副本。然后您将需要忽略一些文件和目录,以便您可以运行其他环境。 local.xml 是一个很好的例子,但也设置了忽略以下内容:

/var/report/*
/var/log/exception.log
/var/log/system.log
/var/locks/*
/var/session/*
/var/cache/*
/var/tmp/*
/media/tmp/*

可能还有其他的,但这应该给你一个好的开始。如果您认为可能会对 local.xml 进行更改(并且确实可能​​),请将 local.xml 复制到 local.xml.dist 并将 .dist 版本 checkin 存储库。当您在其他网站上结帐时,您仍然需要手动进行更改,但这样会更容易跟踪。

对于数据库,常见的做法是在开发环境中执行 mysqldump 并将其也保留在存储库中。

mysqldump -u 用户 -p 数据库 > mysqldump.sql

您必须输入该密码。现在,存储库中的副本是该网站的完整副本。要设置另一个环境,您需要检查整个代码库,然后将 MySQL 文件导入数据库。

请记住,当您执行此操作时(以及任何时候您更新存储库中的数据库,然后想要更新其他环境中的更改),您将需要更改数据库中的 {base_url} 和 {secure_url}。我见过一些环境,开发人员创建脚本来自动完成此任务。

最后,尝试对网站的开发副本进行所有更改,因为这将有助于保持数据库同步。如果您对 Live Copy 进行更改,但至少没有在开发中反射(reflect)出来,您可能会在稍后使用转储之一意外地覆盖它们,然后想知道您的功能去了哪里。

希望有帮助。如果您还有其他具体问题,请告诉我。

谢谢, 乔

关于svn - Magento 和 Subversion (SVN) - 开始构建开发环境吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2058617/

相关文章:

ios - 前景和背景,哪些应用程序在哪里?

windows - 在 SVN 中如何覆盖自动 Windows 域身份验证

svn - Desktop 是作为 SVN 工作副本创建的。如何恢复该状态

php - magento 前端突然 503 - 如何调试

c++ - 使用 Visual Studio 开发 C++ for Unix

git - 电子表格宏的版本控制

java - Eclipse, JAR Export正在打包svn文件

svn - 获取当前版本号和先前版本号的 svn diff 的命令

Magento 2 如何在报价项目中设置自定义数据/选项?

wordpress - 如何将 Magento 产品集成到我的 WordPress 网站中?