如何从Oracle PL / SQL访问Subversion?

时间:2008-09-26 15:16:29

标签: oracle svn plsql

对于政府机构,我们构建了一个用PHP和Oracle开发的发布管理系统。此应用程序的数据存储在数据库表中,并使用PL / SQL包和过程进行处理。

发布管理流程广泛基于来自Subversion存储库的元数据。我们通过内部Oracle JVM从PL / SQL访问存储库,以在驻留Oracle实例的unix服务器上执行svn命令。 svn命令的结果以XML格式接收,并在PL / SQL处理之前进行解析。以这种方式访问​​Subversion对于频繁重复使用并不是非常有效。

目前,我们所做的是在Subversion存储库中的每次提交时将Subversion元数据存储在数据库表中(通过Subversion挂钩)。我们提取每个Subversion事务的日志信息,并将其保存在一些oracle表中。然后,我们可以使用普通的SQL查询获取Subversion元数据。

有没有更好的方法从PL / SQL访问Subversion?

4 个答案:

答案 0 :(得分:2)

如果使用Oracle的Java JVM,您可以尝试使用SVNKit从Java本地与SVN服务器进行通信,而不是向操作系统执行命令来执行命令。

答案 1 :(得分:2)

我认为基本流程是有道理的。我建议做实验,看看性能瓶颈究竟在哪里,然后从那里拿出来。例如,它是否从PL / SQL过渡到Oracle JVM?是JVM shelling出来执行svn命令吗?是svn往返旅行吗?它是解析XML吗?

比方说,这是svn往返。也许你可以在oracle机器上有一个进程来缓存来自svn服务器的答案,以便有时可以避免往返?也许svn往返可能是异步的?

但是,就像我说的那样,你需要知道瓶颈在哪里。

答案 2 :(得分:1)

我也在寻找一个API来整合Subversion和Oracle。我需要能够将Oracle PL / SQL对象(过程,包)拉入Subversion,然后一旦对对象进行更改就应该将它应用于Oracle数据库中的那些对象。

答案 3 :(得分:1)

另一个解决方案是使用保留在ORACLE和SVN之间的软件,并将PL / SQL与源同步。

这是其中一个可以由cron启动的程序: https://sourceforge.net/projects/dbcode-svn-sync/