Fixed incorrect handling of local and UNC paths when cloning repositories

FossilOrigin-Name: ab62f1bafdc523e1ea7e661676aeb49c82ed93e0
This commit is contained in:
Kostas
2014-08-06 08:32:53 +00:00
parent 888e1a42b3
commit f5a3ba8619
4 changed files with 27 additions and 16 deletions

View File

@ -46,17 +46,22 @@ bool CloneDialog::run(QWidget *parent, QUrl &url, QString &repository)
if(dlg.exec() != QDialog::Accepted)
return false;
url.setUrl(dlg.ui->lineURL->text());
QString urltext = dlg.ui->lineURL->text();
url = QUrl::fromUserInput(urltext);
if(url.isEmpty() || !url.isValid())
{
QMessageBox::critical(parent, tr("Error"), tr("Invalid URL."), QMessageBox::Ok );
return false;
}
url.setUserName(dlg.ui->lineUserName->text());
url.setPassword(dlg.ui->linePassword->text());
if(!dlg.ui->lineUserName->text().trimmed().isEmpty())
url.setUserName(dlg.ui->lineUserName->text());
if(dlg.ui->lineRepository->text().isEmpty() )
if(!dlg.ui->linePassword->text().trimmed().isEmpty())
url.setPassword(dlg.ui->linePassword->text());
if(dlg.ui->lineRepository->text().isEmpty())
{
QMessageBox::critical(parent, tr("Error"), tr("Invalid Repository File."), QMessageBox::Ok );
return false;

View File

@ -498,12 +498,18 @@ void MainWindow::on_actionCloneRepository_triggered()
stopUI();
// Actual command
QStringList cmd = QStringList() << "clone" << url.toString() << repository;
QString source = url.toString();
QString logsource = url.toString(QUrl::RemovePassword);
if(url.isLocalFile())
{
source = url.toLocalFile();
logsource = source;
}
QStringList cmd = QStringList() << "clone" << source << repository;
// Log Command
if(!url.password().isEmpty())
url.setPassword("*****");
QStringList logcmd = QStringList() << "fossil" << "clone" << url.toString() << repository;
QStringList logcmd = QStringList() << "fossil" << "clone" << logsource << repository;
log("<b>&gt;"+logcmd.join(" ")+"</b><br>", true);