【ubuntu 18.04】phabricator配置远程仓库并实现code_review

1. 使用管理员创建仓库

2. 编辑仓库权限

 

 

 3. 编辑URI

 

 

 4. 配置Storage(自动生成)

 

 

 其他暂时可以不配

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
复制代码

 至此基本完成


 
posted @   代码诠释的世界  阅读(630)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示