diff --git a/manifest b/manifest index 2f5aba3..f2adbff 100644 --- a/manifest +++ b/manifest @@ -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 diff --git a/manifest.uuid b/manifest.uuid index b73cbaf..4618e0a 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e574454625a7701da9d1959fa72e54036d5ab7c3 \ No newline at end of file +afa9b2538a0bfa258104a979eadce28c099e9848 \ No newline at end of file diff --git a/src/CloneDialog.cpp b/src/CloneDialog.cpp index 26465de..c1f0cf2 100644 --- a/src/CloneDialog.cpp +++ b/src/CloneDialog.cpp @@ -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; } diff --git a/src/Fossil.cpp b/src/Fossil.cpp index 4c75df4..5b5e9a7 100644 --- a/src/Fossil.cpp +++ b/src/Fossil.cpp @@ -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");