logo资料库

基于Gitlab的代码审查流程(Code-Review)方案.pdf

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
RCD 1. 1.1. Git Git SVN Hg 1.2. GitHub/Gitlab GitHub Gitlab Gitlab git GitHub GitHub Gitlab Merge-Request 1.2.1. Gitlab Group Gitlab 1.3. Phabricator Phabricator Web facebook GitHub Gitlab GitHub Pull-Request project Web facebook Phacility review Git/SVN 1. 2. 3. BUG 代 码 审 查 与 持 续 集 成 平 台 建 设 方 案 云 平 台 概 念 介 绍 是 目 前 世 界 上 最 先 进 的 分 布 式 版 本 控 制 系 统 ( 没 有 之 一 ) , 与 之 相 对 应 的 其 他 版 本 控 制 系 统 有 、 等 。 各 操 作 系 统 平 台 上 都 有 提 供 对 应 的 安 装 包 。 是 全 球 最 大 的 基 于 的 源 码 托 管 平 台 , 付 费 用 户 可 以 创 建 私 有 仓 库 , 免 费 用 户 只 能 创 建 公 共 仓 库 。 使 得 社 会 化 编 程 成 为 现 实 。 相 当 于 是 的 一 个 开 源 版 本 , 具 备 了 的 大 部 分 功 能 , 开 发 团 队 可 以 使 用 搭 建 私 有 的 源 码 托 管 平 台 。 官 方 有 免 费 版 与 收 费 版 本 , 对 于 规 模 不 大 的 开 发 团 队 , 免 费 版 基 本 可 满 足 日 常 需 求 。 二 者 除 了 用 于 代 码 托 管 外 , 也 是 一 个 很 棒 的 代 码 审 查 平 台 。 基 于 机 制 , 基 于 机 制 。 主 流 的 开 源 项 目 基 本 都 是 通 过 它 来 进 行 代 码 审 查 等 协 同 开 发 工 作 。 相 关 概 念 : 中 的 组 可 以 理 解 为 一 个 项 目 团 队 , 一 个 组 可 以 有 多 个 ( 仓 库 ) 。 是 一 套 基 于 的 软 件 开 发 协 作 工 具 , 一 个 应 用 用 于 帮 助 软 件 公 司 构 建 更 好 的 软 件 。 其 原 是 员 工 开 发 的 可 视 化 代 码 评 审 工 具 , 现 在 离 开 去 , 并 持 续 维 护 主 要 包 含 以 下 几 个 功 能 : 源 码 的 与 审 核 ( 同 时 支 持 ) 代 码 托 管 , 代 码 浏 览 跟 踪
4. 5. 6. 7. 8. 9. 1.4. Upsource Upsource JetBrains Code Review IntelliJ IDEA SVN 1.5. Gitlab-CI Git Gitlab-CI push Gitlab runner gitlab continuous integration GitLab GitLab-Runner GitLab-CI Runner .gitlab-ci.yml .gitlab-ci.yml script GitLab script 项 目 管 理 团 队 成 员 交 流 组 织 风 险 讨 论 事 件 备 注 , 以 及 回 顾 ( 统 计 等 ) 权 限 设 置 其 他 功 能 是 由 著 名 的 公 司 提 供 的 平 台 ( 牛 逼 的 也 是 这 家 公 司 开 发 的 ) 。 功 能 也 很 强 大 , 关 注 于 代 码 审 查 领 域 。 不 过 比 较 吃 硬 件 , 同 时 支 持 与 。 全 称 是 的 意 思 , 也 就 是 持 续 集 成 。 中 心 思 想 是 当 每 一 次 到 的 时 候 , 都 会 触 发 一 次 脚 本 执 行 , 然 后 脚 本 的 内 容 包 括 了 测 试 、 编 译 、 部 署 等 一 系 列 自 定 义 的 内 容 。 它 是 一 套 配 合 使 用 的 持 续 集 成 系 统 , 是 自 带 的 。 持 续 集 成 过 程 的 脚 本 是 由 执 行 的 , 的 部 分 的 运 行 就 是 由 来 负 责 的 。 浏 览 过 项 目 里 的 文 件 之 后 , 根 据 里 面 的 规 则 , 分 配 到 各 个 来 运 行 相 应 的 脚 本 。 这 些 脚 本 有 的 是 测 试 项 目 用 的 , 有 的 是 部 署 用 的 。
gitlab gitlab-ci 1.6. Jenkins Java Jenkins Gitlab 2. 2.1. Phabricator Upsource 。Github 。Gitlab 2.2. Gitlab 2.2.1. 1. Gitlab admin 2. 3. 4. 5. code-review IntelliJ IDEA IDE code-review 10 Gitlab Merge-Request admin rcdos rcd (Member) (Project gitlab fork ) git clone http://172.21.192.208/rcdweb/code- review-demo.git # Git git config user.name "your_name" 安 装 配 置 可 参 考 《 之 自 动 部 署 》 是 另 一 个 用 编 写 的 开 源 的 持 续 集 成 工 具 , 提 供 了 软 件 开 发 的 持 续 集 成 服 务 , 可 监 控 并 触 发 持 续 重 复 的 工 作 , 具 有 开 源 , 支 持 多 平 台 和 插 件 扩 展 , 安 装 简 单 , 界 面 化 管 理 等 特 点 。 它 也 可 以 跟 配 合 使 用 , 更 详 细 的 信 息 请 直 接 查 看 官 网 。 代 码 审 查 代 码 审 查 平 台 此 前 调 研 了 上 面 介 绍 的 几 个 平 台 , 它 们 的 使 用 体 验 如 下 : 平 台 功 能 大 而 全 , 但 使 用 起 来 也 比 较 繁 琐 , 如 果 只 是 用 它 来 进 行 , 则 有 点 杀 鸡 用 牛 刀 。 比 较 专 注 , 与 等 上 的 插 件 配 合 使 用 倍 爽 , 但 免 费 版 本 只 支 持 个 用 户 的 代 码 托 管 于 公 网 , 且 免 费 用 户 只 能 创 建 公 共 仓 库 , 只 有 收 费 用 户 才 能 创 建 私 有 仓 库 属 于 开 源 项 目 , 可 在 内 网 搭 建 私 有 仓 库 , 虽 然 其 免 费 版 本 也 有 功 能 约 束 , 但 大 体 上 满 足 我 们 的 主 要 需 求 : 代 码 托 管 、 代 码 审 查 。 基 于 上 述 分 析 , 我 们 决 定 采 用 作 为 代 码 托 管 与 代 码 审 查 平 台 。 代 码 审 查 流 程 平 台 主 要 是 通 过 机 制 进 行 代 码 审 查 。 代 码 审 查 以 仓 库 为 单 位 , 建 议 是 一 个 项 目 一 个 仓 库 。 准 备 动 作 管 理 员 创 建 组 、 创 建 项 目 管 理 员 ( 也 可 以 先 注 册 一 个 账 号 , 然 后 再 由 设 置 为 项 目 管 理 员 ) 。 项 目 管 理 员 在 组 内 添 加 项 目 成 员 , 并 赋 予 相 应 的 角 色 。 项 目 管 理 员 在 组 内 创 建 项 目 , 也 称 为 项 目 源 仓 库 , 下 面 简 称 : 源 仓 库 。 各 个 成 员 将 源 仓 库 至 个 人 账 户 下 。 各 个 成 员 在 本 地 搭 建 开 发 环 境 , 通 过 下 载 源 码 , 并 配 置 本 地 仓 库 的 基 本 信 息 : 基 本 配 置 , 仅 在 本 仓 库 生 效
git config user.email "your_email_name@ruijie.com.cn" git config core.autocrlf false # URL git remote add upstream http://172.21.192.208/rcdweb/code-review-demo.git # 4.2 2.2.2. 1. 2. 3. gitlab Gitlab Project 4.2 Merge Request push Source Branch Target Branch Gitlab Merge-Request 添 加 源 仓 库 地 址 ( 源 仓 库 也 称 为 上 游 仓 库 , 只 是 个 示 例 , 具 体 以 项 目 为 准 ) , 添 加 源 仓 库 主 要 是 为 了 随 时 同 步 他 人 的 工 作 成 果 至 本 地 。 至 于 如 何 同 步 源 仓 库 至 本 地 , 请 查 看 附 录 : 章 节 代 码 审 查 详 细 步 骤 开 发 人 员 ( 项 目 成 员 ) 在 本 地 完 成 一 个 任 务 ( 编 码 ) 并 通 过 本 地 单 元 测 试 。 同 步 源 仓 库 内 容 至 本 地 仓 库 : 可 能 需 要 解 决 冲 突 , 再 次 进 行 本 地 单 元 测 试 , 通 过 后 至 个 人 远 程 库 。 如 何 同 步 源 仓 库 至 本 地 , 请 查 看 附 录 : 章 节 登 录 , 进 入 目 标 仓 库 ( , 后 续 统 称 目 标 仓 库 ) , 发 , 详 见 下 面 截 图 : 选 择 准 备 申 请 合 并 的 与 , 如 下 图 : 输 入 此 次 合 并 的 关 键 信 息 ( 功 能 、 解 决 的 问 题 等 ) , 指 定 代 码 审 核 人 员 并 提 交 。 提 交 后 将 会 邮 件 通 知 相 关 的 代 码 审 核 人 员 。
4. Gitlab M-R 相 关 人 员 收 到 邮 件 通 知 后 登 录 对 请 求 进 行 处 理 , 也 就 是 进 行 代 码 评 审 。 如 果 对 准 备 提 交 的 代 码 不 满 意 , 则 可 以 在 有 问 题 的 代 码 行 或 讨 论 区 给 出 意 见 或 建 议 。
M-R LGTM Push M-R assign Push LGTM Look Good To Me M-R 1 2 LGTM 4 M-R M-R M-R Merge reopen CI CI Gitlab CI 5. 6. 7. Push Merge M-R 3. 3.1. 3.2. 如 果 觉 得 本 次 的 代 码 没 问 题 , 直 接 在 评 论 区 回 复 : , 并 进 行 合 并 操 作 。 若 没 有 权 限 , 则 将 此 请 求 给 有 权 限 的 人 。 : 为 四 个 单 词 的 首 字 母 在 上 一 步 中 , 如 果 代 码 评 审 未 通 过 , 开 发 人 员 ( 申 请 者 ) 需 要 根 据 评 审 意 见 进 行 修 改 ( 当 然 是 得 在 本 地 开 发 环 境 进 行 修 改 测 试 ) , 即 重 新 根 据 步 骤 、 步 骤 进 行 操 作 , 最 新 的 提 交 信 息 会 实 时 同 步 至 此 前 提 交 的 申 请 单 的 信 息 流 中 。 代 码 审 查 流 程 重 新 跳 回 步 骤 。 具 有 权 限 的 开 发 人 员 收 到 请 求 后 , 如 果 讨 论 区 的 回 复 内 容 为 : , 则 执 行 操 作 。 至 此 整 个 代 码 审 查 流 程 结 束 。 申 请 者 也 可 以 提 前 关 闭 请 求 : 自 己 事 先 发 现 代 码 问 题 等 。 如 果 错 误 点 击 了 操 作 , 也 可 以 。 持 续 集 成 持 续 集 成 平 台 目 前 , 我 们 主 要 是 使 用 平 台 来 进 行 构 建 、 测 试 、 打 包 , 因 此 本 身 提 供 的 组 件 就 可 以 满 足 要 求 。 个 人 认 为 没 必 要 再 增 加 外 部 的 平 台 。 持 续 集 成 流 程 一 图 胜 千 言
.gitlab-ci.yml Gitlab CI Gitlab-CI 4. 4.1. Git # Command line instructions # Git global setup git config --global user.name "rcd" git config --global user.email "rcd_code_review@163.com" # Create a new repository git clone http://172.21.192.208/rcdweb/code-review-demo.git cd code-review-demo touch README.md git add README.md git commit -m "add README" git push -u origin master # Existing folder cd existing_folder git init git remote add origin http://172.21.192.208/rcdweb/code-review-demo.git git add . git commit -m "Initial commit" git push -u origin master # Existing Git repository cd existing_repo git remote rename origin old-origin 的 持 续 集 成 动 作 可 以 自 动 执 行 , 也 可 以 手 动 触 发 。 其 整 个 流 程 由 文 件 决 定 。 这 里 不 进 行 介 绍 , 有 需 要 的 可 查 看 官 方 文 档 或 者 文 章 《 基 于 搭 建 持 续 集 成 环 境 》 附 录 仓 库 初 始 配 置 命 令
git remote add origin http://172.21.192.208/rcdweb/code-review-demo.git git push -u origin --all git push -u origin --tags 4.2. Github fork fork google guava fork :~/workspace/demo // git remote add upstream http://172.21.192.208/rcdweb/code-review-demo.git // git fetch upstream // URL URL git fetch upstream master // fork git checkout master // git merge upstream/master // // git push origin master fix conflicts http://172.21.192.208/chenzhian/code-review-demo commit 如 何 将 中 出 来 的 项 目 与 源 项 目 保 持 同 步 以 的 项 目 为 例 进 入 出 来 的 本 地 目 录 如 , 添 加 远 程 ( 上 级 项 目 ) 将 上 级 远 程 项 目 取 回 本 地 上 面 这 行 命 令 是 将 远 程 上 级 仓 库 的 所 有 分 支 全 部 取 回 本 地 , 要 取 一 个 分 支 则 用 如 下 命 令 ( 建 议 用 上 面 的 命 令 ) : 切 换 回 本 地 分 支 ( 出 来 的 分 支 ) 将 上 级 分 支 的 内 容 合 并 入 本 地 主 干 版 本 可 能 涉 及 并 将 合 并 后 的 内 容 同 步 至
分享到:
收藏