使用Subversion进行PHP项目的生产构建

时间:2008-08-08 12:57:56

标签: php svn scripting tortoisesvn build-process

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

  

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

并构建/复制/不管它如何删除某些文件并成为:

  

C:\项目\测试\ faq.php
  C:\项目\测试\ guestbook.php
  C:\项目\测试\的index.php

自动?我厌倦了制作一个分支,然后浏览分支并删除所有“.svn”文件夹,docs目录和我的原型文件。

我知道我可能会使用.bat文件来复制我想要的特定文件,但是我希望有一些方法可以使用subversion来对一个伪忽略文件进行排序,然后它仍然会对它进行版本化,但是你可以制作项目的快照,忽略你告诉它伪随意的文件。

我知道我在线阅读了一些关于某些功能的内容,至少可以让你在没有.svn文件夹的情况下复制,但我现在找不到它。

3 个答案:

答案 0 :(得分:6)

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

右键单击根项目文件夹TortoiseSVN>导出并告诉它你想要的.svn免费目录。

答案 1 :(得分:2)

这是一个古怪的口香糖和鞋子的想法:

首次手动或使用现有方法复制所有文件。然后,因为我把它放在Windows平台上,安装SyncToy并在subscribe method中配置它,这将有效地单向复制自上次伪提交到生产以来所做的更改对于已经在生产中的文件。如果要添加文件,只需手动复制即可恢复SyncToy操作。

答案 2 :(得分:1)

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

使用export命令导出到名为“export”的文件夹,该文件夹与名为“deploy.bat”的文件在同一目录中,然后运行部署脚本(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.htm
http://www.ss64.com/nt/