简便的方法在PHP中嵌入页面中的SVN修订号?
在此页面的右下角请注意它具有SVN修订ID吗?我假设这是动态的. 我很想将其添加到我的某些网站上,就像来源的评论以确保CODE推动通过. 注意:您还可以假设所讨论的网站的工作目录是相关存储库的SVN结帐. 编辑:我正在寻找全局修订号,而不是我正在查看的文件的修订号. 解决方案 您可以使用颠覆没有全球修订的概念;相反,您必须递归浏览工作副本才能找到最高的修订号. svnversion为您做到这一点. 其他解决方案 关键字订阅方法不可靠,因为它将提供文件的修订,而不是您正在部署的整个代码库,我认为这是您所追求的. 通常,我会使用ANT从颠覆中部署,在构建脚本中,我会使用替换任务在布局模板或公共标头文件中用我部署的代码库的修订号替换了修订令牌 - 见下文.虽然如果有人有更好的方法,我想听它!
0 2023-05-30
编程技术问答社区
PHP网站部署建议
我目前对我的团队采用的部署方式感到非常困扰……这是非常老式的,我知道这不太好.但是我不知道如何更改它,所以请给出一些建议... 这是我们当前的设置: 2个网络服务员 1个数据库服务器 1个测试服务器 当前部署改编 我们在测试服务器上开发和工作,每个更改都可以手动上传到测试服务器. 当更改或功能完成后,我们将更改提交为SVN存储库. 进行更改后,我们将更改上传到第一个Web服务器,在该网络服务器中将每分钟运行一个cronjob,以在服务器之间同步文件. 就像同步作业启动一样,每当我们上传文件时,同步版的文件都会损坏,因为它只有半上费.另一件事是,每当有部署故障时,很难恢复.这些基本上是我面临的问题,我该怎么办? 此外,由于第一个网络服务器上有文件,需要随时与其他服务器同步,因此Cronjob出于原因. p/s:对不起,我忘了提到,SVN服务器是托管的.我们对它没有太多的控制,但我相信我可以编辑钩子... 解决方案 使用部署框架,例如
0 2023-05-30
编程技术问答社区
添加目录忽略到PHPStorm
如何将文件夹添加到忽略列表中?在phpstorm中,i右键单击"文件夹" - > subversion-> set属性我选择属性名称:svn:忽略并将属性设置为folder1/folder2/*,希望该文件夹中的所有文件都会被忽略,但是当我时是否要在列表中签入该文件夹中更改的文件进行签名.如何将整个文件夹从签到中排除?我正在使用Windows7计算机(如果那很重要) 我正在使用phpstorm 6.0.1 解决方案 右键单击目录 - >标记目录为 - >排除 其他解决方案 尝试在文件夹上右键单击,然后颠覆 - >忽略.
0 2023-05-30
编程技术问答社区
如何编程获得SVN修订号?
喜欢这个问题 ,但无需实际查询SVN服务器.这是一个基于网络的项目,所以我认为我将仅将存储库用作公众视图(除非有人可以建议我为什么这是一个坏主意).我认为此信息位于某个地方的.svn文件夹中的文件中,但是在哪里以及如何解析?我想做一些这样做的事情,在右下角有修订. python或PHP中的代码如果您手头或朝正确的方向上的一个点表示赞赏. 解决方案 颠覆包括您可以从Python调用svnversion: import subprocess def svnversion(): p = subprocess.Popen("svnversion", stdout=subprocess.PIPE, stderr=subprocess.PIPE) (stdout, stderr) = p.communicate() return stdout 其他解决方案 我可能会使用后签名挂钩将版本编号写入网站某个地方的文本文件,然后在加载页面时读取该文件.
0 2023-05-30
编程技术问答社区
PHP:exec(svn commit)没有返回任何错误,也没有工作。
目前,我正在将PHP的文件写入目录中,我添加了该目录(正常工作),然后当我尝试执行SVN提交其工作不起作用或返回任何错误代码时.有人对此有任何想法吗? $tmp = exec('cd '.$this->build_locations[$this->type].'; svn commit --username user --password pw; ls', $output); 我将CD执行到目录(在这里做得很好),然后我在目录中确认其LS. 我也尝试了: svn help 返回我所有命令都很好(所以我知道这不是找不到SVN命令的问题. 我已经将文件777确认可以执行. 编辑的代码: $output = array(); $tmp1 = exec("cd ".$this->build_locations[$this->type].";"); $tmp = exec("svn commit ".$this->build_lo
0 2023-05-29
编程技术问答社区
PHP源控制服务器
i与SVN客户端兼容的基于PHP的源控制"服务器"? 我想在托管服务器上托管我的SVN,但是当前主机不允许我启动任何过程或安装任何软件 解决方案 您可以拥有PHP前端,但您仍然需要在某个地方运行SVN服务器. 其他解决方案 您可以尝试: 其他解决方案 不是我知道的. 您可以查看
2 2023-05-28
编程技术问答社区
通过浏览器从php脚本中调用svn更新是不工作的
我有两个脚本. 运行更新并调用shell_exec('svn Update')和shell_exec('svn st') 运行mysqldump shell_exec('mysqldump params') SVN脚本没有运行更新命令,svn st是打印结果,而不是svn update 我在调用SVN更新时尝试声明参数 'SVN Update'. dir. ' - 使用myuser -password mypasswd -non Interactive'; - 依然没有 使用大多数参数 如果这与二进制/权限/组有关,我看不到. mySqlDump命令正常工作并且正在生产文件,所以为什么不更新文件系统的SVN? 请不要建议在PHP中使用Core SVN类.这不是一个选择,我对服务器没有完全控制,并且该模块没有可用. 感谢您的帮助, -hbt ps:重要的在这里提到的事情.通过命令行调用脚本工作.仅在通过Web浏览器调用时才失败. 解决
0 2023-05-28
编程技术问答社区
如何在SVN中存储配置参数?
像许多项目一样,我们部署到许多环境,质量检查,UA,开发人员中继线等. 在SVN中存储敏感配置参数的最佳方法是什么?或者,您是否应该不在服务器上的凭据? 主要是,我们不想向每个开发人员展示生产证书. 解决方案 我宁愿提供配置示例,而不是真实的配置文件.在我的项目中,根目录中有setup.default.php文件,每个用户都需要复制为setup.php并修改以匹配本地环境.此外,为了防止签入自定义设置文件,在.svnignore中有一个规则. $ echo 'setup.php' > .svnignore $ svn propset svn:ignore -F .svnignore . 其他解决方案 这也是我遇到的问题.我认为答案是检查模板(例如您使用setup.php.default),然后使用自动工具,例如 phing 是为了推动发展.如果您在setup.php文件中使用可识别的令牌,则PHING将能够用单个服务器值替换这些令牌.此外,轻松的一步直播将是一
0 2023-05-28
编程技术问答社区
从版本管理mysql模式开始,不做过多的工作。好的解决方案?
我已经到达了我意识到必须开始对数据库模式和更改进行版本的版本.因此,我阅读了有关该主题的现有帖子,但我不确定如何进行. 我基本上是一家人,不久前我什至没有为我的代码使用版本控件.我使用Aptana(IDE)和SVN(带有乌龟)的Windows环境.我从事PHP/MySQL项目. 什么是一种有效且足够的(没有过高的)方式来版本我的数据库schemata? 我在某些项目中确实有一两个自由职业者,但我不希望有很多分支和合并.因此,基本上,我想跟踪并发式示意图. [edit] 暂时的解决方案:就目前我决定,每当我要提交标签(稳定版本)时,我只会制作一个带有必要的初始数据的模式转储(稳定版本).在当前阶段对我来说似乎就足够了.[/edit] [edit2]另外,我现在还使用了第三个文件,称为regrements.sql,我将所有更改与日期等放置,以便于在一个文件中易于跟踪更改历史记录.我不时将更改集成到其他两个文件中,然后清空增量.SQL[/edit] 解决方案
2 2023-05-28
编程技术问答社区
如何将一个网站部署到你的网络服务器上?
在我的公司,我们有一个由8个Web开发人员组成的,用于我们的业务网站(完全用PHP编写,但这没关系).小组中的每个人都在同一时间进行不同的项目,每当完成任务时,他们都会立即部署(因为这些天业务正在快速移动). 当前,开发发生在一台共享服务器上,所有开发人员都在相同的代码库上工作(使用RCS将"锁定"文件远离其他代码).当要进行部署时,将更改的文件复制到"登台"服务器,然后同步脚本将文件上传到我们的主要网络服务器,然后将其分布到其他9个服务器. . 非常高兴地,Web开发团队向我们寻求帮助以改善流程(在我们抱怨一段时间之后),现在我们建立开发环境的想法如下: 具有虚拟目录的开发服务器,因此每个人都有自己的代码库, SVN(或任何其他VC)跟踪更改 用于测试持有最新检查的中央服务器 现在的问题是:我们如何设法将更改的文件部署到服务器上,而不会意外地上传其他项目的错误?我的第一个想法是简单地从存储库中导出最新的修订,但这不会完全控制文件. 您如何管理这种情况
0 2023-05-28
编程技术问答社区
我可以设置Eclipse来显示代码的变化吗
我以前曾在颠覆(SVN)上使用过Netbeans,我喜欢它向我展示了自上次提交以来我更改的内容,使用了左边的颜色. 月食也可以做同样的事情吗?我已经安装了子插槽. 解决方案 访问窗口 - >首选项 - >常规 - >编辑器 - >文本编辑器 - >快速diff,并启用 启用快速diff 显示概述统治者的差异 其他解决方案 颠覆性和子开林都可以在项目资源管理器中显示更改的文件,以及历史中版本之间的差异.我目前使用颠覆性并对它感到满意(尽管第一次安装它很痛苦.) 其他解决方案 也有类似的问题.事实证明,Eclipse中的SVN标签装饰没有启用. Preferences: General/Appearance/Label Decorators 这篇文章帮助了我: svn-connected项目未在eclipse 中显示版本信息
0 2023-05-28
编程技术问答社区
如何正确部署PHP应用程序?
如何正确部署从开发到生产的应用程序以及如何处理多种站点配置. 我所有的开发都是通过SVN完成的,位于VAR/SVN/MYAPP/TRUNK和 实际生产代码在/var/www/myapp中. 我将本地计算机的最新代码查看为" myapp_latest_svn"的目录. 我的主角settings.php中有特定地点的代码,其中H_path = http://myapp.example &DB配置设置db_host,db_user_name和db_password,您所知道的 本地计算机设置(localhost/myapp.example只是一个Apache别名)和生产(实时网站在myapp.example上运行)服务器. .htaccess文件也与生产服务器上的文件不同.简而言之,开发和生产之间存在许多差异. 我将所有工作都保留在SVN中.每天早晨,我使用SVN更新,将最新代码更新为本地SVN存储库. 当我准备上线时,我会使用SVN COMMAT构建版本. 然后,在版
2 2023-05-28
编程技术问答社区
在使用SVN的时候,我怎样才能用密码保护开发,但不保护直播?
我们有这个工作流程: 开发是在dev.example.com上完成的 更改授予SVN,然后导出到实时站点. 实时网站位于www.example.com 我想密码protect protect dev.example.com,但是如果我使用.htaccess进行. 我们正在使用Dreamhost共享托管,我有SSH访问权限,但是我无法编辑Apache的配置.conf文件. 我们不想在svn中使用单独的.htaccess文件,用于dev&live和忽略.htaccess. 那我该怎么办? 解决方案 如果在服务器上启用了mod_setenvif,则可以将其添加到.htaccess文件: SetEnvIfNoCase ^HOST$ .+ unauthenticated SetEnvIfNoCase ^HOST$ ^dev\.example\.com$ !unauthenticated AuthType Basic AuthName "Secured" AuthUs
0 2023-05-28
编程技术问答社区
如何开始从subversion库中部署PHP应用程序?
我听过"部署应用程序"一词,听起来比将单个更改的文件上传到服务器更好/更容易/更可靠,但是我不知道从哪里开始. 我有一个Zend Framework应用程序,该应用程序正在版本控制下(在颠覆存储库中).如何"部署"我的应用程序?如果我有一个我不想覆盖的"上传"目录,该怎么办? 我通过第三方托管了我的应用程序,所以除了FTP之外,我不知道很多.如果其中任何一个涉及登录我的服务器,请说明该过程. 解决方案 自动部署 +将测试运行到登台服务器被称为连续集成.这个想法是,如果您检查打破测试的东西,您将立即收到通知.对于PHP,您可能需要查看 xinc 或 phpundercontrol 您通常会不是想要自动部署到生产中.正常的事情是编写一些使任务自动化的脚本,但是您仍然需要手动启动.您可以使用框架,例如 phing 或其他构建 - 托尔(或其他构建型)(一个受欢迎的选择是 capistrano ),但是您也可以将一些壳牌拼凑在一起.我个人更喜欢后者. 根据您的应用
0 2023-05-28
编程技术问答社区
有什么免费的cmd-line脚本可以重新格式化PHP源代码吗?
我使用的是前签名的挂钩来检查我们的员工提交的薄荷 - 检查PHP来源,每个人都对结果感到非常满意.员工已经同意,重新格式化代码以遵循(可自定义的)样式规则是有用的.是否有可以从命令行执行此操作的FOSS脚本? 解决方案 正在寻找同一件事,只是遇到了梨存储库中的PHP Beautfier包: 希望这会有所帮助! 其他解决方案 您可以按照您希望的方式编辑php_cs中的嗅觉过滤器.另一方面,我喜欢默认设置,这至少是编写更好的代码的好开始. 其他解决方案 不是一个答案,但是由于您提出了它,因此应该是命令行PHP美容机.在此之前 问题是,在不为PHP语言编写解析器的情况下,写类似您想要的内容非常困难.因此,如果有人编写这样的工具,它也应该提供绒毛功能,独立于平台并在非常不受限制的许可下发布. 考虑到上述内容,我认为这就是为什么一个人(当前)不存在的原因(我可以找到).我将其发布为回答,要感谢您的想法,这也是为什么这是CW.
0 2023-05-27
编程技术问答社区
git submodule svn external
假设我有3个GIT存储库,每个存储库都有lib和tests文件夹.所有3个存储库都是我想要成为一个包装的一部分,但是将存储库保持分开对我来说很重要. 我是来自SVN的GIT的新手,所以我一直在阅读submodules以及它们与svn:externals的不同之处.在SVN中,我可以有一个 lib/vendor/package 目录,内部package我可以设置3个指向我的3个存储库中每个库的每个外部,lib目录,像 一样正确地重命名 lib/vendor/package/a -> repo1/lib lib/vendor/package/b -> repo2/lib lib/vendor/package/c -> repo3/lib ,从我的理解来看,这是不可能的.我想念什么吗? 真的,我希望这可以通过两种方式之一解决. 有人将指出如何创建一个第四个GIT存储库,该存储库具有我上面提到的其他3个子模型(在根部我可以拥有a,b和c文件夹中) 有人
4 2023-05-27
编程技术问答社区
致命:无法从重定向中更新URL基础
$ git remote set-url origin https://demodev@servername.com/home/demodev/public_html/waqtpar.git` $ git push -u origin master` 致命:无法从重定向更新URL基础:要求: 解决方案 好吧,正如错误所说.您将获得404错误页面,这意味着找不到网站.当然,在这种情况下,git无法处理此重定向,因此抱怨. 您的URL简直是错误的.您是否想使用 ssh://demodev@servername.com/home/demodev/public_html/waqtpar.git 或 demodev@servername.com:/home/demodev/public_html/waqtpar.git 或 https://demodev@servername.com/> 其他解决方案 您可能使用浏览器URL而不是Git存储库克
4 2023-05-27
编程技术问答社区
SVN网站开发和部署解决方案
以下情况是:我们有多个具有不同命令线经验的开发人员,我们正在为网站提供部署解决方案.生产环境是2个Suse Linux盒.开发环境也是一个Suse Linux盒.每个开发人员都有/将在其主目录中使用SVN树的副本进行开发和测试. 目标是拥有一个易于使用且易于恢复的发行系统,该系统将与多个生产服务器一起使用.如果非WEB开发人员(仍然不在网络世界中的编码器)也可以轻松地恢复任何网站,那将是一个好处.在一个最佳世界中,发布与您要发布的网站上运行单个命令一样简单.此命令将更新生产服务器,并在唤醒中留下恢复路径. 我们当前的部署解决方案有点笨拙,很难恢复和缓慢作为污垢.我们目前使用SVN检查所有文件.然后,运行一个脚本,该脚本基本上在SVN中创建标签.然后,运行第二个脚本,该脚本进入两个生产服务器中的每个脚本并运行" SVN UP". 有什么建议? 解决方案 我是一个.net的家伙,因此在Windows World中与事物合作……尽管我每天使用的技术来管理构建流程,但来
0 2023-05-27
编程技术问答社区
PHP exec()没有在输出中返回错误信息
我试图以XML格式获得SVN命令的某些输出.当我输入有效参数时,输出是可以的.但是,当我输入错误的密码时,输出不会显示错误消息. 这是PHP代码: exec('/usr/bin/svn --username something --password something --non-interactive log -r HEAD --xml --verbose http://a51.unfuddle.com/svn/a51_activecollab/', $output); 这是我进入终端的输出: svn: OPTIONS of 'http://a51.unfuddle.com/svn/a51_activecollab': authorization failed: Could not authenticate to server: rejected Basic challenge (http://a51.unfudd
2 2023-05-26
编程技术问答社区