summaryrefslogtreecommitdiffstats
path: root/Source/CTest/cmCTestSVN.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Use cmAppend to append ranges to std::vector instancesSebastian Holtermann2019-05-231-4/+3
|
* Modernize: Prefer .substr in place of .c_str() + intArtur Ryt2019-03-301-2/+2
| | | | | | A lot of temporary/local strings were created out of C-strings substr can utilize current string size, so in theory be a little more efficient.
* cmSystemTools: More functions accept `std::string` paramsVitaly Stakhovsky2019-02-201-2/+2
|
* clang-tidy: Use `= default`Regina Pfeifer2019-01-251-3/+1
| | | | | | Suppress some cases in `Source/cmGeneratorExpressionNode.cxx` and `Source/cmUVHandlePtr.h` where a few older compilers require a user-defined default constructor (with `{}`).
* clang-tidy: Use emplaceRegina Pfeifer2019-01-171-1/+1
|
* CTestSVN: Accept std::string in SVNInfo constructorBrad King2019-01-171-1/+1
|
* clang-tidy: Fix readability-static-accessed-through-instanceRegina Pfeifer2018-11-211-2/+4
| | | | Enable the check in .clang-tidy and fix all warnings.
* Revise C++ coding style using clang-format-6.0Kitware Robot2018-06-011-8/+12
| | | | | | | | | | | | Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`. Use `clang-format` version 6.0. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Reduce allocation of temporary values on heap.Pavel Solodovnikov2018-01-261-2/+2
| | | | | - Use `std::move` while inserting temporary results into vectors. - Change `push_back` to `emplace_back` where appropriate.
* Replace empty-string comparisons with checking against `empty()`.Pavel Solodovnikov2017-09-211-1/+1
|
* Use C++11 override instead of CM_OVERRIDEBrad King2017-09-151-10/+10
| | | | | | | | We now require C++11 support including `override`. Drop use of the old compatibility macro. Convert references as follows: git grep -l CM_OVERRIDE -- '*.h' '*.hxx' '*.cxx' | xargs sed -i 's/CM_OVERRIDE/override/g'
* Meta: modernize old-fashioned loops to range-based `for` (CTest).Pavel Solodovnikov2017-09-141-18/+7
| | | | | | Changes done via `clang-tidy` with some manual fine-tuning for the variable naming and `auto` type deduction where appropriate.
* Use C++11 nullptrDaniel Pfeifer2017-08-241-1/+1
|
* c++: prefer vectors over listsBen Boeckel2017-05-041-6/+6
| | | | | | | | | | | None of these usages of `std::list` were inserting or removing elements in the middle of the structure, so there were no benefits to using it. Other uses were related to C pointers being stable in a list of strings whereas in a vector of strings, small pointer optimizations could be moved and become invalid after a modification to the hosting vector. None of these uses modified the vector after handing out a C string to an external store.
* Use quotes for non-system includesDaniel Pfeifer2017-04-111-1/+1
| | | | | | | | | | | | | Automate with: git grep -l '#include <cm_' -- Source \ | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g' git grep -l '#include <cmsys/' -- Source \ | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g' git grep -l '#include <cm[A-Z]' -- Source \ | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
* ctest_update: Capture failure of svn to load revisions and local modsBrad King2017-02-161-9/+14
| | | | Issue: #16646
* ctest_update: Refactor internal APIs to support more failure casesBrad King2017-02-161-4/+8
| | | | | | Thread failure of VC tool commands through more APIs so that we can detect when they fail. Defer updating of the individual VC tool usage the future and just return true from them for now.
* ctest_update: Fix svn log and external loadingBrad King2017-02-151-1/+4
| | | | | | | | | | | | | Since commit v3.7.0-rc1~132^2 (CTestSVN: Fix segfault when CTEST_UPDATE_VERSION_ONLY is enabled, 2016-09-12) we do not properly extract svn log or externals. After updating we erase the information that was loaded before updating and can no longer log the changes between revisions to extract authors. Fix this by only loading the repository information once, whether needed by `NoteOldRevision`, `NoteNewRevision`, or both. Fixes: #12630, #16646
* Simplify CMake per-source license noticesBrad King2016-09-271-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Per-source copyright/license notice headers that spell out copyright holder names and years are hard to maintain and often out-of-date or plain wrong. Precise contributor information is already maintained automatically by the version control tool. Ultimately it is the receiver of a file who is responsible for determining its licensing status, and per-source notices are merely a convenience. Therefore it is simpler and more accurate for each source to have a generic notice of the license name and references to more detailed information on copyright holders and full license terms. Our `Copyright.txt` file now contains a list of Contributors whose names appeared source-level copyright notices. It also references version control history for more precise information. Therefore we no longer need to spell out the list of Contributors in each source file notice. Replace CMake per-source copyright/license notice headers with a short description of the license and links to `Copyright.txt` and online information available from "https://cmake.org/licensing". The online URL also handles cases of modules being copied out of our source into other projects, so we can drop our notices about replacing links with full license text. Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority of the replacements mechanically. Manually fix up shebang lines and trailing newlines in a few files. Manually update the notices in a few files that the script does not handle.
* CTestSVN: Fix segfault when CTEST_UPDATE_VERSION_ONLY is enabledNils Gladitz2016-09-121-8/+9
| | | | | | | | | Before the change the list of externals was queried only before the svn update. With the change the list is queried both before and after. This should also be more accurate since the list of externals might change during the update.
* CTest: fix include-what-you-use violationsDaniel Pfeifer2016-08-251-0/+6
|
* CTest: don't use else after returnDaniel Pfeifer2016-08-181-5/+4
|
* Make sure unnused parameters are /*named*/Daniel Pfeifer2016-08-161-1/+1
|
* use CM_NULLPTRDaniel Pfeifer2016-06-281-1/+1
|
* mark functions with CM_OVERRIDEDaniel Pfeifer2016-06-271-1/+1
|
* Add CM_OVERRIDE to some functionsDaniel Pfeifer2016-06-271-9/+9
| | | | | | | Run clang-tidy's modernize-use-override checker. This checker must have issues in version 3.8. It has way too little matches. And it adds override to destructors. Revert the changes on the destructors and change override to CM_OVERRIDE.
* Add missing braces around statements.Daniel Pfeifer2016-06-101-1/+2
| | | | | Apply fixits of clang-tidy's readability-braces-around-statements checker.
* Revise C++ coding style using clang-formatKitware Robot2016-05-161-210/+173
| | | | | | | | | | | | | Run the `Utilities/Scripts/clang-format.bash` script to update all our C++ code to a new style defined by `.clang-format`. Use `clang-format` version 3.8. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit.
* Remove `//------...` horizontal separator commentsBrad King2016-05-091-22/+0
| | | | | | | | | | | | | | | | | | | | | | | | Modern editors provide plenty of ways to visually separate functions. Drop the explicit comments that previously served this purpose. Use the following command to automate the change: $ git ls-files -z -- \ "*.c" "*.cc" "*.cpp" "*.cxx" "*.h" "*.hh" "*.hpp" "*.hxx" | egrep -z -v "^Source/cmCommandArgumentLexer\." | egrep -z -v "^Source/cmCommandArgumentParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmDependsJavaLexer\." | egrep -z -v "^Source/cmDependsJavaParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmExprLexer\." | egrep -z -v "^Source/cmExprParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmFortranLexer\." | egrep -z -v "^Source/cmFortranParser(\.y|\.cxx|Tokens\.h)" | egrep -z -v "^Source/cmListFileLexer\." | egrep -z -v "^Source/cm_sha2" | egrep -z -v "^Source/(kwsys|CursesDialog/form)/" | egrep -z -v "^Utilities/(KW|cm).*/" | xargs -0 sed -i '/^\(\/\/---*\|\/\*---*\*\/\)$/ {d;}' This avoids modifying third-party sources and generated sources.
* cmCTestUpdateHandler: Port to cmXMLWriterDaniel Pfeifer2015-05-261-3/+3
|
* stringapi: Miscellaneous char* parametersBen Boeckel2014-03-081-9/+9
|
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-4/+4
| | | | | | | | | | | Casts from std::string -> cmStdString were high on the list of things taking up time. Avoid such implicit casts across function calls by just using std::string everywhere. The comment that the symbol name is too long is no longer relevant since modern debuggers alias the templates anyways and the size is a non-issue since the underlying methods are generated since it's inherited.
* ctest_update: Tell svn not to prompt interactively (#13024)Nils Gladitz2012-09-251-22/+57
| | | | | While at it, add SVNOptions/CTEST_SVN_OPTIONS configuration settings to add options to all svn invocations instead of just "svn update".
* cmCTestSVN: Load and process information from externalsXavier Besseron2012-09-041-6/+32
| | | | | Call LoadExternals() and perform operations on all elements of the Repositories list.
* cmCTestSVN: Add a LoadExternal() function and an ExternalParser classXavier Besseron2012-09-041-0/+50
| | | | | | This call 'svn status' and parse the result to get the list of externals repositories. The external repositories found are added to the Repositories list.
* cmCTestSVN: Use the SVNInfo structureXavier Besseron2012-09-041-65/+89
| | | | | | | - Suppress the URL, Root, Base fields from the cmCTestSVN class - Update the code to use RootInfo instead - LoadInfo(), GuessBase(), and a new LoadRevision() functions work on a given SVNInfo - Use the implementation from the base class for LocalPath(), correct path is built by SVNInfo::BuildLocalPath() instead
* cmCTestSVN: Create the SVNInfo for the root repositoryXavier Besseron2012-09-041-0/+3
|
* cmCTestSVN: Extend Revision struct with SVN repo informationXavier Besseron2012-09-041-3/+8
| | | | Also rename DoRevision to DoRevisionSVN since the signature changes.
* cmCTestSVN: Add the new SVNInfo structureXavier Besseron2012-09-031-0/+26
| | | | | It represents information of an SVN repository. It can be the base repository or an external one.
* Submit Subversion directory path in Update.xmlBrad King2009-12-181-0/+8
| | | | | | | | | | A Subversion revision is unique across the entire repository, but work trees typically correspond only to a subdirectory below the root path. In order to specify the version of the source code that was tested, CTest now submits a <SVNPath> element in Update.xml that specifies the directory of the repository that corresponds to the work tree. In combination with the revision number this uniquely specifies the tested source. See issue #7541.
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* Fix classification of externals in svn statusBrad King2009-08-121-2/+2
| | | | | | | CTest runs 'svn status' to identify modified and conflicting files in the working directory. This commit fixes the interpretation of the 'X' status, which corresponds to svn eXternals. This status should be ignored rather than treated as a local modification.
* ENH: Factor global-VC parts out of cmCTestSVNBrad King2009-04-221-87/+5
| | | | | | This factors parts of the svn update implementation that are useful for any globally-versioning vcs tool into cmCTestGlobalVC. It will allow the code to be shared among the support classes for most vcs tools.
* COMP: Fix cmCTestVC member access for HP compilerBrad King2009-02-251-1/+2
| | | | | The HP C++ compiler needs some help to allow access to some member classes of cmCTestVC.
* ENH: Rewrite CTest Update implementationBrad King2009-02-251-0/+390
| | | | | | | | | | | | | | | This adds a new VCS update implementation to the cmCTestVC hierarchy and removes it from cmCTestUpdateHandler. The new implementation has the following advantages: - Factorized implementation instead of monolithic function - Logs vcs tool output as it is parsed (less memory, inline messages) - Uses one global svn log instead of one log per file - Reports changes on cvs branches (instead of latest trunk change) - Generates simpler Update.xml (only one Directory element per dir) Shared components of the new implementation appear in cmCTestVC and may be re-used by subclasses for other VCS tools in the future.
* ENH: Teach cmCTestSVN to load repo/tree relationBrad King2009-02-241-0/+42
| | | | | | This teaches cmCTestSVN::NoteNewRevision to save the repository URL checked out in the work tree, the repository root, and the path below the root to reach the full URL.
* ENH: Factor out VCS work tree revision checksBrad King2009-02-241-0/+59
| | | | | This moves checks of the work tree revision before and after update from cmCTestUpdateHandler::ProcessHandler into the cmCTestVC hierarchy.
* ENH: Factor out svn work tree cleanupBrad King2009-02-241-0/+10
| | | | | This removes work tree cleanup from cmCTestUpdateHandler and adds an interface for it in cmCTestVC with an implementation in cmCTestSVN.
* ENH: Add cmCTestCVS and cmCTestSVNBrad King2009-02-241-0/+27
These cmCTestVC subclasses will implement interaction with CVS and SVN tools.