Можно ли изменить шаблон арканиста / дифференциала?

Я пытаюсь настроить экземпляр фабрикатора, и я обнаружил, что при использовании шаблона изменения арканиста по умолчанию 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>

Я пытаюсь найти способ изменить этот шаблон по умолчанию, но не могу его найти...

Есть ли способ "персонализировать" этот шаблон?

0 ответов

Как сообщается в задаче Phabricator T12276 на вопрос пользователя @milianw, на самом деле кажется, что нет возможности настроить сообщение фиксации.

Это официальная причина:

Имейте в виду, что Phabricator - это корпоративный инструмент, и большинство установок (99%) - это компании, которые полагаются на систему отчетности, которую мы встроили в программное обеспечение.

- Чад, 18 февраля 2017 г., 23: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 - это бесплатное программное обеспечение с открытым исходным кодом. У вас есть все права играть с кодом и вносить некоторые улучшения. Если вы действительно заинтересованы в этой функции и у вас есть возможность добавить эту функцию настройки, некоторые пользователи могут быть заинтересованы в вашем патче, поэтому вы также можете рассмотреть возможность предложения своих изменений в апстриме, если он работает и не вызывает регрессий.

Другие вопросы по тегам