对于我公司的某些特定工作流程问题,我需要允许一些用户工作 使用CVS,而主存储库位于git。
我选择git-cvsserver作为此任务的实现。
我设置了git存储库,为gitcv启用了它并设置了pserver模拟 xinetd的。一切正常,我可以使用cvs客户端的这个存储库, 对我通过pserver仿真创建的passwd文件进行身份验证。
我的问题是我通过CVS提交的提交显示在运行的用户下 xinetd,不在用户I下对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用户名有什么想法吗?
gref邮件列表中的外部参照:http://thread.gmane.org/gmane.comp.version-control.git/169182
答案 0 :(得分:1)
我对此没有具体经验,但git-cvsserver
几乎肯定会调用git-commit
来完成实际工作。您可以通过设置git-commit
和GIT_COMMITTER_EMAIL
等环境变量(GIT_AUTHOR_EMAIL
和..._NAME
以及{{..._DATE
来让..._IDENT
为作者和提交者使用您想要的任何内容1}})。如果您有可用的身份验证信息,则可以在实际提交之前在$ENV
中进行设置。如果git-cvsserver
没有清理它的环境,你实际上可以在调用之前在包装器中设置认证信息(只有以防任何提交的)。