From 57144e28da79bc8e9df00b0c7dfc5d054d066877 Mon Sep 17 00:00:00 2001 From: Andre Hartmann Date: Mon, 6 Mar 2017 22:40:03 +0100 Subject: [PATCH] Git: Factor out pattern for invalid branch names Re-use it in the follow-up commit for remote names also. Change-Id: Ib88792a1abdc2fa8ac23c99aa7d4861728e36eec Reviewed-by: Orgad Shaneh Reviewed-by: Tobias Hunger --- src/plugins/git/branchadddialog.cpp | 16 ++-------------- src/plugins/git/gitplugin.cpp | 20 ++++++++++++++++++++ src/plugins/git/gitplugin.h | 1 + 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/plugins/git/branchadddialog.cpp b/src/plugins/git/branchadddialog.cpp index 2fbd50ae413..d3c122b974a 100644 --- a/src/plugins/git/branchadddialog.cpp +++ b/src/plugins/git/branchadddialog.cpp @@ -25,6 +25,7 @@ #include "branchadddialog.h" #include "ui_branchadddialog.h" +#include "gitplugin.h" #include @@ -47,20 +48,7 @@ class BranchNameValidator : public QValidator public: BranchNameValidator(const QStringList &localBranches, QObject *parent = 0) : QValidator(parent), - m_invalidChars( - "\\s" // no whitespace - "|~" // no "~" - "|\\^" // no "^" - "|\\[" // no "[" - "|\\.\\." // no ".." - "|/\\." // no slashdot - "|:" // no ":" - "|@\\{" // no "@{" sequence - "|\\\\" // no backslash - "|//" // no double slash - "|^[/-]" // no leading slash or dash - "|\"" // no quotes - ), + m_invalidChars(GitPlugin::invalidBranchAndRemoteNamePattern()), m_localBranches(localBranches) { } diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 08de519e027..d3253dd19d7 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -173,6 +173,26 @@ QString GitPlugin::msgRepositoryLabel(const QString &repository) tr("Repository: %1").arg(QDir::toNativeSeparators(repository)); } +// Returns a regular expression pattern with characters not allowed +// in branch and remote names. +QString GitPlugin::invalidBranchAndRemoteNamePattern() +{ + return QLatin1String( + "\\s" // no whitespace + "|~" // no "~" + "|\\^" // no "^" + "|\\[" // no "[" + "|\\.\\." // no ".." + "|/\\." // no slashdot + "|:" // no ":" + "|@\\{" // no "@{" sequence + "|\\\\" // no backslash + "|//" // no double slash + "|^[/-]" // no leading slash or dash + "|\"" // no quotes + ); +} + const VcsBaseSubmitEditorParameters submitParameters = { Git::Constants::SUBMIT_MIMETYPE, Git::Constants::GITSUBMITEDITOR_ID, diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h index a6eb16e8468..5948c3b2938 100644 --- a/src/plugins/git/gitplugin.h +++ b/src/plugins/git/gitplugin.h @@ -88,6 +88,7 @@ public: Gerrit::Internal::GerritPlugin *gerritPlugin() const; bool isCommitEditorOpen() const; static QString msgRepositoryLabel(const QString &repository); + static QString invalidBranchAndRemoteNamePattern(); void startCommit(); void updateBranches(const QString &repository);