SvnCpp
Public Member Functions
svn::Client Class Reference

#include <client.hpp>

Public Member Functions

 Client (Context *context=0)
 
virtual ~Client ()
 
const ContextgetContext () const
 
ContextgetContext ()
 
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) throw (ClientException)
 
svn_revnum_t status (const char *path, const StatusFilter &filter, const bool descend, const bool update, StatusEntries &entries) throw (ClientException)
 
svn_revnum_t checkout (const char *moduleName, const Path &destPath, const Revision &revision, bool recurse, bool ignore_externals=false, const Revision &peg_revision=Revision::UNSPECIFIED) throw (ClientException)
 
void relocate (const Path &path, const char *from_url, const char *to_url, bool recurse) throw (ClientException)
 
void remove (const Path &path, bool force) throw (ClientException)
 
void remove (const Targets &targets, bool force) throw (ClientException)
 
void lock (const Targets &targets, bool force, const char *comment) throw (ClientException)
 
void unlock (const Targets &targets, bool force) throw (ClientException)
 
void revert (const Targets &targets, bool recurse) throw (ClientException)
 
void add (const Path &path, bool recurse) throw (ClientException)
 
std::vector< svn_revnum_t > update (const Targets &targets, const Revision &revision, bool recurse, bool ignore_externals) throw (ClientException)
 
svn_revnum_t update (const Path &path, const Revision &revision, bool recurse, bool ignore_externals) throw (ClientException)
 
std::string cat (const Path &path, const Revision &revision, const Revision &peg_revision=Revision::UNSPECIFIED) throw (ClientException)
 
void get (Path &dstPath, const Path &path, const Revision &revision, const Revision &peg_revision=Revision::UNSPECIFIED) throw (ClientException)
 
AnnotatedFileannotate (const Path &path, const Revision &revisionStart, const Revision &revisionEnd) throw (ClientException)
 
svn_revnum_t commit (const Targets &targets, const char *message, bool recurse, bool keep_locks=false) throw (ClientException)
 
void copy (const Path &srcPath, const Revision &srcRevision, const Path &destPath) throw (ClientException)
 
void move (const Path &srcPath, const Revision &srcRevision, const Path &destPath, bool force) throw (ClientException)
 
void mkdir (const Path &path) throw (ClientException)
 
void mkdir (const Targets &targets) throw (ClientException)
 
void cleanup (const Path &path) throw (ClientException)
 
void resolved (const Path &path, bool recurse) throw (ClientException)
 
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, bool recurse=true, const char *native_eol=NULL) throw (ClientException)
 
svn_revnum_t doSwitch (const Path &path, const char *url, const Revision &revision, bool recurse) throw (ClientException)
 
void import (const Path &path, const char *url, const char *message, bool recurse) throw (ClientException)
 
void import (const Path &path, const Path &url, const char *message, bool recurse) throw (ClientException)
 
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) throw (ClientException)
 
InfoVector info (const Path &pathOrUrl, bool recurse=false, const Revision &revision=Revision::UNSPECIFIED, const Revision &pegRevision=Revision::UNSPECIFIED) throw (ClientException)
 
const LogEntrieslog (const char *path, const Revision &revisionStart, const Revision &revisionEnd, bool discoverChangedPaths=false, bool strictNodeHistory=true) throw (ClientException)
 
std::string diff (const Path &tmpPath, const Path &path, const Revision &revision1, const Revision &revision2, const bool recurse, const bool ignoreAncestry, const bool noDiffDeleted) throw (ClientException)
 
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) throw (ClientException)
 
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) throw (ClientException)
 
DirEntries list (const char *pathOrUrl, svn_opt_revision_t *revision, bool recurse) throw (ClientException)
 
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, PropertiesMaprevproplist (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) throw (ClientException)
 
void ignore (const Targets &targets) throw (ClientException)
 

Detailed Description

Subversion client API.

Constructor & Destructor Documentation

svn::Client::Client ( Context context = 0)

Initializes the primary memory pool.

virtual svn::Client::~Client ( )
virtual

Member Function Documentation

void svn::Client::add ( const Path path,
bool  recurse 
)
throw (ClientException
)

Adds a file to the repository.

Exceptions
ClientException
AnnotatedFile* svn::Client::annotate ( const Path path,
const Revision revisionStart,
const Revision revisionEnd 
)
throw (ClientException
)

Retrieves the contents for a specific revision of a path

Parameters
pathpath of file or directory
revisionStartrevision to retrieve
revisionEndrevision to retrieve
Returns
contents of the file
std::string svn::Client::cat ( const Path path,
const Revision revision,
const Revision peg_revision = Revision::UNSPECIFIED 
)
throw (ClientException
)

Retrieves the contents for a specific revision of a path

Parameters
pathpath of file or directory
revisionrevision to retrieve
peg_revisionpeg revision to retrieve, by default is the latest one
Returns
contents of the file
svn_revnum_t svn::Client::checkout ( const char *  moduleName,
const Path destPath,
const Revision revision,
bool  recurse,
bool  ignore_externals = false,
const Revision peg_revision = Revision::UNSPECIFIED 
)
throw (ClientException
)

Executes a revision checkout.

Parameters
moduleNamename of the module to checkout.
destPathdestination directory for checkout.
revisionthe revision number to checkout. If the number is -1 then it will checkout the latest revision.
recursewhether you want it to checkout files recursively.
ignore_externalswhether you want get external resources too.
peg_revisionpeg revision to checkout, by default current.
Exceptions
ClientException
void svn::Client::cleanup ( const Path path)
throw (ClientException
)

Recursively cleans up a local directory, finishing any incomplete operations, removing lockfiles, etc.

Parameters
patha local directory.
Exceptions
ClientException
svn_revnum_t svn::Client::commit ( const Targets targets,
const char *  message,
bool  recurse,
bool  keep_locks = false 
)
throw (ClientException
)

Commits changes to the repository. This usually requires authentication, see Auth.

Returns
Returns a long representing the revision. It returns a -1 if the revision number is invalid.
Parameters
targetsfiles to commit.
messagelog message.
recursewhether the operation should be done recursively.
keep_lockswhether to preserve locks or to release them after commit
Exceptions
ClientException
void svn::Client::copy ( const Path srcPath,
const Revision srcRevision,
const Path destPath 
)
throw (ClientException
)

Copies a versioned file with the history preserved.

Exceptions
ClientException
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 
)
throw (ClientException
)

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'.

Parameters
tmpPathprefix for a temporary directory needed by diff. Filenames will have ".tmp" and similar added to this prefix in order to ensure uniqueness.
pathpath of the file.
revision1one of the revisions to check.
revision2the other revision.
recursewhether the operation should be done recursively.
ignoreAncestrywhether the files will be checked for relatedness.
noDiffDeletedif true, no diff output will be generated on deleted files.
Returns
delta between the files
Exceptions
ClientException
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 
)
throw (ClientException
)

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'.

Parameters
tmpPathprefix for a temporary directory needed by diff. Filenames will have ".tmp" and similar added to this prefix in order to ensure uniqueness.
path1path of the first file corresponding to revision1.
path2path of the first file corresponding to revision2.
revision1one of the revisions to check.
revision2the other revision.
recursewhether the operation should be done recursively.
ignoreAncestrywhether the files will be checked for relatedness.
noDiffDeletedif true, no diff output will be generated on deleted files.
Returns
delta between the files
Exceptions
ClientException
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 
)
throw (ClientException
)

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'.

