2009-06-10 180 views
2

我目前正在与PHP项目合作伙伴合作。好的独立svn客户端

我们都直接编辑本地服务器(所有文件存储在服务器上,它也运行WAMP堆栈)。 我正在寻找一个SVN客户端,它将监视并保存对htdocs文件夹的所有更改,并通过Web更新远程SVN存储库。

如果我可以通过网络界面操纵SVN客户端,那将是一笔巨大的奖励。

例如,假设我将file1.php保存到服务器。它会在svn网站上更新file1.php。 如果我突然发现我对该文件的最新修订版本不好,我可能会转到服务器(或使用我的计算机上的某个Web界面),并用旧版本替换file1.php

我不想只在本地机器上安装SVN服务器,因为我总是希望通过最新的更改远程保存副本。

有什么建议吗?

回答

7

我不知道有任何软件可以做到这一点。使用标准命令行svn客户端来编写脚本可能并不困难。即有一个定期运行的批处理/ shell脚本,并检查所有已更改的内容。

这就是说,我会非常强烈建议不要这样做!

源代码控制的正常工作模式是每个人都有一个本地副本,然后检查他们对中央存储库的更改。

明确的手动签入确保您只检查可以工作的东西(通常),并让您提供宝贵的签入评论。

然后服务器可以使用来自源代码控制库的已知良好版本进行更新。

听起来像你正在生产系统上工作。我强烈建议考虑使用开发环境和上述方法。

+0

你能推荐一个系统,我的本地服务器会自动从我的SVN仓库下载最新的更新吗? – daniel 2009-06-10 09:52:04

+0

http://cruisecontrol.sourceforge.net/ – 2009-06-10 09:54:29

1

如果我得到这个权利,你的意图是使用SVN作为版本化的自动备份系统。如果是这种情况,最简单的事情就是使用文件监视工具,然后调用svn命令行客户端查看已更改的文件,将它们提交给SVN。

0

对于您提出的场景,您可能需要考虑一个分发源代码控制解决方案(Bazaar,Git,Mercurial),其中您有两个提交者针对两个代码库工作。然后,您可以进行本地提交,并根据需要推送更改到两个目标。

但要立即解决问题,你可能需要某种形式的实用程序,能够监控两端文件的更改,然后只要它检测到更改

0

调用适当的svn客户端命令,我不相信这是可能或太简单。

当您将一个文件夹放在客户端的SVN下时,会创建一个特定的文件夹结构以跟踪哪些文件被锁定,更改等等。试图更新服务器的SVN文件夹,而不先检查文件或编辑文件,而不检查它们(就像你想做的)是一个坏主意。

预定作业收集您的htdocs文件夹中的zip文件,版本通过文件名,然后把它上传到一些偏远的存储也可能是管理这是一个更容易和更快的方式。

1

我还没有尝试过,但SVN-Monitor可能是有用的。您需要上述的ToirtoiseSVN客户端才能使用它。

1

我还没有发现任何(我也有同样的麻烦)。

我们通过2个步骤完成。

当我要开发的软件部分 - I支干线和修改它,当其他人做同样的完成自己的任务。然后我们合并分支并测试它们。测试完成后,树干正在被该合并补丁更新。

最后的cronjob(或手动)运行脚本,设置资源修的模式,根据需要删除的htdocs和出口有新干线,然后CHOWN/CHMOD一切。

该脚本可以运行从管理面板任何时间,设置neccesary修订如果我们需要恢复迅速变化马车...

0

我不知道,也许在SVN post-commit hook可能是一些使用,给出正确的脚本?您可以自动将当前修订版本(即在调用挂钩之前创建的版本)的更改部署到生产系统。我想这就是你要求的那种东西?

我不得不说,我与这里的一些其他意见你提议什么的不可取岬同意。我建议您在其中手动启动部署过程的解决方案,然后从存储库中提取源代码。

道歉,如果我误解了。

编辑:重新阅读此问题,我认为您正在寻找自动提交到存储库,而不是自动部署。在这种情况下,其他人提出的预定脚本解决方案是我能想到的最好的方法。对那些建议那些+1的人。