diff options
author | Modestas Vainius <modestas@vainius.eu> | 2011-04-24 22:46:23 +0300 |
---|---|---|
committer | Modestas Vainius <modestas@vainius.eu> | 2011-04-24 22:46:23 +0300 |
commit | c630dd763cf6ec096489bea551ca959540969c94 (patch) | |
tree | 64cfc7d592950bb22167892760aa74e322066042 /src/ruleparser.h | |
parent | 197979b6a641b8b5fa4856c700b1235491c73a41 (diff) | |
download | svn2git-c630dd763cf6ec096489bea551ca959540969c94.tar svn2git-c630dd763cf6ec096489bea551ca959540969c94.tar.gz svn2git-c630dd763cf6ec096489bea551ca959540969c94.tar.bz2 svn2git-c630dd763cf6ec096489bea551ca959540969c94.tar.xz svn2git-c630dd763cf6ec096489bea551ca959540969c94.zip |
Support substitutions for repository/branch names.
This patch adds support for 's///' style substitutions for the
repository/branch names in the match rulesets. Useful when e.g. eliminating
characters not supported in git branch names.
Syntax:
match /...
repository some_repo
substitute repository s/pattern/replacement/
branch some_branch
substitute branch s/pattern/replacement/
end match
Diffstat (limited to 'src/ruleparser.h')
-rw-r--r-- | src/ruleparser.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/ruleparser.h b/src/ruleparser.h index 9d21937..26dfa72 100644 --- a/src/ruleparser.h +++ b/src/ruleparser.h @@ -57,9 +57,19 @@ public: struct Match : Rule { + struct Substitution { + QRegExp pattern; + QString replacement; + + bool isValid() { return !pattern.isEmpty(); } + QString& apply(QString &string) { return string.replace(pattern, replacement); } + }; + QRegExp rx; QString repository; + QList<Substitution> repo_substs; QString branch; + QList<Substitution> branch_substs; QString prefix; int minRevision; int maxRevision; @@ -83,6 +93,7 @@ public: const QList<Repository> repositories() const; const QList<Match> matchRules() const; + Match::Substitution parseSubstitution(const QString &string); void load(); private: |