Parameters
tmpPathprefix for a temporary directory needed by diff. Filenames will have ".tmp" and similar added to this prefix in order to ensure uniqueness.
pathpath of the file.
pegRevisionthe peg revision to identify the path.
revision1one of the revisions to check.
revision2the other revision.
recursewhether the operation should be done recursively.
ignoreAncestrywhether the files will be checked for relatedness.
noDiffDeletedif true, no diff output will be generated on deleted files.
Returns
delta between the files
Exceptions
ClientException
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,
bool  recurse = true,
const char *  native_eol = NULL 
)
throw (ClientException
)

Export into file or directory TO_PATH from local or remote FROM_PATH

Parameters
from_pathpath to import
to_pathwhere to import
revisionrevision of files in source repository or working copy
peg_revision
overwriteoverwrite existing files in to_path
ignore_externalswhether to ignore external sources in from_path
recurse
native_eolwhich EOL to use when exporting, usually different for different OSs
Exceptions
ClientException
svn_revnum_t svn::Client::doSwitch ( const Path path,
const char *  url,
const Revision revision,
bool  recurse 
)
throw (ClientException
)

Update local copy to mirror a new url. This excapsulates the svn_client_switch() client method.

Exceptions
ClientException
void svn::Client::get ( Path dstPath,
const Path path,
const Revision revision,
const Revision peg_revision = Revision::UNSPECIFIED 
)
throw (ClientException
)

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.

Parameters
dstPathFilename in which the contents of the file file will be safed.
pathpath or url
revision
peg_revisionpeg revision to retrieve, by default is the latest one
const Context* svn::Client::getContext ( ) const
Returns
returns the Client context
Context* svn::Client::getContext ( )
Returns
returns the Client context
void svn::Client::ignore ( const Path path)
throw (ClientException
)

Add a single file into ignore list.

Parameters
pathpath to the file
Exceptions
ClientException
See also
svn:ignore property description
void svn::Client::ignore ( const Targets targets)
throw (ClientException
)

Add files into ignore list.

Parameters
targetstargets to treat as ignored
Exceptions
ClientException
See also
svn:ignore property description
void svn::Client::import ( const Path path,
const char *  url,
const char *  message,
bool  recurse 
)
throw (ClientException
)

Import file or directory PATH into repository directory URL at head. This usually requires authentication, see Auth.

Parameters
pathpath to import
url
messagelog message.
recurse
Exceptions
ClientException
void svn::Client::import ( const Path path,
const Path url,
const char *  message,
bool  recurse 
)
throw (ClientException
)
InfoVector svn::Client::info ( const Path pathOrUrl,
bool  recurse = false,
const Revision revision = Revision::UNSPECIFIED,
const Revision pegRevision = Revision::UNSPECIFIED 
)
throw (ClientException
)

retrieve information about the given path or URL

See also
Client::status
Info
Parameters
pathOrUrl
pegRevision
revision
recurse
DirEntries svn::Client::list ( const char *  pathOrUrl,
svn_opt_revision_t *  revision,
bool  recurse 
)
throw (ClientException
)

lists entries in pathOrUrl no matter whether local or repository

Parameters
pathOrUrl
revision
recurse
Returns
a vector of directory entries, each with a relative path (only filename)
void svn::Client::lock ( const Targets targets,
bool  force,
const char *  comment 
)
throw (ClientException
)

Sets files to lock.

Parameters
targetstargets to lock
forceforce setting/stealing lock
commentwriting comment about lock setting is neccessary
Exceptions
ClientException
const LogEntries* svn::Client::log ( const char *  path,
const Revision revisionStart,
const Revision revisionEnd,
bool  discoverChangedPaths = false,
bool  strictNodeHistory = true 
)
throw (ClientException
)

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

Parameters
path
revisionStart
revisionEnd
discoverChangedPaths
strictNodeHistory
Returns
a vector with log entries
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 
)
throw (ClientException
)

Merge changes from two paths into a new local path.

Exceptions
ClientException
void svn::Client::mkdir ( const Path path)
throw (ClientException
)

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.

