2011-05-11 59 views
17

我的团队正在开发一个新的应用程序(C#,.Net 4),它涉及共享用户内容的存储库。我们需要决定在哪里存储它。要求如下:基于SQL的存储vs SVN

  1. 在用户间共享文件。
  2. 支持版本。
  3. 启用标签搜索并支持进一步的查询,如“来自X组的人创建的所有文件”
  4. 针对不同人的不同观点(团队X看到了自己的内容,没有人能看到他们的内容)。

我不知道什么是最好的,所以:

  • 可以使用标签(当然不是SVN标签,更像是计算器的标签)我搜索过SVN?
  • 重复思考有没有什么意义 - SVN和SQL - 内容?
  • 其他建议?

编辑
该应用程序使用户能够编写他们后来进行验证测试。这些测试由不同站点上的许多组共享。我们需要定期进行版本管理 - 撤消更改,突然删除等。这需要SVN。
问题是,我们还希望添加选项来查找所有标记为“紧急”且现在执行的测试,以便进行跟踪。

我希望我自己更清晰现在:)

编辑II
我跑进SvnQuery看起来很不错,但它有一个API可以使用吗?我宁愿使用他们的机制与我自己的GUI。

编辑III
我的同事强烈支持只使用一个数据库,并基于忘记文件存储。他声称持久性更好(这是需要的 - 测试不仅仅是要执行的命令列表)。我很感谢在这个问题上的投入,因为我认为应该可以这样或那样做。

谢谢!

+0

我从来没有考虑过使用svn作为应用程序的文档库,但这个想法很有趣。 – 2011-05-11 16:03:22

+0

什么是性能要求,以及预期的档案大小。 – rerun 2011-05-11 16:13:01

+0

SharePoint是一个选项吗? – Brian 2011-05-11 16:50:04

回答

2

你可以使用SVN。

  1. 共享文件:显而易见。它还支持您可能需要的二进制文件的集中锁定。
  2. 版本。明显。
  3. 搜索 ...现在我们正陷入困境。有一个Lucene插件,可以让你搜索你的repo - opengrok,svnquery或者svn-search。这些将是你最好的起点。
  4. 没有办法阻止人们看到svn回购中存在的内容,但是可以阻止他们访问它。我不知道如果访问控制可以很容易地扩展提供隐藏的文件夹,你可以问问svn开发人员。

有一些伟大的API与SVN的工作,可能是最方便的是SharpSVN它给你一个.NET程序集,但有Python和C和可用的各种。

如前所述,有些网站工具位于SVN之上以提供视图,还有Trac和Redmine以及webSVN等多种回购查看器,因此您可以使用大量示例代码来编写自己的代码。


你会使用像git或mercurial这样的DVCS吗?我没有。虽然它们本身具有良好的机制,但它听起来并不像以前那样。这些允许人们自己工作,并在点对点的基础上与他人​​分享(尽管您可以设置一个“中央”回购并与其他人一起工作)。他们不以集中,共享的方式工作。例如,如果您和我在本地编辑测试用例,然后推送到中央回购站,我们可能会遇到问题合并。如果文件是二进制文件或其他非可合并文件,我们将合并问题。在这种情况下,你有一个失去一个人的变化的问题。这是一个,你的情况下不使用DVCS的主要原因。


如果您试图一起获取共享测试,您是否看过一些已经这样做的应用程序。最近我注意到TestRail这听起来像你想要做的。它不是免费的(唉),但它很便宜。

3

首先,考虑使用GIT而不是SVN。它速度更快,我认为它在你的用例中更合适:它被设计为分布式的,这意味着你的用户将能够在没有互联网访问的情况下使用它,并且你不会有任何与服务器通信有关的开销保存文件时。 “我可以在我的版本控制系统上执行基于标记的搜索/访问限制吗?”我可以在我的版本控制系统上执行基于标记的搜索/访问限制,还是我需要在顶部创建一个图层?“

如果是这样,答案是你需要一个顶层。一些已经存在,无论是基于网络的(例如Trac)还是基于桌面的(例如GitX)。他们不一定会实现你需要的东西,但是他们可以成为你寻求的一个很好的起点。

+0

是否可以 - 由于我们主要在公司内部工作,所以我不敢恭维。 SVN上面也有这样一个图层(用于桌面,而不是网页)? – Noich 2011-05-12 06:10:30

+0

另外,我不介意在上面实现一个图层。问题是,是否有可能以某种方式在SVN中标记文件,以便能够对它们进行查询? – Noich 2011-05-12 06:30:30

+0

Trac适用于SVN开箱即用,但是我仍然建议GIT,否则一旦存储库达到一定的大小,任何保存到您的文件的文件都将被抓取。是的,你可以设置/获取/删除svn属性文件。最好的我知道,但是,这些将不会使您能够根据其内容轻松查询文件/更改集:这是额外图层变得有用的地方。 – 2011-05-12 09:56:51