1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-26 16:52:41 +01:00

Show a warning when "git" is too old to support filesize limits

Summary: See <https://discourse.phabricator-community.org/t/git-push-failed-with-filesize-limit-on/2635/2>

Test Plan: {F6378519}

Reviewers: amckinley, avivey

Reviewed By: avivey

Differential Revision: https://secure.phabricator.com/D20431
This commit is contained in:
epriestley 2019-04-15 12:09:00 -07:00
parent 5a2d0f0437
commit e7a31832bf

View file

@ -236,6 +236,22 @@ final class DiffusionRepositoryEditEngine
'you can set a path in **Import Only**. Phabricator will ignore '. 'you can set a path in **Import Only**. Phabricator will ignore '.
'commits which do not affect this path.'); 'commits which do not affect this path.');
$filesize_warning = null;
if ($object->isGit()) {
$git_binary = PhutilBinaryAnalyzer::getForBinary('git');
$git_version = $git_binary->getBinaryVersion();
$filesize_version = '1.8.4';
if (version_compare($git_version, $filesize_version, '<')) {
$filesize_warning = pht(
'(WARNING) {icon exclamation-triangle} The version of "git" ("%s") '.
'installed on this server does not support '.
'"--batch-check=<format>", a feature required to enforce filesize '.
'limits. Upgrade to "git" %s or newer to use this feature.',
$git_version,
$filesize_version);
}
}
return array( return array(
id(new PhabricatorSelectEditField()) id(new PhabricatorSelectEditField())
->setKey('vcs') ->setKey('vcs')
@ -477,6 +493,7 @@ final class DiffusionRepositoryEditEngine
->setDescription(pht('Maximum permitted file size.')) ->setDescription(pht('Maximum permitted file size.'))
->setConduitDescription(pht('Change the filesize limit.')) ->setConduitDescription(pht('Change the filesize limit.'))
->setConduitTypeDescription(pht('New repository filesize limit.')) ->setConduitTypeDescription(pht('New repository filesize limit.'))
->setControlInstructions($filesize_warning)
->setValue($object->getFilesizeLimit()), ->setValue($object->getFilesizeLimit()),
id(new PhabricatorTextEditField()) id(new PhabricatorTextEditField())
->setKey('copyTimeLimit') ->setKey('copyTimeLimit')