[cvsnt] CVS Server Side Reporting Tools?

Tony Hoyle tony.hoyle at march-hare.com
Mon Nov 17 00:02:54 GMT 2008


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


Arthur Barrett wrote:

> Wheras if you wanted to call audit.dll the sequence would be something
> like this:
> 	// This creates the SessionLog entry
> 	initaudit(NULL, "commit", "2000-11-01 10:42:15", "localhost",
> "fred", "/cvsrepo", "d:\cvsrepo", "000001234", NULL, 0, NULL, NULL,
> '2.5.04', NULL);


Nice idea but those functions aren't exported.. in fact they're defined 
within a c++ anonymous namespace so they're not even called that.. 
they'll have some mangled name internally (not sure why at some point 
they got 'audit' stuck in their name).

To call it you need to go via the api (CLibraryAccess) or you can do it 
manually starting with get_plugin_interface in audit.dll - something like:

plugin_interface *p = get_plugin_interface();
p->init(p);
trigger_interface *t = p->get_interface(p, pitTrigger, NULL);

Then you call as before:

t->init(NULL, "commit", "2000-11-01 10:42:15", "localhost", "fred", 
"/cvsrepo", "d:\cvsrepo", "000001234", NULL, 0, NULL, NULL, '2.5.04', NULL);
t->pretag(NULL, "", "/module/directory", 2, {"file1.txt","file2.txt"}, 
{"1.2","1.3"}, 'T', "", "Rel_1_2_0");

And to close down:

t->close(t);
p->destroy(p)

As that's entirely a C interface it should be possible to reproduce in 
delphi.

Cross platform note.. get_plugin_interface may be renamed by libtool, 
since on some platforms (eg. HPUX) you can't export functions with the 
same name from two different ibraries.  This won't be an issue provided 
you use the libtool functions to find the name.

Tony


More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook