1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-09 16:32:39 +01:00

Add setup check to avoid git version 2.5.0 and below (May 2015)

Summary:
After this change, if you have a deprecated git version,
now you see a related information config warning:

{F276840}

Having said that the git version 1.8.3.1 - that for example
is provided by CentOS 7 - is surely problematic;

Some sources indicate all git versions *before* 2.5.0 as not
able to handle the '--' escape argument. The '--' arg
is used to separate normal git flags from user arguments,
so that they cannot be mistakenly exchanged. Kind of:

    git <flags> -- <arguments>

The problem is, Phabricator/Phorge at the moment executes
this kind of git commands when you surf a git repository from
the web interface:

    git cat-file -t -- <hash>:<file>

But, if your git version does not support "--", you can
get yourself into unhappy situations since "--" could be
just interpreted as a "wrong value", causing other
considerations and misleading exceptions, such as:

    This path was a submodule at <repo>:<hash>

If you have seen the above error while surfing a git repo,
and if you have 2.5.0 or before, and if you are sure that
the mentioned path it's not a submodule, you probably
need a git update.

It is not yet clear whether Phabricator/Phorge should
support the possibility of this lack of support for "--".
In the meanwhile, just update your git on the server.

AFAIK no particular version is required on your clients.

Related information:

- https://unix.stackexchange.com/a/740621/85666
- b48158ac94

If you disagree, please do not simply ignore the
warning but share your experience in the Task.

Ref T15179

Test Plan:
- open Phorge, you see no warnings since you are
  already up to date. Nice.
- Otherwise, you see a nice config message, and you
  can ignore it as usual.

Reviewers: O1 Blessed Committers, Cigaryno, avivey

Reviewed By: O1 Blessed Committers, Cigaryno, avivey

Subscribers: avivey, speck, tobiaswiese, Matthew, Cigaryno

Maniphest Tasks: T15179

Differential Revision: https://we.phorge.it/D25089
This commit is contained in:
Valerio Bozzolan 2023-04-10 11:02:31 +02:00
parent 9c759fe23a
commit 1b9da964e9

View file

@ -104,7 +104,17 @@ final class PhabricatorBinariesSetupCheck extends PhabricatorSetupCheck {
switch ($vcs['versionControlSystem']) { switch ($vcs['versionControlSystem']) {
case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT: case PhabricatorRepositoryType::REPOSITORY_TYPE_GIT:
$bad_versions = array(); $bad_versions = array(
// We need 2.5.0 to use "git cat-file -t -- <hash>:<file>"
// https://we.phorge.it/T15179
'< 2.5.0' => pht(
'The minimum supported version of Git on the server is %s, '.
'which was released in %s. In older versions, the Git server '.
'may not be able to escape arguments with the "--" operator. '.
'Note: your users do not require a particular version of Git.',
'2.5.0',
'2015'),
);
break; break;
case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN: case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN:
$bad_versions = array( $bad_versions = array(