【ubuntu 18.04】phabricator配置远程仓库并实现code_review
1. 使用管理员创建仓库
2. 编辑仓库权限
3. 编辑URI
4. 配置
其他暂时可以不配
5. 相关配置
# 1. 配置arc到环境变量
cd arcanist/bin vim .bashrc
# 添加你自己的路径,export PATH=$PATH:/home/master/phabricator/arcanist/bin
# 然后:wq, source 生效
source .bashrc arc
# 2. 启动phd进程池,同步远程代码库要用 cd phabricator/phabricator/ # 你自己的路径 ./bin/phd --help ./bin/phd start
# 3. 创建phabricator仓库目录 sudo mkdir /var/repo sudo chmod -R 777 /var/repo
# 4. 同步仓库需要设置base-uri, 如下设置会导致样式丢失 #./bin/config set phabricator.base-uri 'http://192.168.10.99/'
vim conf/local/local.json
# 修改"phabricator.base-uri": "http:\/\/192.168.10.99:8888\/",
# 5. 同步代码 ./bin/repository update R1 --trace
6. 配置arc
# 1. 下载代码
git clone git@192.168.10.99:root/spring-boot-demo.git
# 配置提交用户,必须是phabricator的用户
git config user.name phabricator
git config user.email phabricator@admin.ai
# 2. 配置用户token
arc install-certificate
# 3. 设置diff默认编辑器,因为保存就可以提交, 原生的太难用 arc set-config editor "vim"
# 4. 仓库中添加如下两个文件,基础配置,代码格式化 vim .arclint vim .arcconfig
# 5. 提交cr arc diff --browse 或 arc diff --trace
# 6. 审核之后提交代码
git pull origin master arc land
7. 相关文件内容
vim .arcconfig,只是个例子, 具体你自己配置
{ "phabricator.uri": "http://192.168.10.99:8888/", "arc.lint.cache": true, "unit.target": "", "unit.custom_targets_dir": "/spring-boot-demo", "unit.custom_targets": [ "check_release_path" ] }
vim .arclint 只是个例子, 具体你自己配置
{ "linters": { "pep8": { "type": "pep8", "include": [ "(\\.py$)" ], "exclude": "(^third_party/)" } } }
vim conf/local/local.json, 只是个例子, 具体你自己配置
{ "phabricator.base-uri": "http:\/\/192.168.10.99:8888\/", "mysql.pass": "123456", "mysql.user": "root", "mysql.host": "localhost", "mysql.port": "3306", "differential.require-test-plan-field": false, "cluster.mailers": [ { "key": "my-mailer", "type": "smtp", "options": { "host": "smtp.exmail.qq.com", "port": 465, "user": "auto@domain.com", "password": "123456", "protocol": "ssl" } } ], "metamta.default-address": "auto@domain.com" }
8. 项目管理界面相关操作
界面也可以同步仓库代码
9. 启动phd
master@master:~/phabricator/phabricator$ ./bin/phd start Freeing active task leases... Freed 0 task leases. Launching daemons: (Logs will appear in "/var/tmp/phd/log/daemons.log".) (Pool: 1) PhabricatorRepositoryPullLocalDaemon (Pool: 1) PhabricatorTriggerDaemon (Pool: 1) PhabricatorFactDaemon (Pool: 4) PhabricatorTaskmasterDaemon Done.
10. arc diff 界面
modify: readme.md # commit信息 Summary: # 提交简介 Test Plan: # 测试计划 Reviewers: # 审核人员, 注意,不能是提交人员, 不然会报错 Subscribers: # 订阅人员 # NEW DIFFERENTIAL REVISION # Describe the changes in this new revision. # # Included commits in branch master: # # df14a7b28c0a modify: readme.md # # arc could not identify any existing revision in your working copy. # If you intended to update an existing revision, use: # # $ arc diff --update <revision>
例子, 加这个参数, 结束时会打开浏览器
master@master:~/spring-boot-demo$ arc diff --browse You have untracked files in this working copy. Working copy: /home/master/spring-boot-demo/ Untracked changes in working copy: (To ignore these 1 change(s), add them to ".git/info/exclude".) builds/ Ignore these 1 untracked file(s) and continue? [y/N] y Launching editor "vim"... Provide the details for a new revision, then save and exit. Linting... No paths are lintable. Running unit tests... No unit test engine is configured for this project. SKIP STAGING No staging area is configured for this repository. Updating commit message... Created a new Differential revision: Revision URI: http://192.168.10.99:8888/D2 Included changes: M README.md
11. 评审界面
12. arc land提交代码
master@master:~/spring-boot-demo$ arc land STRATEGY Merging with "squash" strategy, the default strategy. SOURCE Landing the current branch, "master". ONTO REMOTE Remote "origin" was selected by following tracking branches upstream to the closest remote. ONTO TARGET Landing onto target "master", selected by following tracking branches upstream to the closest remote branch. INTO REMOTE Will merge into remote "origin" by default, because this is the remote the change is landing onto. INTO TARGET Will merge into target "master" by default, because this is the "onto" target. FETCH Fetching "master" from remote "origin"... $ git fetch --no-tags --quiet -- origin master INTO COMMIT Preparing merge into "master" from remote "origin", at commit "0b9bfc9f1990". LANDING These changes will land: * D2 modify: readme.md a572175a25ee modify: readme.md >>> Land these changes? [y/N/?] y <!> UNCOMMITTED CHANGES You have uncommitted changes in this working copy. Working Copy: /home/master/spring-boot-demo// Untracked changes in working copy: builds/ ? To configure Git to ignore certain files in this working copy, add the file paths to ".git/info/exclude". >>> Stash these changes and continue? [y/N/?] n SAVE STASH Saved uncommitted changes from working copy. MERGING a572175a25ee modify: readme.md MERGE Attempting to rebase changes. DONE Merge succeeded. PUSHING Pushing changes to "origin". $ git push -- origin 6fd646a1caa3:refs/heads/master Counting objects: 3, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 383 bytes | 383.00 KiB/s, done. Total 3 (delta 1), reused 0 (delta 0) To 192.168.10.99:root/spring-boot-demo.git 0b9bfc9..6fd646a 6fd646a1caa3 -> master
至此基本完成
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?