2011-02-22 69 views
0

我如何知道谁是从我的git回购中拉出来的?或者做一个Git获取源?很显然,我可以查看git log来查看推送/提交,但是有什么方法可以查看人们是否只是将我的代码读取或保持同步?报告谁正在对我的git回购进行pull/checkout/fetch

这里是一些上下文。首先,我能找到的最匹配的筹码是Track git pushes and checkout,但问题没有令人满意地得到解决。我决定把这个问题拉到一个不同的问题,因为它有点不同...

环境是git仓库服务器,充当开发人员克隆和推回变化的中央回购站。中央仓库是通过持续集成构建的,并从该代码库进行发布。

我有各种用户管理工具:gerrit,gitosis和gitolite。

为什么我想知道这一点,为什么它也与你有关?就我而言,我想知道谁在研究什么......谁在看什么。这些信息可以帮助确定哪些项目不再维持/有趣,并且可能会被搁置。它还可以帮助创建丑陋的管理指标(不是真正的粉丝,但它是企业的必需品),谁是活跃的。 Git日志会显示谁在提交代码,这更能说明生产力,但如果人们不经常推送,则不会。我真的不能想到任何其他用例,但那些是我的两个。

所以...任何方式从git直接拉动信息?我记得CVS的历史会给出一些,但我不能在git中弄清楚。如果不直接,那么gerrit,gitosis或gitolite呢?

谢谢。

+0

克隆/拉动不影响源回购。它们完全是只读操作。没有办法用git来跟踪它;您需要在身份验证级别跟踪此操作。 – meagar 2011-02-22 22:36:37

回答

1

我希望解决这样一个任务的第一个工具集是尝试在Apache上使用Git + WebDAV。使用身份验证和访问日志,可以为您提供所需的信息。如果失败了,你可能会编写一个定制的Git服务器。由于Git的设计是分散的,客户可以在没有与您选择的服务器通话的情况下运行,我相信跟踪检索的功能不是核心的一部分。

+1

为什么选择WebDAV?可能只是简单的git-http-backend? – 2011-02-22 23:49:27

+0

我对这个特定的后端并不熟悉,但在研究之后,我建议使用它。 – 2011-02-23 03:18:05

+0

git-http-backend听起来很酷,但会对更新版本的git进行很多协调升级。我们仍然在1.6.3.3上。服务器端通过IT很容易,但不幸的是,不同的客户端安装会导致服务中断,这对于如此低优先级的任务来说是不值得的。我很欣赏把我的眼睛开到git-http-backend,尽管......我会更多地阅读它。 – JoeJIRA 2011-02-23 14:07:16