我怎么知道谁签出了文件?

时间:2010-09-01 18:19:29

标签: svn version-control svn-checkout

我正在为我的团队实施源代码管理。出现的一个外部要求是“经理/主管”想要知道谁检查了哪个文件以及何时检出。不是真正的锁定,他们只想知道何时取出文件以及由谁来取出。它也是一个展示限制器要求,并且超出了我的控制范围。

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

可能具有此类功能的任何其他流行的源代码管理工具?

2 个答案:

答案 0 :(得分:4)

免费的源代码管理系统不会向您提供此信息,因为它们与服务器断开连接 - 您可以“获取”文件,但您不必告诉服务器您已更改它,直到您来检查。这本身就是一个故意的功能,因为它意味着你可以在路上,在家里等工作,而不会被束缚在中央存储库。

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

此外,没有更现代的分布式系统,如git或mercurial甚至可以开始向您提供此信息,存储库位于您的计算机上,而非集中式,并且返回到原始链接的链接最好。考虑一下 - 你有5个本地分支,你是否报告所有文件被修改为原始文件,或只是活动分支?你可以从已经克隆过的repos克隆repos,你有多少级别的抽象来到'master'仓库?谁决定,你将如何配置那个主人是什么? Git等人可以非常优雅地处理所有这些复杂问题,但在这种背景下,“谁检查过这个文件”这个问题几乎毫无意义。

像TFS和Perforce这样的老忠实拥有这一点。但我很好奇为什么他们需要这个功能,只是因为有人修改了文件副本并不意味着管理术语中的任何内容,使用存储库安全性,任何任务跟踪系统如trac或者仍可以非常有效地保护分支redmine会告诉你谁在做什么并与svn完美整合。

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

答案 1 :(得分:3)

作为开发人员,我会感到某种不适,但“管理者”想要的是基于客户端的“间谍”程序。这可以作为eclipse插件实现,例如收集关于打开和编辑的文件或其他任何文件的静态。

旁注:让你的上司有所了解。如果他们还没有经历过缺乏合格的IT人员,那么他们可能很快就会有这样的课程。

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