使用 Subversion 构建 PHP 项目的生产版本

Posted

技术标签:

【中文标题】使用 Subversion 构建 PHP 项目的生产版本【英文标题】:Making a production build of a PHP project with Subversion 【发布时间】:2010-09-05 13:45:55 【问题描述】:

如果您使用 php(或者我猜是任何编程语言)并使用 subversion 作为源代码控制,有没有办法让您的项目(例如):

C:\Projects\test\.svn C:\项目\测试\文档\ C:\Projects\test\faq.php C:\Projects\test\guestbook.php C:\Projects\test\index.php C:\Projects\test\test.php

并构建/复制/不管它,以便清除某些文件并成为:

C:\Projects\test\faq.php C:\Projects\test\guestbook.php C:\Projects\test\index.php

自动?我已经厌倦了创建一个分支,然后遍历分支并删除所有“.svn”文件夹、docs 目录和我的原型文件。

我知道我可能可以使用 .bat 文件来仅复制我想要的特定文件,但我希望有某种方式可以使用 subversion 来伪忽略文件,它仍然会对其进行版本控制,但是在哪里您可以制作项目快照,忽略您告诉它伪忽略的文件。

我知道我在网上某处读到了一些功能,至少可以让您在没有 .svn 文件夹的情况下进行复制,但我现在找不到。

【问题讨论】:

【参考方案1】:

如果您使用 TortoiseSVN,您可以使用导出功能自动删除所有 .svn 文件。我认为其他 svn 的东西具有相同的功能。

右键单击根项目文件夹,然后选择TortoiseSVN > Export,并告诉它您想要.svn 空闲目录的位置。

【讨论】:

导出功能应该适用于任何客户端,但命令行客户端除外;这是一个标准功能。【参考方案2】:

第一次手动或使用现有方法复制所有文件。然后,因为我认为你在 Windows 平台上,所以安装 SyncToy 并在 subscribe method 中配置它,这将有效地单向复制自上次伪提交到生产中的文件已经在生产。如果你想添加一个文件,你可以手动复制它并恢复 SyncToy 操作。

【讨论】:

【参考方案3】:

好的,所以我的最终解决方案是这样的:

使用导出命令导出到与名为“deploy.bat”的文件在同一目录下的名为“export”的文件夹,然后我运行部署脚本(v1代表版本1,这是我目前的版本在这个项目中)这个脚本使用了 7-Zip,我已经把它放在我的系统路径中,所以我可以将它用作命令行实用程序:

rem replace the v1 directory with the export directory
rd /s /q v1
move /y export\newIMS v1
rd /s /q export

rem remove the prepDocs directory from the project
rd /s /q v1\prepDocs

rem remove the scripts directory from the project
rd /s /q v1\scripts

rem remove individual files from project
del v1\.project
rem del v1\inc\testLoad.html
rem del v1\inc\testInc.js

SET /P version=Please enter version number:

rem zip the file up with 7-Zip and name it after whatever version number the user typed in.
7z a -r v%version%.zip v1

rem copy everything to the shared space ready for deployment
xcopy v%version%.zip /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\v%version%.zip"
xcopy v1 /s /q /y /i "Z:\IT\IT Security\IT Projects\IMS\currentVersion"

rem keep the window open until user presses any key
PAUSE

我没有时间查看 SyncToy 解决方案,所以不要认为这是我拒绝该方法。我只是知道怎么做,没有时间去检查那个(现在时间紧迫)。

来源:

http://commandwindows.com/command2.htmhttp://www.ss64.com/nt/

【讨论】:

以上是关于使用 Subversion 构建 PHP 项目的生产版本的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 构建在 Subversion 控制下失败(使用版本)

Apache+SVN构建代码仓库平台

如何使用 Sonar 重​​新分析项目的完整历史?

如何使用 maven 从 subversion 导出项目?

Jenkins-Freestyle项目实战

使用 TeamCity 构建后如何部署?