首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Phabricator : Differential :是否可以使用自定义变更集在没有git/svn等的情况下创建评论

Phabricator是一个开源的软件开发协作平台,它提供了一系列工具来帮助开发团队管理代码审查、任务跟踪、项目管理和通讯等。其中,Differential是Phabricator中的一个组件,主要用于代码审查。

基础概念

Differential允许开发者创建变更集(changesets),这些变更集包含了代码的修改,以便其他开发者进行审查。通常,这些变更集是通过版本控制系统(如Git或SVN)生成的。

自定义变更集

在标准的Phabricator使用中,变更集是基于版本控制系统中的提交生成的。然而,如果你希望在没有Git/SVN等版本控制系统的情况下创建评论,你可能需要自定义Differential的行为。

优势

  • 灵活性:允许自定义变更集可以提供更大的灵活性,尤其是在使用非标准或不常见的版本控制系统时。
  • 适应性:对于那些无法或不愿意迁移到Git/SVN的项目,自定义变更集可以是一个解决方案。

类型

  • 基于文件的变更集:可以通过扫描文件系统的变化来创建变更集。
  • 手动输入的变更集:开发者可以手动输入变更内容,而不是依赖于自动化的版本控制工具。

应用场景

  • 遗留系统:对于那些还在使用旧版本控制系统的项目。
  • 特殊项目:某些项目可能由于特殊原因无法使用Git/SVN等主流版本控制系统。

遇到的问题及解决方法

如果你尝试在没有Git/SVN的情况下创建变更集并遇到问题,可能是因为Phabricator的默认配置不支持这种操作。解决这个问题通常需要以下几个步骤:

  1. 自定义脚本:编写一个脚本来扫描文件系统的变化,并生成类似于Git/SVN提交的变更集。
  2. 扩展Phabricator:如果你熟悉PHP和Phabricator的代码结构,你可以尝试扩展Differential组件,添加对自定义变更集的支持。
  3. 使用第三方工具:可能有第三方工具或插件已经实现了类似的功能,可以搜索并尝试使用这些工具。

示例代码

由于Phabricator是一个复杂的系统,编写自定义脚本或扩展可能需要深入了解其内部机制。以下是一个非常简化的伪代码示例,用于说明如何手动创建一个变更集:

代码语言:txt
复制
<?php
// 假设我们有一个函数来扫描文件变化
$changes = scanFileSystemChanges();

// 创建一个新的变更集
$diff = new DifferentialDiff();
$diff->setAuthor('author@example.com');
$diff->setTitle('Manual Changeset');

foreach ($changes as $change) {
    // 添加每个变化到变更集
    $file = new DifferentialFile();
    $file->setName($change['name']);
    $file->setChangeType($change['type']);
    $diff->addFile($file);
}

// 保存变更集
$diff->save();
?>

参考链接

由于Phabricator的文档可能不如商业产品那样详尽,建议查看Phabricator的官方文档和社区论坛,以获取更多关于自定义变更集的信息:

  • Phabricator官方文档: https://phacility.com/phabricator/
  • Phabricator社区论坛: https://discuss.phacility.com/

请注意,上述代码仅为示例,实际实现可能需要更多的细节处理和错误检查。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Code review - Phabricator Use guide introduce

可以在Herald工具中,根据提交的属性创建一系列的触发规则。如有文件被创建、文本被修改,提交人等。 可以在任何提交中,通过提交注释为自己创建审核请求。...你要为自己的任何审核行为负责。 在diff对比区域,点击行号将可添加内嵌评论。 在diff对比区域,在行号上拖动可添加跨越多行的内嵌评论。 内嵌评论最初只保存为草稿,直到你在页面底部提交评论。...:定时提醒工具 Repository:远程VCS仓库管理 Herald Rule:创建自定义规则,当某些事件触发了规则时提醒我们(类似于IFTTT) 六.Final 最后来谈谈phabricator的优点吧...可以直接做单元测试,bug与代码review的关联。 按request状态分类清晰,搜索功能好用。 支持svn 和 git。 所有检视工作只需要一个浏览器,不需要安装额外的插/软件。...这篇是分享给大家使用Phabricator的方法,公司里面有这个服务器的,或者买了Phabricator服务的,又不会使用的,看了我这篇文章应该能上手用起来啦!!