Parameters
path
Exceptions
ClientException
void svn::Client::mkdir ( const Targets targets)
throw (ClientException
)
void svn::Client::move ( const Path srcPath,
const Revision srcRevision,
const Path destPath,
bool  force 
)
throw (ClientException
)

Moves or renames a file.

Exceptions
ClientException
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

Parameters
propName
path
revision
recurse
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

Parameters
propName
path
revision
recurse
Returns
PathPropertiesMapList
PathPropertiesMapList svn::Client::proplist ( const Path path,
const Revision revision,
bool  recurse = false 
)

lists properties in path no matter whether local or repository

Parameters
path
revision
recurse
Returns
PropertiesList
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

Deprecated:
Parameters
path
revision
propName
propValue
recurse
skip_checks
Returns
PropertiesList
void svn::Client::relocate ( const Path path,
const char *  from_url,
const char *  to_url,
bool  recurse 
)
throw (ClientException
)

relocate wc from to to

Exceptions
ClientException
void svn::Client::remove ( const Path path,
bool  force 
)
throw (ClientException
)

Sets a single file for deletion.

Exceptions
ClientException
void svn::Client::remove ( const Targets targets,
bool  force 
)
throw (ClientException
)

Sets files for deletion.

Parameters
targetstargets to delete
forceforce if files are locally modified
Exceptions
ClientException
void svn::Client::resolved ( const Path path,
bool  recurse 
)
throw (ClientException
)

Removes the 'conflicted' state on a file.

Exceptions
ClientException
void svn::Client::revert ( const Targets targets,
bool  recurse 
)
throw (ClientException
)

Reverts a couple of files to a pristiner state.

Exceptions
ClientException
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

Parameters
propName
path
revision
force
Returns
Revision
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

Parameters
propName
path
revision
Returns
PropertiesList
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

Parameters
path
revision
Returns
PropertiesList
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

Parameters
propName
propValue
path
revision
force
Returns
Revision
void svn::Client::setContext ( Context context = NULL)

sets the client context you have to make sure the old context is de-allocated

Parameters
contextnew 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 
)
throw (ClientException
)

Enumerates all files/dirs at a given path.

Throws an exception if an error occurs

Parameters
pathPath to explore.
descendRecurse into subdirectories if existant.
get_allReturn all entries, not just the interesting ones.
updateQuery the repository for updates.
no_ignoreDisregard default and svn:ignore property ignores.
ignore_externalsDisregard external files.
Returns
vector with Status entries.
svn_revnum_t svn::Client::status ( const char *  path,
const StatusFilter filter,
const bool  descend,
const bool  update,
StatusEntries entries 
)
throw (ClientException
)

Enumerates all files/dirs matchin the parameter filter at path and returns them in the vector statusEntries

Throws an exception if an error occurs

Since
New in 0.9.7
Parameters
pathPath to explore.
filteruse a combination of the SHOW_* values to filter the output
descendRecurse into subdirectories if existant.
updateQuery the repository for updates.
entriesvector with Status entries
Returns
current revnum
void svn::Client::unlock ( const Targets targets,
bool  force 
)
throw (ClientException
)

Sets files to unlock.

Parameters
targetstargets to unlock
forceforce unlock even if lock belongs to another user
Exceptions
ClientException
std::vector<svn_revnum_t> svn::Client::update ( const Targets targets,
const Revision revision,
bool  recurse,
bool  ignore_externals 
)
throw (ClientException
)

Updates the file or directory.

Parameters
targetstarget files.
revisionthe revision number to checkout. Revision::HEAD will checkout the latest revision.
recurserecursively update.
ignore_externalsdon't affect external destinations.
Exceptions
ClientException
Returns
a vector with resulting revisions
svn_revnum_t svn::Client::update ( const Path path,
const Revision revision,
bool  recurse,
bool  ignore_externals 
)
throw (ClientException
)

The documentation for this class was generated from the following file: