【龙智技术指南】Helix4Git简明使用手册
来源:Perforce 作者:龙智 发布时间:2022-07-22
Helix4Git是一款高性能的Git服务器(在Perforce服务器内部),它使Git用户可以使用Git命令访问源代码。Helix TeamHub是一款Git代码托管工具,它们同为Perforce Git工具。
当您将这两个工具与Perforce版本管理工具Helix Core结合使用时,您可以通过单一可信的代码源进行跨开发团队管理。如果您正在与开源或第三方开发团队合作,这一点尤其重要。
本文由龙智技术专家团队成员邱洁玉撰写,她以简明扼要的方式呈现了Helix4Git的使用方法,方便中国用户使用。如需了解更多关于Helix4Git、Helix TeamHub以及Helix Core的相关信息,请联系Perforce授权合作伙伴——龙智。
简介
Helix4Git是高性能的Git服务器(在Perforce服务器内部)。这使Git用户可以像通常使用Git命令那样访问其源代码。
当用户将Helix4Git与Helix Core一起使用时,用户可以在整个开发团队中维护唯一可信来源。如果用户正在与开源或第三方开发团队合作,这一点尤其重要。
Helix4Git有两部分构成:
Helix服务器(即p4d) Git connector,相当于一个git服务器
用户可以使用Git客户端从gragh仓库拉取文件后进行更改,然后再将文件推送至gragh仓库。Git客户端与Helix服务器通过git connector通信。
安装
2.1 安装git connector要求:
Helix Core服务器版本要在2017.1以上 Git版本在1.8.5以上 推荐git connector与helix server安装在不同的机器上
2.2 Git connector目前可安装在以下linux平台:
Ubuntu 12.04 LTS (Precise), 14.04 LTS (Trusty), 16.04 LTS (Xenial), 18.04 LTS (Bionic), 20.04 (Focal) CentOS or Red Hat 6.x, 7.x, 8.x SUSE Linux Enterprise Server 11, 12, 15
2.3 本文配置环境为:
操作系统: centos7
Perforce helix core: 2021.2
Git connector: 2019.2
Git version: 2.34.0
2.4 安装步骤
2.4.1 导入软件签名
sudo rpm --import https://package.perforce.com/perforce.pubkey
2.4.2 配置repo地址
[perforce]
name=Perforce for CentOS $releasever - $basearch
baseurl=https://package.perforce.com/yum/rhel/7/x86_64/
enabled=1
gpgcheck=1
gpgkey=https://package.perforce.com/perforce.pubkey
其中7表示centos的版本。
2.4.3 安装Git Connector package
sudo yum install helix-git-connector
配置
3.1 配置git connector
root执行以下命令进入配置脚本交互模式:
$ sudo /opt/perforce/git-connector/bin/configure-git-connector.sh
配置完成后有以下提示:
3.2 Helix Server权限配置
super权限的用户执行以下命令给gconn-user用户需要的权限:
p4 protect
然后在权限表增加一行:
list user gconn-user * //...
其它用户如需要操作graph 仓库,需要分配相应权限:
p4 grant-permission -d graphDepotName -u username -p admin
p4 grant-permission -d graphDepotName -u username -p create-repo
p4 grant-permission -d graphDepotName -u username -p write-all
3.3 创建graph仓库
在配置过程中默认创建了一个名为repo的仓库,如果想创建其他的graph仓库,输入命令:
p4 depot -t gragh depotname
创建完成之后需要给gconn-user赋予权限,参见3.2。
3.4 创建repos
创建存在于gragh 仓库的repo,前提是此用户有create-repo权限:
p4 repo //graphDepotName/repo1
3.5 git用户认证配置
根据git connector的配置,git用户如果想从helix4git上pull/push repos则需要设置ssh或者https认证,设置完成后git用户就可以通过url和helix4git一起协同工作。
ssh:
git git@ConnectorHost:graphDepotName/repoName
- https:
git https://username@ConnectorHost/graphDepotName/repoName
3.5.1 ssh
客户机创建ssh密钥:
ssh-keygen -t rsa
将公钥导入Helix Server机器,当有多个公钥时,-s指定此次公钥作用名字
p4 -p helixserver:1666 -u admin pubkey -u bruno -s scopeName -i < id_rsa.pub
等待几分钟密钥更新后,验证是否导入成功:
git clone git@ConnectorHost:@info
3.5.2 https
使用https时需要根据提示输入Helix Server的账户名和密码。
执行以下命令关闭SSL认证:
export GIT_SSL_NO_VERIFY=true
git config --global http.sslVerify false
如何使用Helix4Git
4.1 Git客户端push文件到Helix4Git服务器
使用git客户端push repos到Helix Core服务器的gragh仓库
git push git@ConnectorHost:graphDepotName/repoName
4.2 p4侧查看上传到gragh仓库的内容
4.2.1创建工作区,同步repos
命令行或p4v创建工作区,工作区type字段选择gragh类型,view字段定义仓库到本地的映射:
创建完工作区后,使用以下命令就可以更新gragh仓库的最新内容到本地:
p4 sync //graphDepotName/repoName/...
也可在p4v上拉取最新:
4.2.2 repo包含多个分支
如果项目有多个分支,那么push到Helix4Git的默认分支是master,以下命令repo包含所有分支:
git push git@ConnectorHost:graphDepotName/repoName --all
在p4工作区可以在repo内切换分支:
命令行切换:
git push git@ConnectorHost:graphDepotName/repoName --all
p4v切换:
4.2.3 repo指定分支
如果项目有多个分支,那么push到Helix4Git的默认分支是master,如果需要指定分支,比如指定dev分支,可以在repo定义里加入以下字段:
DefaultBranch: refs/heads/dev
Git客户端切到(checkout)dev分支后执行push命令将内容提交到相应的repo。
4.3 git侧更新文件,p4侧拉新
git add .
git commit -m
git push git@ConnectorHost:graphDepotName/repoName
执行p4 sync查看文件可以同步到p4工作区:
4.4 p4侧更新文件,git侧拉新
使用p4命令行提交(p4v暂不支持提交):
提交完成可在p4侧看到文件相应的提交历史记录:
4.5 在p4工作区内组合普通仓库和graph仓库
graph仓库(gitrepo)和p4普通仓库的内容可以组合到同一个p4工作区内,例如习惯git操作的用户可以将代码保存在graph仓库中,平常使用git命令操作,其他用户可以直接使用p4固有的local,stream仓库,需要构建时,可以按需求将不同仓库的内容组合到同一个工作区中,一条命令即可下载全部需要的数据,并且可以共享一套统一的备份方案。
工作区定义:
查看工作区组合内容:
参考文档
Helix4Git官方手册:https://bit.ly/3znL1YA
如想免费试用Helix4Git、Helix TeamHub以及Helix Core,请立即联系Perforce授权合作伙伴——龙智:
电话:400-775-5506
邮箱:marketing@shdsd.com