用于远程SVN管理的简单Web前端?[关闭]


8

我们运行一个SVN存储库。我们的一些更高级的用户需要能够执行某些SVN管理,而无需依赖系统管理员。

他们需要能够执行诸如创建SVN存储库,删除SVN存储库以及执行“ svnadmin dump”和“ svnadmin load”之类的命令。

我们希望避免在这些FreeBSD机器上进行SSH访问,而是希望通过Web UI提供服务接口。

我正在寻找一个使用Perl或PHP的简单脚本(或少量脚本)。我找到了svnadmin(来自Jochen Hoenicke)或svnadmin.pl(来自doug munsinger),但是希望找到具有更大用户群的东西或其他人推荐的东西。

看起来Trac允许SVN管理,但是可能附带了我们需要的更多功能。


从您的措辞看来,您拒绝svnadmin仅仅是因为您认为它没有足够大的用户群。我读得正确吗?更重要的是,它是否符合您的需求?有多少人使用它甚至都不是一个因素。
John Gardeniers 2010年

@John Gardeniers:我们没有拒绝svnadmin或svnadmin.pl。但是,如果我在一个作者的项目和一个社区的项目之间进行选择,那么只要两个项目都符合我的需求,我通常都会选择后者。我倾向于信任社区支持的脚本,因为社区通常能够提出改进的优化,安全修复,回答问题等。也就是说,由于其简单性,我们可能会选择svnadmin这是可读的代码。并不是说svnadmin.pl有什么问题。
Stefan Lasiewski 2010年

Answers:


1

由于我是serverfault的新手,所以我的最新答案是:我们(大学综合管理学院)开发了自己的自助服务svn Web界面并将其作为开源提供。名为repocafe,可从http://repocafe.cs.uu.nl/获得。根据我们自己的需求建模,它可以处理单个或多个ldap服务器和来宾用户。也许对于“简单”有点矫kill过正。


感谢那。我们是政府研究机构,并与许多大学的员工一起工作。我们有时会与多个LDAP服务器等方面的工作
斯特凡Lasiewski

5

最后,我们选择了svnadmin(来自Jochen Hoenicke)。

这样做之所以成功,是因为它是一个简单的文件,包含400行代码,并且可以根据需要进行修复。不幸的是,它没有用户社区或很多建议。但这就是简单胜出。在6个月内问我是否建议;)


1

我认识的Trac和Redmine仅有两个能做到这一点;但是它们都更着重于项目管理,而不是简单的存储库管理。


谢谢克里斯。还有其他两个项目,它们的规模分别是Trac和Redmine,但是很难提取我们想要的有限功能。
Stefan Lasiewski 2010年


1

有“用户友好的svn” USVN。我想您会发现,社区为此类事情所做的大部分工作都是很小的-SVN确实得到维护,但是管理工具却并非如此。它们往往只写一次就可以永久使用,因此这些GUI工具也不需要更改。因此,在这种情况下,不必太担心社区的规模。


1

为了后代,我将回答我自己的问题。

我还找到了USVN,它是一个基于PHP的SVN管理工具。它经历了多次迭代,拥有一个用户社区和一个功能齐全的闪亮网站,

但是,USVN项目看起来有些陈旧。USVN是由一所大学的学生完成的项目,现在管理员已经毕业并继续寻找工作,可能不再有时间为该项目做贡献了。9个月内没有更新,bug跟踪器看上去并不活跃,并且论坛上充斥着垃圾邮件,看上去有些无人为之,所以也许社区没有那么活跃,而是它第一次出现。这并不全都是坏事,我希望这些人做得很好,但我担心会陷入一个过时的项目。

该项目使用200个文件(不计算Zend的2000个文件),这可能使我们难以审核和维护,并且可能比我们要查找的更加复杂。另外,该项目依赖Zend,后者在FreeBSD上遇到了政治问题


1

svn dev邮件列表中从12月9日开始的另一个建议,所以它是最近的!

请查看我新的用于管理SVN权限的开源工具!

管理在多个位置镜像的多个存储库的SVN权限可能是一项艰巨的任务。svnDashboard提供了一个简单的,基于Web的,支持AJAX的图形用户界面,可一次管理多个存储库和用户。

http://sourceforge.net/projects/svndashboard/

新的v1.1.3.140-现在包括数据库设置脚本!你们中有些人抱怨说缺少了,理应如此!现在包括它,以及简短的自述文件。

版本2即将推出:•增强的UI功能•支持多个镜像位置•存储库统计信息•错误消息•搜索•以及更多!



1

一年前,我们已通过新的svn发行版实现了此功能。效果非常好。

我们有多个开发团队,他们都有自己的项目。因此,我们将所有信息都导入了LDAP中,并授予团队经理对目录信息树(DIT)进行写访问的权限以进行颠覆:

ou = groups,ou = subversion,ou = apps,dc = example,dc = com ou =存储库,ou = subversion,ou = apps,dc = example,dc = com

上面的“组”组织单位是用于Subversion存储库/项目的自定义组。另外,我们将“ viewvc”与https一起使用以查看svn中的存储库。

apache服务器使用基于LDAP DIT创建的ACL文件(如上所述)为不同的用户和组提供读写访问权限。有一个cron每隔五分钟读取一次LDAP DIT并创建ACL文件。因此,如果添加了只读和读写用户/组的新存储库。cron将读取该内容并创建存储库,并将该信息合并到新创建的存储库的ACL文件中。这很整洁。您显然需要根据自己的需求创建LDAP模式。我们在LDAP中拥有所有用户/主机信息,因此,将其扩展为包含svn信息并不是什么大问题。

-F


我们碰巧已经在这里安装了大型LDAP。有趣的主意。我理解每个“ ou =存储库,ou = subversion,ou = apps,dc = example,dc = com”有一个SVN存储库是正确的吗?
Stefan Lasiewski 2010年

您仅将存储库或项目的名称存储在LDAP中。假设我在LDAP中有一个名为“ myWebRepo”的新存储库,显示为:cn = myWebRepo,ou = repositories,ou = subversion,dc-example,dc = com CRON实际上运行一个ruby脚本(您可能已经编写了在Perl甚至Bash中)。我实际上是用Ruby写的,很有趣。ruby脚本知道所有存储库都存在于“ ou = repositories,dc ....”中。它收集回购的所有名称和属性,即只读用户等。ruby检查回购是否已经存在。如果不是,则表示它是新的代表。它创建它并更新ACL文件。
Nikolas Sakic 2010年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.