Можно ли изменить шаблон арканиста / дифференциала?
Я пытаюсь настроить экземпляр фабрикатора, и я обнаружил, что при использовании шаблона изменения арканиста по умолчанию 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%) - это компании, которые полагаются на систему отчетности, которую мы встроили в программное обеспечение.
В любом случае я пытался изучить класс 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 - это бесплатное программное обеспечение с открытым исходным кодом. У вас есть все права играть с кодом и вносить некоторые улучшения. Если вы действительно заинтересованы в этой функции и у вас есть возможность добавить эту функцию настройки, некоторые пользователи могут быть заинтересованы в вашем патче, поэтому вы также можете рассмотреть возможность предложения своих изменений в апстриме, если он работает и не вызывает регрессий.