24510
  • 使用 Docker 和 Traefik v2 搭建 Phabricator

    /phabricator/ SaaS 版本:https://www.phacility.com/phabricator/ 从开源仓库可以看到,社区版的代码一直在持续更新,而且现在还提供了 SaaS 版本...准备好数据库后,我们聊聊怎么简单启动一个 phabricator 服务。 Bitnami 容器方案 这里提供两个版本的配置文件,更多搭配 Traefik 使用的前置知识可以在 过往的文章中 找到。...搭配 Traefik v1 使用 如果你还在使用 Traefik v1 ,那么使用下面的配置,可以一键启动封装好的稳定版本。...相关代码我已经上传至 GitHub,并推送至 DockerHub 有需求的同学可以自取。 编写服务配置 服务配置分为两部分,第一部分是 Web Server 使用的。...(如果数据库使用的是本文的内容,可以不需要修改) 编写容器启动配置 将上面保存的配置文件放置到指定目录后,编写应用启动使用的 docker-compose.yml: version: '3.7' services

    85310

    使用 Docker 和 Traefik v2 搭建 Phabricator

    /phabricator/ SaaS 版本:https://www.phacility.com/phabricator/ 从开源仓库可以看到,社区版的代码一直在持续更新,而且现在还提供了 SaaS 版本...准备好数据库后,我们聊聊怎么简单启动一个 phabricator 服务。 Bitnami 容器方案 这里提供两个版本的配置文件,更多搭配 Traefik 使用的前置知识可以在 过往的文章中 找到。...搭配 Traefik v1 使用 如果你还在使用 Traefik v1 ,那么使用下面的配置,可以一键启动封装好的稳定版本。...相关代码我已经上传至 GitHub,并推送至 DockerHub 有需求的同学可以自取。 编写服务配置 服务配置分为两部分,第一部分是 Web Server 使用的。...(如果数据库使用的是本文的内容,可以不需要修改) 编写容器启动配置 将上面保存的配置文件放置到指定目录后,编写应用启动使用的 docker-compose.yml: version: '3.7' services

    86400

    揭秘:从内部源码看Facebook技术(第一集)

    Phabricator是Facebook开发的可视化代码审查工具。工程师可以在页面上非常方便的针对每一段(单行或者多行)代码进行交互讨论。...负责审查的工程师可以接受代码改变,可以提出疑问要求原作者继续修改。 曾经有段时间我对Phabricator 和XHP(一个PHP扩展)进行了优化研究,却意外发现了许多有关Facebook的内部资料。...意外的发现 大概是2013年6月份左右,那时我已经在使用Phabricator修复bug了。...我们可以通过另外一个Facebook的工程师清楚的看到这些输出,所以在Pastebin上面发布文章不是一个明智的做法。这个人的这个做法很容易被攻击者盯住,惹来不必要的麻烦。...我们可以看到他们正在使用PHP Unit进行单元测试,"www-hg"是Mercurial的目录!

    2.6K60

    ReviewBoard代码评审实践总结 顶

    现在主流的两种版本控制工具:SVN和GIT。 GIT有个Google开发的代码评审工具Gerrit,可以在提交前进行代码评审,评审通过之后才允许提交到版本库。...如果版本控制工具是GIT,当然优先选择用Gerrit或者GitLab来尝试做代码评审了。 但是如果版本控制工具是SVN呢?这目前还没有发现很好的解决方案。...用户指南的提纲:开始(包括代码评审的介绍、一般工作流、账户设置)、使用评审请求(评审请求的创建、修改、发布、关闭等)、评审、搜索、使用MarkDown。...√ √ post-commit-review √ × 版本控制工具 目前只支持SVN 支持SVN、CVS、GIT 创建代码评审请求 √ √ 更新代码评审请求 √ √ diff展示(比较编辑器中) ×...√ 关闭或重新打开评审请求 × √ 创建或更新评审请求是否方便 可以在多处右击 可以跨Project 可以直接选择文件来创建评审请求 (方便) 只支持在Project上右击

    2.5K20

    Git 版本管理工具(一)

    可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支等。...(原文,请参考我在百度空间的博客:Git 命令参数及用法详解) 4、 Git 在Windows上的使用 Git 是为Linux而生的,其最初创建人就是Linux的创始人—— Linus Torvalds...Linux环境下,使用Git 与任何Linux中的命令行工具没有什么区别,甚至在击键数上还有明显的优势。...Msysgit有命令行和图形UI两种使用方式,根据你的喜好选择吧,要说的是,图形UI可能不能完成所有的工作,因此在某些情况下(例如创建SSH Key),命令行还是必不可少的。...GitHub 要使用GitHub,首先需要创建SSH Key,SSH将用来加密本机与远端服务器之间的通信,同时也是识别你对代码所做的变更的方法。

    2K30

    git版本管理工具介绍(git管理工具有哪些)

    可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支等。...(原文,请参考我在百度空间的博客:Git 命令参数及用法详解) 4、 Git 在Windows上的使用 Git 是为Linux而生的,其最初创建人就是Linux的创始人—— Linus Torvalds...Linux环境下,使用Git 与任何Linux中的命令行工具没有什么区别,甚至在击键数上还有明显的优势。...Msysgit有命令行和图形UI两种使用方式,根据你的喜好选择吧,要说的是,图形UI可能不能完成所有的工作,因此在某些情况下(例如创建SSH Key),命令行还是必不可少的。...因此,为了避免麻烦,最好避免使用中文的文件名、目录名和用户名等 (原文,请参考我在百度空间的博客:Git 界面GUI和命令行Command两种操作方式) (3) 设定GitHub 要使用GitHub,首先需要创建

    6.6K11

    版本控制——总结

    7.软件系统,产生新的版本后,老版本的软件系统是否继续保存,取决于以下条件: a.老版本的系统如果有客户还在使用,在客户升级以前,必须继续保存。...但也可以根据自己的需要进行编程。 相对功能单一、简陋,适用于几个人的小型团队,在数据量不大的情况下,性能可以接受。 SVN SVN(Subversion) 是一种版本管理系统,其前身是CVS。...可以这样说,如果你被困在一个不能连接网络的地方时,就像在飞机上,地下室,电梯里等,你仍然能够提交文件,查看历史版本记录,创建项目分支,等。...我认为它是从CVS进化到SVN的最大的一个突破。因为GIT和SVN从概念上就不同,我不知道GIT里是什么特征与之对应。如果你有任何的线索,请在评论里奉献出来与大家共享。...5.GIT的内容完整性要优于SVN: GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

    1.6K21

    团队开发中常用的git指令汇总

    git学习整理冲突解决:如果分支上的冲突太复杂,就无法适用于在Web编辑器中解决了, 这时候可以通过命令行检查它然后解决冲突克隆仓库,使用最新的主分支上面的代码. git pull origin main2...手动测试功能,验证其是否按预期工作。提供反馈:在代码行旁边添加评论,指出问题或建议改进的地方。如果一切正常,可以表示同意合并。...工具和实践使用 GitHub 的评论功能:可以直接在代码行上添加评论。使用代码审查工具:一些团队使用专门的工具(如 Gerrit、Phabricator)来进行更复杂的审查流程。...在这种情况下,你可以使用 --amend 选项更新提交信息,或者创建一个新的提交来记录解决冲突的过程。希望这些步骤能帮助你成功地将你的更改合并到 main 分支!...创建合并请求 (Pull Request)在远程仓库(例如GitHub, GitLab等)上创建一个合并请求,要求将你的新分支合并到主分支。

    7310

    再见了,SVN!GitHub 宣布将淘汰 Subversion 支持

    与 Git 使用的分布式模型相比,SVN 的客户端 - 服务器模型显得比较老派,变更会先被存储在本地,并在推送到上游代码仓库时被分发至中央历史记录(及其他分支)。...各种重要文件——特别是那些大型二进制文件——都可以进行“锁定”,防止其他开发人员在我们处理的同时做出变更。另外,文件、分支、标签等一切都以目录的形式存在。...首先,它采用集中式设计,就是说 SVN 服务器必须处于运行状态才能接收开发者提交的变更。一旦互联网发生故障,麻烦就大了。第二点,分支是种负担。一旦创建了分支,就没法将其删除(如果我没记错的话)。...但如果是要创办一家公司,我会使用 Git 来避免重新培训和新人难上手等问题。” Mercurial 当然也有自己的优势,SVN 用户对它的设计和集中式操作会感觉非常熟悉。...「git config」和「hg config」都是用于编辑用户邮件地址等设置的命令。「git config」命令会自动为用户修改「~/.gitrc」,而且大多数情况下是正确的。

    78210

    svn 基础架构介绍

    2000年 git是linux创始人linus发起的,2005年发布,最初目的是更好管理linux内核代码 git和svn不同在于git不需要依赖服务端就可以工作,即git是分布式的 github是基于...git的在线web页面代码托管平台,可以选择付费服务 gitlab可以认为是一个开源的github,两者没有直接关系 优点: 1.对于某些项目的核心代码或者是一些重要的保密性要求较高的项目,svn比git...6.svn支持二进制文件,更容易处理大文件(不需要把老版本拷来拷去) 7.学习简单、使用简单 缺点: 1.无网的情况下:无法提交代码,无法查看代码的历史版本、无法同步代码 2.代码要定期做备份(所有的代码数据及版本变更记录...尤其是在开发人员非常多的情况下。...二、配置架构svn服务 yum install -y subversion 创建版本库 mkdir -p /data/svnroot/myproject(自定义的目录) svnadmin create

    1.8K50

    让每个人都可以轻松使用Git-腾讯自研Git客户端

    快速提交原生 Git 提交流程,如果远程有新的提交,Git 会强制要求先更新再提交,在一个大型项目中,提交流程会因为远程频繁变更而不停中断,影响工作效率。...UGit 的快速提交,可以实现只要用户提交的文件其他人没修改,可以在不更新情况下直接完成提交,不会因远程频繁变更而中断提交流程,让大型团队协作更加流畅。...基础能力极简操作,类似于 SVN 或 P4 的集中式版本控制工具体验,可一键提交或更新OAuth,支持工蜂、Github、Coding.net 平台的 OAuth 认证集成工蜂合并请求,便捷的在客户端中进行...MR 评审或操作集成工蜂代码审查,在 UGit 中进行代码审查集成工蜂 Issue 管理,邮件式的产品体验,可便捷、快速的查看、修改或评论 IssueGitflow,可视化的交互集成业界经典的 Gitflow...;多仓库管理,Git Submodule 的替代方案,通过可视化操作,旨在解决大型项目多仓库依赖管理问题,支持批量克隆,一键更新、拉分支、切分支等等仓库分组管理,可以对仓库进行分组管理,并且分组信息会展示在仓库标签上变更集分组

    27400

    GitHub 官宣,彻底淘汰 SVN!!

    与 Git 使用的分布式模型相比,SVN 的客户端 - 服务器模型显得比较老派,变更会先被存储在本地,并在推送到上游代码仓库时被分发至中央历史记录(及其他分支)。...各种重要文件——特别是那些大型二进制文件——都可以进行“锁定”,防止其他开发人员在我们处理的同时做出变更。另外,文件、分支、标签等一切都以目录的形式存在。...首先,它采用集中式设计,就是说 SVN 服务器必须处于运行状态才能接收开发者提交的变更。一旦互联网发生故障,麻烦就大了。 第二点,分支是种负担。一旦创建了分支,就没法将其删除(如果我没记错的话)。...但如果是要创办一家公司,我会使用 Git 来避免重新培训和新人难上手等问题。” Mercurial 当然也有自己的优势,SVN 用户对它的设计和集中式操作会感觉非常熟悉。...「git config」和「hg config」都是用于编辑用户邮件地址等设置的命令。「git config」命令会自动为用户修改「~/.gitrc」,而且大多数情况下是正确的。

    1.1K30

    Git 中文参考(六)

    是 Subversion 和 Git 之间变更集的简单管道。...来自 Perforce 或 Subversion 等系统,这应该非常简单,因为快速导入标记也可以是 Perforce 变更集编号或 Subversion 版本号。...使用标记修复分支 一些其他 SCM 系统允许用户从多个文件创建标签,这些文件不是来自相同的提交/变更集。或者创建标记,这些标记是存储库中可用文件的子集。...此选项将导致 git gc 更积极地优化存储库,但代价是花费更多时间。这种优化的效果是持久的,所以这个选项只需要偶尔使用;每几百个变更集左右。...以查看是否可以从使用基础创建的包中提取: $ git bundle verify mybundle 这将列出您必须具有的提交以从包中提取,如果您没有它们将会出错。

    28910

    【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    的速度要比SVN等工具快得多,  因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代码会变得非常缓慢;  Git基于快照 : SVN等老式版本控制工具是将提交点保存成补丁文件, Git提交是将提交点指向提交时的项目快照..., 提交的东西包含一些元数据(作者, 日期, GPG等); Git的分支和合并 : 分支模型是Git最显著的特点, 因为这改变了开发者的开发模式, SVN等版本控制工具将每个分支都要放在不同的目录中,...脚本文件 : 是否关联Bash命令行执行的脚本文件; -- 使用TrueType编码 : 在命令行中是否使用TruthType编码, 该编码是微软和苹果公司制定的通用编码;  开始菜单快捷方式目录 :...设置开始菜单中快捷方式的目录名称, 也可以选择不再开始菜单中创建快捷方式; 设置环境变量 : 选择使用什么样的命令行工具, 一般情况下我们默认使用Git Bash即可, 默认选择; -- Git自带...分之名称, 就可以创建一个分支, 创建完分支以后可以查看分支, 当前使用的分支会显示成为绿色, 前面带有 "*", 如果不是当前使用的分支, 显示的是白色, 并且没有 "*" 前缀; git branch

    2K50

    离开谷歌的副作用:外面很难找到这么好用的开发工具

    首先,我们应该考虑自己每天在做什么,然后确定这种沮丧情绪的来源。 有一点可以确定的是,无论是否在谷歌工作,软件开发生命周期的一般形式都差不多: 想到一个想要构建的功能,或者一个需要修复的 bug。...到这里,我们就可以等待 CI 运行了,还可以引入一些额外的修复和小改动。 提交补丁以供审核。同事们当然会发表评论,我们再据此做出调整。在变更真正获批之前,这样的过程可能会反复几次。...2 第一个月:别急着引入新工具, 先熟悉现有工具离开谷歌之后,在新公司入职的第一个月,先别急着做出改变,多听、多学习。 作为团队的新成员,大家还没有足够的影响力或者权限来变更团队使用的各种工具。...当然,还有我们自己开发的 Sourcegraph 那些好用的监控工具 另一个重要的早期目标,就是监控。每位工程师在特定情况下都需要处理生产问题。...微服务、Kubernetes、云迁移等一系列新生事物,都标志着企业软件部署方式上的重大转变。不少企业开始采用这些新的范式和技术,但并没有更新自己的监控基础设施,所以很难在新型生产环境下开展调试。

    42010

    告别SVN,Git成“独苗”:GitHub 在 13 年后宣布淘汰Subversion支持

    与 Git 使用的分布式模型相比,SVN 的客户端 - 服务器模型显得比较老派,变更会先被存储在本地,并在推送到上游代码仓库时被分发至中央历史记录(及其他分支)。...各种重要文件——特别是那些大型二进制文件——都可以进行“锁定”,防止其他开发人员在我们处理的同时做出变更。另外,文件、分支、标签等一切都以目录的形式存在。...首先,它采用集中式设计,就是说 SVN 服务器必须处于运行状态才能接收开发者提交的变更。一旦互联网发生故障,麻烦就大了。第二点,分支是种负担。一旦创建了分支,就没法将其删除(如果我没记错的话)。...但如果是要创办一家公司,我会使用 Git 来避免重新培训和新人难上手等问题。” Mercurial 当然也有自己的优势,SVN 用户对它的设计和集中式操作会感觉非常熟悉。...「git config」和「hg config」都是用于编辑用户邮件地址等设置的命令。「git config」命令会自动为用户修改「~/.gitrc」,而且大多数情况下是正确的。

    49420
    领券