我对配置文件和部署有一个特殊的问题。当我部署我的项目时,它最终会转移到两个不同的分支:暂存和生产(在此处使用 SVN)
我从项目的本地工作副本创建分支。这最终会覆盖配置文件的暂存和开发副本,因此我必须手动进入并在每次部署时进行正确的更改。
从 SVN 中完全删除配置文件是否有意义,因为它是一成不变的?还是有其他方法可以做到这一点?
我对配置文件和部署有一个特殊的问题。当我部署我的项目时,它最终会转移到两个不同的分支:暂存和生产(在此处使用 SVN)
我从项目的本地工作副本创建分支。这最终会覆盖配置文件的暂存和开发副本,因此我必须手动进入并在每次部署时进行正确的更改。
从 SVN 中完全删除配置文件是否有意义,因为它是一成不变的?还是有其他方法可以做到这一点?
我通常做的是在存储库中维护多个配置文件,但不在实际名称下(例如,在从部署中排除的专用文件夹中)。然后我的部署脚本将适当的配置文件复制到最终位置。所以我的部署程序是:
您不想从 SVN 中删除文件 - 因为这将导致它在您部署时从服务器中删除它们。
SVN 提供了一个名为 svn: ignore 的功能,您可以使用它从版本控制中排除一个或多个单独的文件,或者匹配要忽略的文件名模式。基本上,忽略文件意味着 SVN 会将它们保留在每个工作副本或部署服务器上,因此它们在每个地方都可能不同。
有两种方法可以从命令行使用忽略。
A:编辑目录的忽略属性。
cd trunk/blah
切换到包含您要忽略的文件的目录。svn propedit svn:ignore .
编辑此目录的忽略属性。这将打开一个文本编辑器。*.txt
会导致 SVN 忽略所有以 .txt 结尾的文件。添加一行config.php
会导致 SVN 忽略 config.php 文件。svn commit -m "New Ignores"
B:使用单个命令在目录上设置 SVN 忽略属性。
cd trunk/blah
切换到包含您要忽略的文件的目录。svn propset svn:ignore config.php .
设置 SVN 忽略属性以忽略 config.php 文件。svn commit -m "New Ignores"