基于SQL的存储与SVN

Noi*_*ich 17 c# sql svn

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

  1. 在用户之间共享文件.
  2. 支持版本.
  3. 启用按标签搜索并支持更多查询,例如"X组人员创建的所有文件"
  4. 针对不同的人的不同观点(团队X看到自己的内容,没有其他人可以看到他们的内容).

我不确定什么是最好的,所以:

  • 我可以使用标签搜索SVN(当然不是SVN标签,更像是stackoverflow的标签)吗?
  • 是否有任何意义上的重复 - 包括SVN和SQL - 内容?
  • 还有其他建议吗?

编辑
应用程序使用户能够编写稍后执行的验证测试.这些测试由不同站点上的许多组共享.我们需要出于常规原因进行版本控制 - 撤消更改,突然删除等.这需要SVN.
问题是,我们还想添加选项以查找标记为"紧急"并且现在已执行的所有测试,以便进行跟踪.

我希望我现在更清楚:)

编辑II
我遇到了SvnQuery它看起来不错,但是它有一个我可以使用的API吗?我宁愿在我自己的GUI中使用他们的机制.

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

谢谢!

gbj*_*anb 2

你可以使用SVN。

  1. 共享文件:明显且简单。它还支持二进制文件可能需要的集中锁定。
  2. 版本。明显地。
  3. 搜索...现在我们正进入困难的境地。有一个 Lucene 插件允许对您的存储库进行 Web 搜索 - opengrok、svnquery 或 svn-search。这些将是您最好的起点。
  4. 无法阻止人们查看 svn 存储库中的内容,但您可以阻止他们访问它。我不知道是否可以轻松扩展访问控制以提供隐藏文件夹,您可以询问 svn 开发人员。

有一些很棒的 AP​​I 可用于使用 SVN,可能最容易访问的是 SharpSVN,它为您提供了 .net 程序集,但也有 Python 和 C 以及各种可用的 API。

如前所述,有一些位于 SVN 之上的 Web 工具可以提供对 SVN 的查看,有 Trac、Redmine 和几个存储库查看器(如 webSVN),因此有大量示例代码可用于编写您自己的代码。


您会使用像 git 或 Mercurial 这样的 DVCS 吗?我不会。尽管它们本身具有良好的机制,但听起来它们并不是您想要的。这些允许人们独立工作并在点对点的基础上与其他人共享(尽管您可以设置一个“中央”存储库并作为每个人的同伴使用它)。它们不是以集中、共享的方式工作。例如,如果你和我都在本地编辑一个测试用例,然后推送到中央存储库,我们可能会遇到合并问题。如果文件是二进制文件或其他不可合并文件,我们将在合并时遇到问题。在这种情况下,您会遇到丢失某人的更改的问题。这是在您的情况下不使用 DVCS 的主要原因之一。


如果您尝试将共享测试放在一起,您是否查看过一些已经执行此操作的应用程序。我最近注意到TestRail听起来就像你正在尝试做的事情。它不是免费的(唉)但是很便宜。