/** \class CvsServicePart This plugin integrates Cervisia (version >= 2.1) cvsservice DCOP service into tdevelop (read FAQ at the bottom of this document): so, this part _does_ require cvsservice installed on your system: the configure script in the main source directory should automagically detect the presence of Cervisia and build this plugin. If Cervisia wasn't installed in $TDEDIR than you need to specify paths for lib and include files, for example: --with-extra-libs=$HOME/kde/lib --with-extra-includes=$HOME/kde/include (where $HOME/kde is where I install my own kde stuff so I don't mess with working kde installation) WARNING: So, if you have already compiled tdevelop *without* cvsservice and have now installed cervisia to try this nice piece of software, you need to re-run configure so it can detect cervisia installation and enable compilation for vcs/cvsservice. WARNING: This plugin will quite surely change when the upcoming modifications in Cervisia's own architecture (separation of core and front-ends and user applications' library) are done (probably starting from kde >= 3.3). If you want to partecipate please join discussions on the cervisia@kde.org mailing list. Contributions are always welcome :-) WARNING2: If it doesn't compile try to update your cervisia installation. Implementation of this component is done by: - class CvsServicePart, which does provide integration within tdevelop, set-up GUI integration, forward cvs commands to the implementation (m_impl). It does also intercepts Q_SIGNALS like "new files added to project" and "... removed from ...". - class CvsServicePartImpl implements the actual feature: more general speaking functions (like checking for whether files are in repository, provide checks on file lists, ...). - class CvsProcessWidget provides output wrapping for commands (ok, it is useful for debugging too ;-). It simply starts a DCOP job and awaits notification for its termination. - class CvsOptions* provide info about the user preferences when executing commands: settings are stored in myprj.kdevses file, loaded when project is opened and saved when project is closed. - There is a bunch of dialog classes for collecting useful data about the operations one wants to perform: exception to this are the cvslog* classes which do start cvs jobs independently archiving parallelism with the CvsProcesssWidget. - CVSDir and CVSEntry provide abstraction for accessing to local CVS information - CVSFileInfoProvider is an implementation of KDevVCSFileInfoProvider interface and collects data about files stats: for CVS, both synch (fetch data from local sandbox) and asynch (fetch from repository server) are working with some minor bugs in the parsing of 'cvs status' output for the latter. (Sync means that information are collected from local CVS dirs which do not provide much information; async mean that a "cvs status " request is launched, output parsed and information returned to the client in _different_ times). Obviously this stuff requires the client (actually only the FileTree viewer) to be aware of this feature (see parts/fileview for additional info). \todo - Fix the "cvs update" function which behave strangely for sub-directories of the main project dir. - (> 3.0) Replace the menu entries text with shorter ones - Fix bugs on bugs.kde.org ;-) \authors Mario Scalas \maintainer Mario Scalas \feature All that provided by parts/cvs \feature it is possible to 'add as binary' files to repository \feature checkout from remote repository ability added to the appwizard/importdlg \feature should handle :ext: repositories thanks to cvsservice \feature can tag / un-tag files \feature can revert and diff between specific releases \feature can do multiple diff from a common cvs log output text \bug bugs in cvs part component at Bugzilla database \requirement CVS >= 1.10.6 \requirement Cervisia >= 2.1 (from tdesdk package included in KDE >= 3.2) \todo Test with SSH repositories! \todo Share a common outputview between VCS: CvsProcessWidget should be reworked :-/ \todo Additional Q_SLOTS for more complex stuff as status, revert, patch creation, ... \faq Does cvsservicepart support login with :pserver: or :ext: ? Well, I dunno ;-) I have no ssh repositories to test so feel free to provide feedback on the subject :-) Update: Ok, it seems at least one user has tried :ext: reporting it to work (with ssh-agent avoiding some typing headache ;-)) */