好的独立svn客户端

时间:2009-06-10 09:36:53

标签: php svn cvs wamp

我目前正与合作伙伴一起开展PHP项目。

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

如果我可以通过网络界面操纵SVN客户端,那将是一个很大的好处。

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

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

有什么建议吗?

7 个答案:

答案 0 :(得分:7)

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

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

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

明确的人工签到确保您只签入有效的内容(通常)并让您提供有价值的签到评论。

然后可以使用源控制存储库中的已知正常版本更新服务器。

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

答案 1 :(得分:1)

如果我说得对,你的意图是将SVN用作版​​本化的自动备份系统。如果是这种情况,最直接的事情是使用文件监视工具然后调用svn命令行客户端以获取更改的文件以将它们提交给SVN。

答案 2 :(得分:1)

我还没有尝试过,但SVN-Monitor可能有用。您将需要上面提到的ToirtoiseSVN客户端来使用它。

答案 3 :(得分:1)

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

我们分2步完成。

当我必须开发软件的一部分时 - 我分支主干并在其他人做同样的事情时修改它以完成他们的任务。然后我们合并分支并测试它们。测试后,正在通过该合并补丁更新中继。

最后cronjob(或手动)运行脚本,将资源设置为维护模式,删除htdocs并导出新的trunk,然后根据需要chown / chmod所有内容。

我们可以随时从管理员面板运行此脚本,如果我们需要快速恢复错误更改,则可以设置必要的修订...

答案 4 :(得分:0)

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

但要解决您的直接问题,您可能需要某种实用程序来监视两端的文件更改,然后在检测到更改时立即调用svn client命令

答案 5 :(得分:0)

我认为这不可能或那么容易。

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

在zip文件中收集htdocs文件夹的计划作业,通过文件名对其进行版本化,然后将其上传到某个远程存储,这可能是一种更简单,更快捷的方法来管理它。

答案 6 :(得分:0)

我不知道svn post-commit hook是否可能有用,给出正确的脚本?您可以自动将当前修订版(即刚刚调用挂钩之前创建的修订版)的更改部署到生产系统。我认为这是你要求的那种东西?

我不得不说,我同意这里的其他一些评论,关于你提出的建议是不可取的。我建议您手动启动部署过程的解决方案,然后从存储库中提取源。

如果我误解了道歉。

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