CloneDialog: Fixed incorrect parsing for local repositories
CloneDialog: Fixed incorrect missing suffix detection We now pass local repository urls as local paths to fossil, in order to overcome buggy behavior of QUrl for Windows paths FossilOrigin-Name: afa9b2538a0bfa258104a979eadce28c099e9848
This commit is contained in:
@@ -49,11 +49,17 @@ bool CloneDialog::run(QWidget *parent, QUrl &url, QString &repository, QUrl &url
|
||||
|
||||
QString urltext = dlg.ui->lineURL->text();
|
||||
|
||||
url = QUrl::fromUserInput(urltext);
|
||||
if(url.isEmpty() || !url.isValid())
|
||||
// Check if the url is a local file
|
||||
if(QFileInfo(urltext).exists())
|
||||
url = QUrl::fromLocalFile(urltext);
|
||||
else
|
||||
{
|
||||
QMessageBox::critical(parent, tr("Error"), tr("Invalid URL."), QMessageBox::Ok );
|
||||
return false;
|
||||
url = QUrl::fromUserInput(urltext);
|
||||
if(url.isEmpty() || !url.isValid())
|
||||
{
|
||||
QMessageBox::critical(parent, tr("Error"), tr("Invalid URL."), QMessageBox::Ok );
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(!dlg.ui->lineUserName->text().trimmed().isEmpty())
|
||||
@@ -94,7 +100,8 @@ void CloneDialog::GetRepositoryPath(QString &pathResult)
|
||||
|
||||
// Ensure that it ends in the required extension (On GTK, Qt doesn't seem to add it automatically)
|
||||
QFileInfo fi(pathResult);
|
||||
if(fi.suffix().toLower() != ("." FOSSIL_EXT))
|
||||
QString ext = fi.suffix().toLower();
|
||||
if(ext != FOSSIL_EXT)
|
||||
pathResult += "." FOSSIL_EXT;
|
||||
}
|
||||
|
||||
|
@@ -137,11 +137,17 @@ bool Fossil::pushRepository(const QUrl &url)
|
||||
|
||||
if(!url.isEmpty())
|
||||
{
|
||||
params << url.toEncoded();
|
||||
// QUrl generates bad local file url for Windows local paths with drive letters
|
||||
if(url.isLocalFile())
|
||||
params << url.toLocalFile();
|
||||
else
|
||||
params << url.toEncoded();
|
||||
params << "--once";
|
||||
|
||||
QStringList log_params = params;
|
||||
log_params[1] = UrlToStringDisplay(url);
|
||||
if(!url.isLocalFile())
|
||||
log_params[1] = UrlToStringDisplay(url);
|
||||
|
||||
log_params.push_front("fossil");
|
||||
|
||||
runFlags = RUNFLAGS_SILENT_INPUT;
|
||||
@@ -161,11 +167,17 @@ bool Fossil::pullRepository(const QUrl &url)
|
||||
|
||||
if(!url.isEmpty())
|
||||
{
|
||||
params << url.toEncoded();
|
||||
// QUrl generates bad local file url for Windows local paths with drive letters
|
||||
if(url.isLocalFile())
|
||||
params << url.toLocalFile();
|
||||
else
|
||||
params << url.toEncoded();
|
||||
|
||||
params << "--once";
|
||||
|
||||
QStringList log_params = params;
|
||||
log_params[1] = UrlToStringDisplay(url);
|
||||
if(!url.isLocalFile())
|
||||
log_params[1] = UrlToStringDisplay(url);
|
||||
|
||||
log_params.push_front("fossil");
|
||||
|
||||
|
Reference in New Issue
Block a user