SvnCpp
|
#include <client.hpp>
Public Member Functions | |
Client (Context *context=0) | |
virtual | ~Client () |
const CommitInfo & | commitInfo () const |
const Context * | getContext () const |
Context * | getContext () |
void | setContext (Context *context=NULL) |
StatusEntries | status (const char *path, const bool descend=false, const bool get_all=true, const bool update=false, const bool no_ignore=false, const bool ignore_externals=false) |
svn_revnum_t | status (const char *path, const StatusFilter &filter, const bool descend, const bool update, StatusEntries &entries) |
svn_revnum_t | checkout (const char *moduleName, const Path &destPath, const Revision &revision, svn_depth_t depth, bool ignore_externals=false, const Revision &peg_revision=Revision::UNSPECIFIED) |
void | relocate (const Path &path, const char *from_url, const char *to_url, bool recurse) |
void | remove (const Path &path, bool force) |
void | remove (const Targets &targets, bool force) |
void | lock (const Targets &targets, bool force, const char *comment) |
void | unlock (const Targets &targets, bool force) |
void | revert (const Targets &targets, bool recurse) |
void | add (const Path &path, bool recurse) |
std::vector< svn_revnum_t > | update (const Targets &targets, const Revision &revision, svn_depth_t depth, bool depth_is_sticky, bool ignore_externals) |
svn_revnum_t | update (const Path &path, const Revision &revision, svn_depth_t depth, bool depth_is_sticky, bool ignore_externals) |
std::string | cat (const Path &path, const Revision &revision, const Revision &peg_revision=Revision::UNSPECIFIED) |
void | get (Path &dstPath, const Path &path, const Revision &revision, const Revision &peg_revision=Revision::UNSPECIFIED) |
AnnotatedFile * | annotate (const Path &path, const Revision &revisionStart, const Revision &revisionEnd) |
svn_revnum_t | commit (const Targets &targets, const char *message, bool recurse, bool keep_locks=false) |
void | copy (const Path &srcPath, const Revision &srcRevision, const Path &destPath) |
void | move (const Path &srcPath, const Revision &srcRevision, const Path &destPath, bool force) |
void | mkdir (const Path &path) |
void | mkdir (const Targets &targets) |
void | cleanup (const Path &path) |
void | cleanup (const Path &path, bool breakLocks, bool fixTimestamps, bool vacuumPristines, bool includeExternals) |
void | vacuum (const Path &path, bool removeUnversioned, bool removeIgnored, bool fixTimestamps, bool vacuumPristines, bool includeExternals) |
void | upgrade (const Path &path) |
void | resolved (const Path &path, bool recurse) |
void | doExport (const Path &from_path, const Path &to_path, const Revision &revision, bool overwrite=false, const Revision &peg_revision=Revision::UNSPECIFIED, bool ignore_externals=false, svn_depth_t depth=svn_depth_infinity, const char *native_eol=NULL) |
svn_revnum_t | doSwitch (const Path &path, const char *url, const Revision &revision, bool recurse) |
void | import (const Path &path, const char *url, const char *message, bool recurse) |
void | import (const Path &path, const Path &url, const char *message, bool recurse) |
void | merge (const Path &path1, const Revision &revision1, const Path &path2, const Revision &revision2, const Path &localPath, bool force, bool recurse, bool notice_ancestry=false, bool dry_run=false) |
InfoVector | info (const Path &pathOrUrl, bool recurse=false, const Revision &revision=Revision::UNSPECIFIED, const Revision &pegRevision=Revision::UNSPECIFIED) |
const LogEntries * | log (const char *path, const Revision &revisionStart, const Revision &revisionEnd, bool discoverChangedPaths=false, bool strictNodeHistory=true) |
const LogEntries * | log (const char *path, const Revision &revisionStart, const Revision &revisionEnd, const int limit, bool discoverChangedPaths=false, bool strictNodeHistory=true) |
std::string | diff (const Path &tmpPath, const Path &path, const Revision &revision1, const Revision &revision2, const bool recurse, const bool ignoreAncestry, const bool noDiffDeleted) |
std::string | diff (const Path &tmpPath, const Path &path1, const Path &path2, const Revision &revision1, const Revision &revision2, const bool recurse, const bool ignoreAncestry, const bool noDiffDeleted) |
std::string | diff (const Path &tmpPath, const Path &path, const Revision &pegRevision, const Revision &revision1, const Revision &revision2, const bool recurse, const bool ignoreAncestry, const bool noDiffDeleted) |
DirEntries | list (const char *pathOrUrl, svn_opt_revision_t *revision, bool recurse) |
PathPropertiesMapList | proplist (const Path &path, const Revision &revision, bool recurse=false) |
PathPropertiesMapList | propget (const char *propName, const Path &path, const Revision &revision, bool recurse=false) |
void | propset (const char *propName, const char *propValue, const Path &path, const Revision &revision, bool recurse=false, bool skip_checks=true) |
void | propdel (const char *propName, const Path &path, const Revision &revision, bool recurse=false) |
std::pair< svn_revnum_t, PropertiesMap > | revproplist (const Path &path, const Revision &revision) |
std::pair< svn_revnum_t, std::string > | revpropget (const char *propName, const Path &path, const Revision &revision) |
svn_revnum_t | revpropset (const char *propName, const char *propValue, const Path &path, const Revision &revision, bool force=false) |
svn_revnum_t | revpropdel (const char *propName, const Path &path, const Revision &revision, bool force=false) |
void | ignore (const Path &path) |
void | ignore (const Targets &targets) |
Subversion client API.
svn::Client::Client | ( | Context * | context = 0 | ) |
Initializes the primary memory pool.
|
virtual |
void svn::Client::add | ( | const Path & | path, |
bool | recurse ) |
Adds a file to the repository.
ClientException | If libsvn reports an error during the operation. |
AnnotatedFile * svn::Client::annotate | ( | const Path & | path, |
const Revision & | revisionStart, | ||
const Revision & | revisionEnd ) |
Retrieves the contents for a specific revision of a path
path | path of file or directory |
revisionStart | revision to retrieve |
revisionEnd | revision to retrieve |
ClientException | If libsvn reports an error during the operation. |
std::string svn::Client::cat | ( | const Path & | path, |
const Revision & | revision, | ||
const Revision & | peg_revision = Revision::UNSPECIFIED ) |
Retrieves the contents for a specific revision of a path
path | path of file or directory |
revision | revision to retrieve |
peg_revision | peg revision to retrieve, by default is the latest one |
ClientException | If libsvn reports an error during the operation. |
svn_revnum_t svn::Client::checkout | ( | const char * | moduleName, |
const Path & | destPath, | ||
const Revision & | revision, | ||
svn_depth_t | depth, | ||
bool | ignore_externals = false, | ||
const Revision & | peg_revision = Revision::UNSPECIFIED ) |
Executes a revision checkout.
moduleName | name of the module to checkout. |
destPath | destination directory for checkout. |
revision | the revision number to checkout. If the number is -1 then it will checkout the latest revision. |
depth | the checkout depth. |
ignore_externals | whether you want get external resources too. |
peg_revision | peg revision to checkout, by default current. |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::cleanup | ( | const Path & | path | ) |
Recursively cleans up a local directory, finishing any incomplete operations, removing lockfiles, etc.
path | a local directory. |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::cleanup | ( | const Path & | path, |
bool | breakLocks, | ||
bool | fixTimestamps, | ||
bool | vacuumPristines, | ||
bool | includeExternals ) |
Recursively cleans up a local directory, finishing any incomplete operations, removing lockfiles, etc. New method for Subversion 1.9 and higher.
path | absolute path a local directory. |
breakLocks | Break existing working copy locks at or below the path |
fixTimestamps | Fix recorded timestamps for unmodified files |
vacuumPristines | Remove unreferenced files in the pristine store |
includeExternals | Recurse into externals and clean them up as well |
ClientException | If libsvn reports an error during the operation. |
svn_revnum_t svn::Client::commit | ( | const Targets & | targets, |
const char * | message, | ||
bool | recurse, | ||
bool | keep_locks = false ) |
Commits changes to the repository. This usually requires authentication, see Auth.
targets | files to commit. |
message | log message. |
recurse | whether the operation should be done recursively. |
keep_locks | whether to preserve locks or to release them after commit |
ClientException | If libsvn reports an error during the operation. |
|
inline |
void svn::Client::copy | ( | const Path & | srcPath, |
const Revision & | srcRevision, | ||
const Path & | destPath ) |
Copies a versioned file with the history preserved.
ClientException | If libsvn reports an error during the operation. |
std::string svn::Client::diff | ( | const Path & | tmpPath, |
const Path & | path, | ||
const Revision & | pegRevision, | ||
const Revision & | revision1, | ||
const Revision & | revision2, | ||
const bool | recurse, | ||
const bool | ignoreAncestry, | ||
const bool | noDiffDeleted ) |
Produce diff output which describes the delta of path/pegRevision between revision1 and revision2. path can be either a working-copy path or a URL.
A ClientException will be thrown if either revision1 or revision2 has an ‘unspecified’ or unrecognized ‘kind’.
tmpPath | prefix for a temporary directory needed by diff. Filenames will have ".tmp" and similar added to this prefix in order to ensure uniqueness. |
path | path of the file. |
pegRevision | the peg revision to identify the path. |
revision1 | one of the revisions to check. |
revision2 | the other revision. |
recurse | whether the operation should be done recursively. |
ignoreAncestry | whether the files will be checked for relatedness. |
noDiffDeleted | if true, no diff output will be generated on deleted files. |
ClientException | If libsvn reports an error during the operation. |
std::string svn::Client::diff | ( | const Path & | tmpPath, |
const Path & | path, | ||
const Revision & | revision1, | ||
const Revision & | revision2, | ||
const bool | recurse, | ||
const bool | ignoreAncestry, | ||
const bool | noDiffDeleted ) |
Produce diff output which describes the delta between path/revision1 and path/revision2. path can be either a working-copy path or a URL.
A ClientException will be thrown if either revision1 or revision2 has an ‘unspecified’ or unrecognized ‘kind’.
tmpPath | prefix for a temporary directory needed by diff. Filenames will have ".tmp" and similar added to this prefix in order to ensure uniqueness. |
path | path of the file. |
revision1 | one of the revisions to check. |
revision2 | the other revision. |
recurse | whether the operation should be done recursively. |
ignoreAncestry | whether the files will be checked for relatedness. |
noDiffDeleted | if true, no diff output will be generated on deleted files. |
ClientException | If libsvn reports an error during the operation. |
std::string svn::Client::diff | ( | const Path & | tmpPath, |
const Path & | path1, | ||
const Path & | path2, | ||
const Revision & | revision1, | ||
const Revision & | revision2, | ||
const bool | recurse, | ||
const bool | ignoreAncestry, | ||
const bool | noDiffDeleted ) |
Produce diff output which describes the delta between path1/revision1 and path2/revision2. path1, path2 can be either a working-copy path or a URL.
A ClientException will be thrown if either revision1 or revision2 has an ‘unspecified’ or unrecognized ‘kind’.
tmpPath | prefix for a temporary directory needed by diff. Filenames will have ".tmp" and similar added to this prefix in order to ensure uniqueness. |
path1 | path of the first file corresponding to revision1. |
path2 | path of the first file corresponding to revision2. |
revision1 | one of the revisions to check. |
revision2 | the other revision. |
recurse | whether the operation should be done recursively. |
ignoreAncestry | whether the files will be checked for relatedness. |
noDiffDeleted | if true, no diff output will be generated on deleted files. |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::doExport | ( | const Path & | from_path, |
const Path & | to_path, | ||
const Revision & | revision, | ||
bool | overwrite = false, | ||
const Revision & | peg_revision = Revision::UNSPECIFIED, | ||
bool | ignore_externals = false, | ||
svn_depth_t | depth = svn_depth_infinity, | ||
const char * | native_eol = NULL ) |
Export into file or directory TO_PATH from local or remote FROM_PATH
from_path | path to import |
to_path | where to import |
revision | revision of files in source repository or working copy |
peg_revision | |
overwrite | overwrite existing files in to_path |
ignore_externals | whether to ignore external sources in from_path |
depth | recursion depth |
native_eol | which EOL to use when exporting, usually different for different OSs |
ClientException | If libsvn reports an error during the operation. |
svn_revnum_t svn::Client::doSwitch | ( | const Path & | path, |
const char * | url, | ||
const Revision & | revision, | ||
bool | recurse ) |
Update local copy to mirror a new url. This excapsulates the svn_client_switch() client method.
ClientException | If libsvn reports an error during the operation. |
void svn::Client::get | ( | Path & | dstPath, |
const Path & | path, | ||
const Revision & | revision, | ||
const Revision & | peg_revision = Revision::UNSPECIFIED ) |
Retrieves the contents for a specific revision of a path and saves it to the destination file dstPath.
If dstPath is empty (""), then this path will be constructed from the temporary directory on this system and the filename in path. dstPath will still have the file extension from path and uniqueness of the temporary filename will be ensured.
dstPath | Filename in which the contents of the file file will be safed. |
path | path or url |
revision | |
peg_revision | peg revision to retrieve, by default is the latest one |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::ignore | ( | const Path & | path | ) |
Add a single file into ignore list.
path | path to the file |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::ignore | ( | const Targets & | targets | ) |
Add files into ignore list.
targets | targets to treat as ignored |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::import | ( | const Path & | path, |
const char * | url, | ||
const char * | message, | ||
bool | recurse ) |
Import file or directory PATH into repository directory URL at head. This usually requires authentication, see Auth.
path | path to import |
url | |
message | log message. |
recurse |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::import | ( | const Path & | path, |
const Path & | url, | ||
const char * | message, | ||
bool | recurse ) |
InfoVector svn::Client::info | ( | const Path & | pathOrUrl, |
bool | recurse = false, | ||
const Revision & | revision = Revision::UNSPECIFIED, | ||
const Revision & | pegRevision = Revision::UNSPECIFIED ) |
retrieve information about the given path or URL
pathOrUrl | |
pegRevision | |
revision | |
recurse |
ClientException | If libsvn reports an error during the operation. |
DirEntries svn::Client::list | ( | const char * | pathOrUrl, |
svn_opt_revision_t * | revision, | ||
bool | recurse ) |
lists entries in pathOrUrl no matter whether local or repository
pathOrUrl | |
revision | |
recurse |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::lock | ( | const Targets & | targets, |
bool | force, | ||
const char * | comment ) |
Sets files to lock.
targets | targets to lock |
force | force setting/stealing lock |
comment | writing comment about lock setting is neccessary |
ClientException | If libsvn reports an error during the operation. |
const LogEntries * svn::Client::log | ( | const char * | path, |
const Revision & | revisionStart, | ||
const Revision & | revisionEnd, | ||
bool | discoverChangedPaths = false, | ||
bool | strictNodeHistory = true ) |
Retrieve log information for the given path Loads the log messages result set. The first entry is the youngest revision.
You can use the constants Revision::START and Revision::HEAD
path | |
revisionStart | |
revisionEnd | |
discoverChangedPaths | |
strictNodeHistory |
ClientException | If libsvn reports an error during the operation. |
const LogEntries * svn::Client::log | ( | const char * | path, |
const Revision & | revisionStart, | ||
const Revision & | revisionEnd, | ||
const int | limit, | ||
bool | discoverChangedPaths = false, | ||
bool | strictNodeHistory = true ) |
Retrieve log information for the given path Loads the log messages result set. The first entry is the youngest revision. Can limit the number of log entries returned.
You can use the constants Revision::START and Revision::HEAD
path | |
revisionStart | |
revisionEnd | |
limit | |
discoverChangedPaths | |
strictNodeHistory |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::merge | ( | const Path & | path1, |
const Revision & | revision1, | ||
const Path & | path2, | ||
const Revision & | revision2, | ||
const Path & | localPath, | ||
bool | force, | ||
bool | recurse, | ||
bool | notice_ancestry = false, | ||
bool | dry_run = false ) |
Merge changes from two paths into a new local path.
ClientException | If libsvn reports an error during the operation. |
void svn::Client::mkdir | ( | const Path & | path | ) |
Creates a directory directly in a repository or creates a directory on disk and schedules it for addition. If path is a URL then authentication is usually required, see Auth.
path | Directory to create |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::mkdir | ( | const Targets & | targets | ) |
Creates one or several directories directly in a repository or creates one or several directories on disk and schedules them for addition. If path is a URL then authentication is usually required, see Auth.
targets | Directories to create |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::move | ( | const Path & | srcPath, |
const Revision & | srcRevision, | ||
const Path & | destPath, | ||
bool | force ) |
Moves or renames a file.
ClientException | If libsvn reports an error during the operation. |
void svn::Client::propdel | ( | const char * | propName, |
const Path & | path, | ||
const Revision & | revision, | ||
bool | recurse = false ) |
delete property in path no matter whether local or repository
propName | |
path | |
revision | |
recurse |
ClientException | If libsvn reports an error during the operation. |
PathPropertiesMapList svn::Client::propget | ( | const char * | propName, |
const Path & | path, | ||
const Revision & | revision, | ||
bool | recurse = false ) |
lists one property in path no matter whether local or repository
propName | |
path | |
revision | |
recurse |
ClientException | If libsvn reports an error during the operation. |
PathPropertiesMapList svn::Client::proplist | ( | const Path & | path, |
const Revision & | revision, | ||
bool | recurse = false ) |
lists properties in path no matter whether local or repository
path | |
revision | |
recurse |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::propset | ( | const char * | propName, |
const char * | propValue, | ||
const Path & | path, | ||
const Revision & | revision, | ||
bool | recurse = false, | ||
bool | skip_checks = true ) |
This method is deprecated, please use Property.set set property in path no matter whether local or repository
path | |
revision | |
propName | |
propValue | |
recurse | |
skip_checks |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::relocate | ( | const Path & | path, |
const char * | from_url, | ||
const char * | to_url, | ||
bool | recurse ) |
relocate wc from to to
ClientException | If libsvn reports an error during the operation. |
void svn::Client::remove | ( | const Path & | path, |
bool | force ) |
Sets a single file for deletion.
ClientException | If libsvn reports an error during the operation. |
void svn::Client::remove | ( | const Targets & | targets, |
bool | force ) |
Sets files for deletion.
targets | targets to delete |
force | force if files are locally modified |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::resolved | ( | const Path & | path, |
bool | recurse ) |
Removes the 'conflicted' state on a file.
ClientException | If libsvn reports an error during the operation. |
void svn::Client::revert | ( | const Targets & | targets, |
bool | recurse ) |
Reverts a couple of files to a pristiner state.
ClientException | If libsvn reports an error during the operation. |
svn_revnum_t svn::Client::revpropdel | ( | const char * | propName, |
const Path & | path, | ||
const Revision & | revision, | ||
bool | force = false ) |
delete revision property in path no matter whether local or repository
propName | |
path | |
revision | |
force |
ClientException | If libsvn reports an error during the operation. |
std::pair< svn_revnum_t, std::string > svn::Client::revpropget | ( | const char * | propName, |
const Path & | path, | ||
const Revision & | revision ) |
lists one revision property in path no matter whether local or repository
propName | |
path | |
revision |
ClientException | If libsvn reports an error during the operation. |
std::pair< svn_revnum_t, PropertiesMap > svn::Client::revproplist | ( | const Path & | path, |
const Revision & | revision ) |
lists revision properties in path no matter whether local or repository
path | |
revision |
ClientException | If libsvn reports an error during the operation. |
svn_revnum_t svn::Client::revpropset | ( | const char * | propName, |
const char * | propValue, | ||
const Path & | path, | ||
const Revision & | revision, | ||
bool | force = false ) |
set revision property in path no matter whether local or repository
propName | |
propValue | |
path | |
revision | |
force |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::setContext | ( | Context * | context = NULL | ) |
sets the client context you have to make sure the old context is de-allocated
context | new context to use |
StatusEntries svn::Client::status | ( | const char * | path, |
const bool | descend = false, | ||
const bool | get_all = true, | ||
const bool | update = false, | ||
const bool | no_ignore = false, | ||
const bool | ignore_externals = false ) |
Enumerates all files/dirs at a given path.
Throws an exception if an error occurs
path | Path to explore. |
descend | Recurse into subdirectories if existant. |
get_all | Return all entries, not just the interesting ones. |
update | Query the repository for updates. |
no_ignore | Disregard default and svn:ignore property ignores. |
ignore_externals | Disregard external files. |
ClientException | If libsvn reports an error during the operation. |
svn_revnum_t svn::Client::status | ( | const char * | path, |
const StatusFilter & | filter, | ||
const bool | descend, | ||
const bool | update, | ||
StatusEntries & | entries ) |
Enumerates all files/dirs matchin the parameter filter at path and returns them in the vector statusEntries
Throws an exception if an error occurs
path | Path to explore. |
filter | use a combination of the SHOW_* values to filter the output |
descend | Recurse into subdirectories if existant. |
update | Query the repository for updates. |
entries | vector with Status entries |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::unlock | ( | const Targets & | targets, |
bool | force ) |
Sets files to unlock.
targets | targets to unlock |
force | force unlock even if lock belongs to another user |
ClientException | If libsvn reports an error during the operation. |
svn_revnum_t svn::Client::update | ( | const Path & | path, |
const Revision & | revision, | ||
svn_depth_t | depth, | ||
bool | depth_is_sticky, | ||
bool | ignore_externals ) |
Updates the file or directory.
path | The single file or directory to update. |
revision | the revision number to checkout. Revision::HEAD will checkout the latest revision. |
depth | the update depth. The special value svn_depth_unknown fetches whatever was already there (the previous "sticky depth"). |
depth_is_sticky | If depth != svn_depth_unknown, makes the depth sticky (it will be saved permanently). |
ignore_externals | don't affect external destinations. |
ClientException | If libsvn reports an error during the operation. |
std::vector< svn_revnum_t > svn::Client::update | ( | const Targets & | targets, |
const Revision & | revision, | ||
svn_depth_t | depth, | ||
bool | depth_is_sticky, | ||
bool | ignore_externals ) |
Updates the files or directories.
targets | target files. |
revision | the revision number to checkout. Revision::HEAD will checkout the latest revision. |
depth | the update depth. The special value svn_depth_unknown fetches whatever was already there (the previous "sticky depth"). |
depth_is_sticky | If depth != svn_depth_unknown, makes the depth sticky (it will be saved permanently). |
ignore_externals | don't affect external destinations. |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::upgrade | ( | const Path & | path | ) |
Upgrades an entire working copy to the newest format supported by the used SVN library. It is necessary to upgrade working copies before performing any other operations on them, if they were checked out with an older SVN version.
path | Path to the working copy root directory. |
ClientException | If libsvn reports an error during the operation. |
void svn::Client::vacuum | ( | const Path & | path, |
bool | removeUnversioned, | ||
bool | removeIgnored, | ||
bool | fixTimestamps, | ||
bool | vacuumPristines, | ||
bool | includeExternals ) |
Recursively removes unversioned and/or ignored files from a local directory. New method for Subversion 1.9 and higher.
path | absolute path a local directory. |
removeUnversioned | Remove all unversioned files. |
removeIgnored | Remove all ignored files. |
fixTimestamps | Fix recorded timestamps for unmodified files |
vacuumPristines | Remove unreferenced files in the pristine store |
includeExternals | Recurse into externals and clean them up as well |
ClientException | If libsvn reports an error during the operation. |