14

我正在尝试配置一个 phabricator 实例,我发现在我们使用时更改奥术师默认模板arc diff对团队非常有用。

实际上模板包含以下文本:

<<Replace this line with your Revision Title>>

Summary: 

Test Plan: 

Reviewers: 

Subscribers: 


# Tip: Write "Fixes T123" in your summary to automatically close the
# corresponding task when this change lands.

# NEW DIFFERENTIAL REVISION
# Describe the changes in this new revision.
#
# arc could not identify any existing revision in your working copy.
# If you intended to update an existing revision, use:
#
#   $ arc diff --update <revision>

我正在谷歌搜索找到任何方法来更改这个默认模板,但我找不到它......

有什么方法可以“个性化”这个模板?

4

1 回答 1

0

正如来自用户@milianw 的问题在 Phabricator Task T12276中所报告的那样,实际上似乎没有自定义提交消息的能力。

这是官方的原因:

请记住,Phabricator 是一种企业工具,大多数安装 (99%) 都是依赖于我们在软件中内置的问责制的企业。

——乍得,2017 年 2 月 18 日,晚上 11:55

无论如何,我试图探索这个类DifferentialCommitMessageField,我发现这个方法产生了所有可用字段的列表:

  final public static function getAllFields() {
    return id(new PhutilClassMapQuery())
      ->setAncestorClass(__CLASS__)
      ->setUniqueMethod('getCommitMessageFieldKey')
      ->setSortMethod('getFieldOrder')
      ->execute();
  }

并查看所有继承的类DifferentialCommitMessageField。他们中有一些:

  • DifferentialTagsCommitMessageField
  • DifferentialSubscribersCommitMessageField
  • DifferentialAuditorsCommitMessageField
  • DifferentialReviewedByCommitMessageField
  • DifferentialTestPlanCommitMessageField
  • DifferentialTitleCommitMessageField
  • DifferentialSummaryCommitMessageField
  • ...

因此,也许您可​​以自定义更改相关类的字段。您可以更改一些默认值,或者您可以尝试禁用在以下类之一中声明此方法的字段:

  /**
   * This method is inherited from DifferentialCommitMessageField
   *
   * @override
   */
  public function isFieldEnabled() {
    // return true;
    return false
  }

简而言之,您可以尝试扩展 Phabricator 来做到这一点。目前,此功能不是其一般企业用例的优先事项。

无论如何,不​​要忘记 Phabricator 是一个自由/自由和开源软件。您拥有使用代码并进行一些改进的所有权利。如果您真的对此功能感兴趣并且您有可能添加此自定义功能,那么一些用户可能对您的补丁感兴趣,因此您也可以考虑向上游提出您的更改,如果它有效并且不会引入回归。

于 2020-02-26T07:16:38.533 回答