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:
Kostas 2015-08-26 19:56:14 +00:00
parent 3d73fa7137
commit dc072a8219
4 changed files with 36 additions and 17 deletions

View File

@ -1,5 +1,5 @@
C Translation\sconversion\sis\snow\sautomatically\scalled\sfrom\sthe\sproject\sfile\nImproved\sthe\stranslation\sconverion\sscript\son\sWindows\n
D 2015-08-26T19:45:48.220
C CloneDialog:\sFixed\sincorrect\sparsing\sfor\slocal\srepositories\nCloneDialog:\sFixed\sincorrect\smissing\ssuffix\sdetection\nWe\snow\spass\slocal\srepository\surls\sas\slocal\spaths\sto\sfossil,\sin\sorder\sto\sovercome\sbuggy\sbehavior\sof\sQUrl\sfor\sWindows\spaths
D 2015-08-26T19:56:14.906
F .fossil-settings/manifest a09a968bf05a50058f3ad50132730b719bc39e76
F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35
F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b
@ -216,7 +216,7 @@ F src/AboutDialog.cpp aaa3e614c9aace66531bccc35a3dbf398cb79b7b
F src/AboutDialog.h 269f3a0589067c08f19b542e4576b0ef58bc6ec5
F src/BrowserWidget.cpp 8b8f545cdff4a4188edc698a1b4777f5df46f056
F src/BrowserWidget.h 764d66aa9a93b890298bd0301097739cb4e16597
F src/CloneDialog.cpp c341622b01d493387d6e4928018b3392d92471e8
F src/CloneDialog.cpp ca978366d9d5fcdbb21551cd7d7e782fcebd066c
F src/CloneDialog.h 8813d91f893eb3eb86a4ea5e50f9a53a0ea07047
F src/CommitDialog.cpp 3d25ae2aa8af0ab417736a3f2d7f95a8dcb7480a
F src/CommitDialog.h 921bf27c0c538ab9e9d6bdc750064337d346270b
@ -226,7 +226,7 @@ F src/FileActionDialog.cpp fcaebf9986f789b3440d5390b3458ad5f86fe0c8
F src/FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce
F src/FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2
F src/FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df
F src/Fossil.cpp e3451ddd8f19f1b6f2d446d9390b336e493da197
F src/Fossil.cpp db2d3643d92888a3ab8c25e76b7dfb4f988b18ff
F src/Fossil.h 7acbd4a9d43f6a11c183dbffd73b71d54a4c5108
F src/FslSettingsDialog.cpp e00907d493fba469e48a008aecda88426350b5ac
F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7
@ -261,7 +261,7 @@ F ui/MainWindow.ui e2a18caa7482b3ee0dff477592cdc9574b35fe4f
F ui/RemoteDialog.ui 95a4750d972ed8c49bb10b95db91ff16cfe2dd0b
F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd
F ui/SettingsDialog.ui 2e1b6ce7a49100088c5649292c1319e62e0302e1
P 6c585dffad9f240a390a241dd71f5f2f95f46d49
R 74bc60d098b0e582b722a041e2be3ea0
P e574454625a7701da9d1959fa72e54036d5ab7c3
R edb709028da6b5b7318a59278b5a9c29
U Kostas
Z 9d833293ef52078267928ccc7382a4eb
Z 791f9cfa7aba39378f947f3aabef881e

View File

@ -1 +1 @@
e574454625a7701da9d1959fa72e54036d5ab7c3
afa9b2538a0bfa258104a979eadce28c099e9848

View File

@ -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;
}

View File

@ -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");