我已经阅读了很多关于Subversion的文章,并将这些信息推送到一个Web服务器上,但是我仍然遇到困难。
我可以理解有关创build存储库和检出等的基础知识,但是我需要Web服务器部分的帮助。
我正在运行Apache和Subverion正在我正在开发的服务器上运行。
现在,我可以在**htdocs**文件夹中创build我的存储库以及我的实时networking文档,或者在htdocs文件夹之外创build它。
一个网站的多个域:别名或redirect?
使用Apache POI创buildExcel图表
安装Apache Airflow后出错
php文件自动改名为php.suspected
无法启用PHP的LDAP,即使我编辑了php.ini和php_ldap.dll是在正确的地方?
一旦我有了我的存储库,我将新创build的存储库导入到我的活动web文件夹中,该文件夹允许我将文件调用到本地机器上进行编辑,然后将它们提交给开发服务器。
我想首先知道正确的方法,其次,我如何自动将文件从新更新的存储库移到活动的Web文件夹?
请任何build议,我一直在寻找很长一段时间。 谢谢
编辑
有无论如何,你可以帮助我的后提交脚本,我想如果我能得到这个工作,我将能够实现我所需要的。
我希望能够对本地代码进行更改,然后在完成提交时将其发送到存储库,然后自动发送到htdocs文件夹。
如何在Apache FOP中设置默认语言
mod_rewrite $ _GET
是否有可能certificate在PDFBOX文本?
如何在.htaccess文件中限制/禁止访问特定的文件types,例如.js .css?
Ubuntu + SVN:无法打开请求的SVN文件系统
存储库的文件夹结构标准通常由至少一个“trunk”和“branch”文件夹组成。 这是因为Subversion允许你创建一个分支(拷贝中继并允许并发提交),所以你可以使用你的网站的“版本2”。
就个人而言,我不会在htdocs文件夹中创建您的回购,我会做的。 我认为一个好的结构可能是
repo - trunk - htdocs - branch - htdocs
这样你就可以控制htdocs文件夹以外存在的库,这是主要网络系统中常见的功能,可以阻止公众访问私有库。 例如,Smarty采用了这种方法,把一个目录放在htdocs文件夹的上面。
这个堆栈溢出问题的接缝,以涵盖你想要做什么: 我如何使用提交后的挂钩复制提交的文件从SVN的Web目录?
我不确定你想要做什么,但是SVN(源代码管理系统)和持续集成系统(如巡航控制系统或团队城市)之间是分开的。
你可以用apache设置SVN over HTTP,但这与将你的web解决方案部署到一个活动的服务器是不一样的。
SVN中没有任何东西可以自动将解决方案部署到Web服务器上。 这需要使用自动构建和部署方案完成,最好使用CI系统完成。
因此,您可以在每次提交时手动签出对部署文件夹所做的更改,也可以设置一个CI系统将其检出,并在每次提交时运行测试并将其部署到Web服务器。
我已经使用CC.NET和团队城市来做到这一点; 他们都在一些设置工作正常。
我们已经提交了脚本提交脚本,这个提交脚本每次提交时都会将SVN的内容导出到Apache目录。 放置代码的默认位置是我们的开发和测试网站。
通过提交中的可选注释,我们导出到生产服务器。
我发现在TortoiseSVN帮助文件(TSVN-PDF文件)中有很多关于你的问题的很好的文档。 那是我所有问题的起点,以及如何使用SVN设置所有的东西。 即使它是为Windows写的,它也描述了如何用Apache配置SVN等等…
也许你不想每次在你的存储库中检入一些东西时更新你的网站。 为了更新库和实时网站,你可以使用构建脚本(如果你用ASP.NET编写你的网站,也许使用NAnt )。
您需要开始将您的Web服务器和SVN存储库视为两个完全不同的东西。 SVN只不过是存储文件而已,取决于你决定将哪个版本的文件存储在你的网站目录以及什么时间。
最常见的方法是在版本库中保存稳定的版本(称为标签),可选地给这些标签一个版本号,然后确保最新的标签总是被导出并复制到您的网站目录中。 执行回滚到较早版本是非常容易的这种方式。
只是另一个说明…
您可以检出最新版本来更新服务器或进行导出。 如果你签出,你将拥有所有的Web访问目录.svn目录,所以一定要隐藏那些使用适当的方法为您的Web服务器(如.htaccess的Apache)或做一个导出,所以你不到处都有.svn目录。