summaryrefslogtreecommitdiff
path: root/Source/CTest/cmCTestSVN.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/CTest/cmCTestSVN.h')
-rw-r--r--Source/CTest/cmCTestSVN.h63
1 files changed, 34 insertions, 29 deletions
diff --git a/Source/CTest/cmCTestSVN.h b/Source/CTest/cmCTestSVN.h
index c6548e3fb..46b077835 100644
--- a/Source/CTest/cmCTestSVN.h
+++ b/Source/CTest/cmCTestSVN.h
@@ -1,45 +1,49 @@
-/*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2000-2009 Kitware, Inc.
-
- Distributed under the OSI-approved BSD License (the "License");
- see accompanying file Copyright.txt for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the License for more information.
-============================================================================*/
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
#ifndef cmCTestSVN_h
#define cmCTestSVN_h
+#include "cmConfigure.h"
+
#include "cmCTestGlobalVC.h"
+#include <iosfwd>
+#include <string>
+#include <vector>
+
+class cmCTest;
+class cmXMLWriter;
+
/** \class cmCTestSVN
* \brief Interaction with subversion command-line tool
*
*/
-class cmCTestSVN: public cmCTestGlobalVC
+class cmCTestSVN : public cmCTestGlobalVC
{
public:
/** Construct with a CTest instance and update log stream. */
cmCTestSVN(cmCTest* ctest, std::ostream& log);
- virtual ~cmCTestSVN();
+ ~cmCTestSVN() CM_OVERRIDE;
private:
// Implement cmCTestVC internal API.
- virtual void CleanupImpl();
- virtual void NoteOldRevision();
- virtual void NoteNewRevision();
- virtual bool UpdateImpl();
+ void CleanupImpl() CM_OVERRIDE;
+ bool NoteOldRevision() CM_OVERRIDE;
+ bool NoteNewRevision() CM_OVERRIDE;
+ bool UpdateImpl() CM_OVERRIDE;
bool RunSVNCommand(std::vector<char const*> const& parameters,
- OutputParser* out, OutputParser* err);
+ OutputParser* out, OutputParser* err);
// Information about an SVN repository (root repository or external)
- struct SVNInfo {
+ struct SVNInfo
+ {
- SVNInfo(const char* path) : LocalPath(path) {}
+ SVNInfo(const char* path)
+ : LocalPath(path)
+ {
+ }
// Remove base from the filename
std::string BuildLocalPath(std::string const& path) const;
@@ -58,38 +62,39 @@ private:
// Old and new repository revisions.
std::string OldRevision;
std::string NewRevision;
-
};
// Extended revision structure to include info about external it refers to.
struct Revision;
+
friend struct Revision;
// Info of all the repositories (root, externals and nested ones).
- std::list<SVNInfo> Repositories;
+ std::vector<SVNInfo> Repositories;
// Pointer to the infos of the root repository.
SVNInfo* RootInfo;
std::string LoadInfo(SVNInfo& svninfo);
- void LoadExternals();
- void LoadModifications();
- void LoadRevisions();
- void LoadRevisions(SVNInfo& svninfo);
+ bool LoadRepositories();
+ bool LoadModifications() CM_OVERRIDE;
+ bool LoadRevisions() CM_OVERRIDE;
+ bool LoadRevisions(SVNInfo& svninfo);
- void GuessBase(SVNInfo &svninfo, std::vector<Change> const& changes);
+ void GuessBase(SVNInfo& svninfo, std::vector<Change> const& changes);
void DoRevisionSVN(Revision const& revision,
std::vector<Change> const& changes);
- void WriteXMLGlobal(std::ostream& xml);
+ void WriteXMLGlobal(cmXMLWriter& xml) CM_OVERRIDE;
+ class ExternalParser;
// Parsing helper classes.
class InfoParser;
class LogParser;
class StatusParser;
class UpdateParser;
- class ExternalParser;
+
friend class InfoParser;
friend class LogParser;
friend class StatusParser;