2010-09-01 68 views
0

我期待为我的团队实施源代码管理。出现的一个外部需求是“管理者/潜在客户”想知道谁检出了哪个文件以及何时检出。不是真正的锁,他们只是想知道什么时候文件被删除和由谁删除。这也是一个表演要求,并且超出了我的控制范围。我如何知道谁签出了一个文件?

我主要看着使用Subversion。我想如果我通过Apache使用它,那么我可以解析HTTP日志,除非已经有了一个工具,第三方Web日志分析工具或者直接为颠覆创建的东西。

任何其他流行的源代码控制工具,可能有这种功能?

+1

可能重复[是否有Subversion Checkout钩子或类似的东西?](http://stackoverflow.com/questions/804970/is-there-a-subversion-checkout-hook-or-something-similar) – Jeff 2010-09-01 18:23:21

+5

这听起来像你的经理想知道谁在给定的文件上正在积极工作。没有使用锁定,我不知道你如何得到这个准确的记录。每个处理给定项目的人都可能会将该文件签出到其本地存储库中,即使这些文件没有正在处理每个文件。 – 2010-09-01 18:26:56

+0

这是我必须说服他们的另一个故事!一个软件项目不只是一个文件。是的,我的生活很复杂!大声笑 – user432024 2010-09-01 18:49:57

回答

3

我作为一名开发人员会感到某种不适,但是您的“经理人”想要的是一个基于客户端的“间谍”程序。这可以实现为eclipse插件,例如收集有关打开和编辑什么文件的静态信息等等。

附注:对上级有一定的了解。如果他们还没有经历过缺乏合格的IT人员,那么很快他们可能会这样做。

良好的项目管理应用侵入性较小的方法来收集有关进展和有效性的信息。

+0

“在旁注:对上级有一定的了解,如果他们没有经历过缺乏合格的IT人员然而,不久之后他们可能会用这样的课程。“ - 敬酒!大声笑 – user432024 2010-10-27 19:15:24

3

自由源代码控制系统并不倾向于向您提供这些信息,因为它们与服务器断开连接 - 您可以“获取”文件,但不必告诉服务器您已将其更改到你来办理登机手续。这本身就是一个有意思的功能,因为这意味着你可以在路上,在家等工作,而不会被束缚到中央存储库。

锁可以用于颠覆一些效果来获得类似的报告,但它不是一个很好的解决方案。它们旨在防止2人同时修改文件,特别是在合并成为问题的情况下。也就是说,他们实际上并没有阻止某人在没有获得锁定的情况下检入文件,因此它们充其量只是一个弱表示,而不是保证。

另外,像git或mercurial这样的更现代化的分布式系统甚至都不能开始向您提供这些信息,这些存储库位于您的机器上,而不是集中式的,并且链接返回原始数据库的效果最好。考虑一下 - 你有5个本地分支,你报告所有的文件是针对原始文件进行修改的,还是仅仅是活动分支?您可以从已克隆的回购库中克隆回购,您可以通过多少级别的抽象来进入“主”回购?谁决定,你将如何配置这个主人是什么? Git等人可以以非常优雅的方式处理所有这些复杂问题,但在这种情况下,“谁检出了这个文件”几乎毫无意义。

像TFS和Perforce这样的老领导确实允许这样做。但我会好奇他们为什么需要这个功能,仅仅因为有人修改了文件副本并不意味着管理方面的任何事情,分支仍然可以非常有效地使用存储库安全保护,任何跟踪系统如trac或redmine会告诉你谁在做什么并且完美地与svn集成。

可能有第三方应用程序查找工作副本并将状态信息上载到中央报告服务器,但我没有看到。它甚至可能值得一个。

+0

我认为这是为了知道谁拥有这些文件。如果我通过Apache使用svn,那么它只是一个案例或解析HTTP日志。 我已经向他们解释锁定是坏的,我认为这是通过他们。随着我们不断开发并行功能。 然后,我一直试图说服他们在过去的10年中使用任何形式的scm lol – user432024 2010-09-02 20:23:31

相关问题