OSDN Git Service

Git: Change mapping of repository to directory name
authorTobias Hunger <tobias.hunger@nokia.com>
Fri, 1 Oct 2010 10:45:47 +0000 (12:45 +0200)
committerTobias Hunger <tobias.hunger@nokia.com>
Mon, 4 Oct 2010 15:19:17 +0000 (17:19 +0200)
Change the mapping of repository name to checkout directory name.
This should now work better with windows.

src/plugins/git/clonewizardpage.cpp

index 3b321f9..ea0b762 100644 (file)
@@ -89,7 +89,8 @@ QString CloneWizardPage::directoryFromRepository(const QString &urlIn) const
      * 'user@host:qt/qt.git', 'http://host/qt/qt.git' 'local repo'
      * ------> 'qt' .  */
 
-    QString url = urlIn.trimmed();
+    QString url = urlIn.trimmed().replace(QChar('\\'), QChar('/'));
+
     const QChar slash = QLatin1Char('/');
     // remove host
     const int protocolDelimiterPos = url.indexOf(d->protocolDelimiter); // "://"
@@ -115,8 +116,9 @@ QString CloneWizardPage::directoryFromRepository(const QString &urlIn) const
     }
     // fix invalid characters
     const QChar dash = QLatin1Char('-');
-    url.replace(slash, dash);
-    url.replace(QLatin1Char('.'), dash);
+    url.replace(QRegExp(QLatin1String("[^0-9a-zA-Z_-]")), dash);
+    // trim leading dashes (they are annoying and get created when using local pathes)
+    url.replace(QRegExp(QLatin1String("^-+")), QString());
     return url;
 }