Git: Use FilePath in findRepositoryForDirectory

Change-Id: Ia711377111d529e14ed864669df83e1b1bb2bfc9
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
hjk
2021-08-02 13:57:13 +02:00
parent ff57cb548d
commit b72582c050
3 changed files with 10 additions and 10 deletions

View File

@@ -804,24 +804,24 @@ GitSettings &GitClient::settings()
return static_cast<GitSettings &>(m_instance->VcsBaseClientImpl::settings());
}
QString GitClient::findRepositoryForDirectory(const QString &directory) const
FilePath GitClient::findRepositoryForDirectory(const FilePath &directory) const
{
if (directory.isEmpty() || directory.endsWith("/.git") || directory.contains("/.git/"))
return QString();
if (directory.isEmpty() || directory.endsWith("/.git") || directory.path().contains("/.git/"))
return {};
// QFileInfo is outside loop, because it is faster this way
QFileInfo fileInfo;
FilePath parent;
for (FilePath dir = FilePath::fromString(directory); !dir.isEmpty(); dir = dir.parentDir()) {
for (FilePath dir = directory; !dir.isEmpty(); dir = dir.parentDir()) {
const FilePath gitName = dir.pathAppended(GIT_DIRECTORY);
if (!gitName.exists())
continue; // parent might exist
fileInfo.setFile(gitName.toString());
if (fileInfo.isFile())
return dir.toString();
return dir;
if (gitName.pathAppended("config").exists())
return dir.toString();
return dir;
}
return QString();
return {};
}
QString GitClient::findGitDirForRepository(const FilePath &repositoryDir) const