对于我公司的一些特定工作流程问题,我需要允许一些用户使用 CVS,而主存储库位于 git 下。
我选择了 git-cvsserver 作为这个任务的实现。
我设置了 git 存储库,为 gitcvs 启用它,并在 xinetd 上设置了 pserver 模拟。一切正常,我可以从 cvs 客户端使用这个存储库,对我通过 pserver 仿真创建的 passwd 文件进行身份验证。
我的问题是我通过 CVS 进行的提交显示在运行 xinetd 的用户下,而不是在我对 passwd 进行身份验证的用户下。
即我以用户 'foo' 的身份向 CVS 提交,我通过 pserver 成功地进行了身份验证,但是当我查看这个 repo 的 git 提交历史时,我看到提交是由用户 'root' 完成的。
我查看了 git-cvsserver 的源代码(http://git.kernel.org/?p=git /git.git;a=blob;f=git-cvsserver.perl ),似乎 CVS 登录仅用于身份验证,不用于实际提交。SQLite 数据库中的记录也包含“root”用户名,而不是“foo”
您知道如何将 CVS 登录信息传播到 git 用户名吗?
git 邮件列表中的外部参考:http: //thread.gmane.org/gmane.comp.version-control.git/169182