CvsNT API implemented in shared library
Guy Rouillier <[email protected]> Sun, 26 Nov 2006 19:25:34 -0500
| Newsgroups | gmane.comp.version-control.cvs.gui.devel |
|---|---|
| Message-ID | <[email protected]> |
--HnMHTntJngHo4OAHVyzTqjL0nvC0XlqRkGj00Dz Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit While setting up a new Linux instance in a virtual machine, I downloaded the latest stable CvsNT version. While building, I noticed a new subdirectory called "cvsapi" and investigated. At the bottom of this email is an exchange I had on the CvsNT Dev mailing list. I haven't had a chance yet to read the code Arthur pointed me to, but I thought others on this list might find this interesting. Finally, we have an alternative to piping input and output from a separate CVS process. I'd prefer an API implementation, assuming of course it has all the options the command line provides. I'd like to solicit other opinions. Of course, such a move would require use of CvsNT, since the old CVS doesn't have this option. Here's my email and a reply from the CvsNT Dev list: Guy, The CVSAPI provides a bunch of methods that are useful for CVS GUI clients, including spawning CVS processes, finding CVS Servers (browse and define servers) etc. There is not (yet) an API for the CVS/Entries - but that will be done as a part of the EVS project (I think) - check out the evs-dev newsgroup for more info on that. The documentation is what is in the source code... If you checkout the cvsnt project and look in the WorkspaceViewer folder - that is a sample app that uses most of the main features of CVSAPI... Regards, Arthur "Guy Rouillier" <[email protected]> wrote in message news:[email protected]... > >I originally asked this on the users list, and a suggestion there was to > >post over here. > > > > I work on gCvs, one of the CvsGui family of products. We currently use > > the cvsgui pipe implementation to provide CVS input and receive output. I > > noticed when building the latest cvsnt that it builds a shared cvsapi > > library. I couldn't locate any documentation. Is this library intended > > to be a direct API replacement for the old pipe method of invoking CVS? > > If so, that would be great! Does any documentation exist? Does the API > > provide functions to navigate the local sandbox, e.g., retrieving a > > filtered set of CVS entries in the sandbox? Thanks. > > > > -- > > Guy Rouillier -- Guy Rouillier --HnMHTntJngHo4OAHVyzTqjL0nvC0XlqRkGj00Dz Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> </head> <!-- Network content --> <body style="background-color: #ffffff;"> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id="ygrp-mlmsg" style="width:655px; position:relative;"> <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left; z-index:1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id="ygrp-text"> <p>While setting up a new Linux instance in a virtual machine, I downloaded<br> the latest stable CvsNT version. While building, I noticed a new<br> subdirectory called "cvsapi" and investigated. At the bottom of this<br> email is an exchange I had on the CvsNT Dev mailing list. I haven't had<br> a chance yet to read the code Arthur pointed me to, but I thought others<br> on this list might find this interesting. Finally, we have an<br> alternative to piping input and output from a separate CVS process.<br> <br> I'd prefer an API implementation, assuming of course it has all the<br> options the command line provides. I'd like to solicit other opinions.<br> Of course, such a move would require use of CvsNT, since the old CVS<br> doesn't have this option.<br> <br> Here's my email and a reply from the CvsNT Dev list:<br> <br> Guy,<br> <br> The CVSAPI provides a bunch of methods that are useful for CVS GUI clients,<br> including spawning CVS processes, finding CVS Servers (browse and define<br> servers) etc.<br> <br> There is not (yet) an API for the CVS/Entries - but that will be done as a<br> part of the EVS project (I think) - check out the evs-dev newsgroup for<br> more<br> info on that.<br> <br> The documentation is what is in the source code... If you checkout the<br> cvsnt<br> project and look in the WorkspaceViewer folder - that is a sample app that<br> uses most of the main features of CVSAPI...<br> <br> Regards,<br> <br> Arthur<br> <br> "Guy Rouillier" <<a href="mailto:guyr-ml1%40burntmail.com">guyr-ml1@burntmail.<wbr>com</a>> wrote in message<br> news:<a href="mailto:mailman.238.1164500728.16616.cvsnt-dev%40cvsnt.org..">mailman.238.<wbr>1164500728.<wbr>16616.cvsnt-<wbr>dev@cvsnt.<wbr>org..</a>.<br> > >I originally asked this on the users list, and a suggestion there was to<br> > >post over here.<br> > ><br> > > I work on gCvs, one of the CvsGui family of products. We currently use<br> > > the cvsgui pipe implementation to provide CVS input and receive<br> output. I<br> > > noticed when building the latest cvsnt that it builds a shared cvsapi<br> > > library. I couldn't locate any documentation. Is this library<br> intended<br> > > to be a direct API replacement for the old pipe method of invoking CVS?<br> > > If so, that would be great! Does any documentation exist? Does the<br> API<br> > > provide functions to navigate the local sandbox, e.g., retrieving a<br> > > filtered set of CVS entries in the sandbox? Thanks.<br> > ><br> > > --<br> > > Guy Rouillier<br> <br> -- <br> Guy Rouillier<br> </p> </div> <!--~-|**|PrettyHtmlStart|**|-~--> <span width="1" style="color: white;">__._,_.___</span> <!-- Start the section with Message In topic --> <div id="ygrp-actbar"> <span class="left"> <a href="http://groups.yahoo.com/group/cvsgui-dev/message/1460;_ylc=X3oDMTM0bnZjZ2x0BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzE0NjAEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMTY0NTkwOTQ4BHRwY0lkAzE0NjA-"> Messages in this topic </a> (<span class="bld">1</span>) </span> <a href="http://groups.yahoo.com/group/cvsgui-dev/post;_ylc=X3oDMTJwaWo5NnU2BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBG1zZ0lkAzE0NjAEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMTY0NTkwOTQ4?act=reply&messageNum=1460"> <span class="bld"> Reply </span> (via web post) </a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/post;_ylc=X3oDMTJlZzVvZXNjBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTE2NDU5MDk0OA--" class="bld"> Start a new topic </a> </div> <!------- Start Nav Bar ------> <!-- |**|begin egp html banner|**| --> <div id="ygrp-vitnav"> <a href="http://groups.yahoo.com/group/cvsgui-dev/messages;_ylc=X3oDMTJlY3BtODRmBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE2NDU5MDk0OA--">Messages</a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/files;_ylc=X3oDMTJmMDlpYWRuBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2ZpbGVzBHN0aW1lAzExNjQ1OTA5NDg-">Files</a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/photos;_ylc=X3oDMTJlc2MzMHI2BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3Bob3QEc3RpbWUDMTE2NDU5MDk0OA--">Photos</a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/links;_ylc=X3oDMTJmYjlybWxwBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2xpbmtzBHN0aW1lAzExNjQ1OTA5NDg-">Links</a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/database;_ylc=X3oDMTJjbmpvMXA4BF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2RiBHN0aW1lAzExNjQ1OTA5NDg-">Database</a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/polls;_ylc=X3oDMTJmMTNiaW5qBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3BvbGxzBHN0aW1lAzExNjQ1OTA5NDg-">Polls</a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/members;_ylc=X3oDMTJlaG8zZ2ptBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA21icnMEc3RpbWUDMTE2NDU5MDk0OA--">Members</a> | <a href="http://groups.yahoo.com/group/cvsgui-dev/calendar;_ylc=X3oDMTJkMTBuY29vBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2NhbARzdGltZQMxMTY0NTkwOTQ4">Calendar</a> </div> <!-- |**|end egp html banner|**| --> <!-- Do not have place to put it yet --> <div id="ygrp-grft"> </div> <!-- yahoo logo --> <!-- |**|begin egp html banner|**| --> <div id="ygrp-ft"> <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkdmI2cnBmBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTY0NTkwOTQ4"> <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br> <a href="http://groups.yahoo.com/group/cvsgui-dev/join;_ylc=X3oDMTJmOXJhZWJvBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzExNjQ1OTA5NDg-">Change settings via the Web</a> (Yahoo! ID required) <br> Change settings via email: <a href="mailto:[email protected]?subject=Email Delivery: Digest">Switch delivery to Daily Digest</a> | <a href = "mailto:[email protected]?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br> <a href="http://groups.yahoo.com/group/cvsgui-dev;_ylc=X3oDMTJka3J0MnVmBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMTY0NTkwOTQ4"> Visit Your Group </a> | <a href="http://docs.yahoo.com/info/terms/"> Yahoo! Groups Terms of Use </a> | <a href="mailto:[email protected]?subject="> Unsubscribe </a> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: 5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;"> <!-- Network content --> <!-- Start vitality --> <div id="ygrp-vital"> <a href="http://groups.yahoo.com/group/cvsgui-dev;_ylc=X3oDMTJlMWlqamVsBF9TAzk3MzU5NzE0BGdycElkAzI0OTMyNDUEZ3Jwc3BJZAMxNzA1MDA3MTgxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE2NDU5MDk0OA--"> Visit Your Group </a> </div> <div id="hd">SPONSORED LINKS</div> <div id="ov"> <ul> <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjNGs0c2J2BF9TAzk3MzU5NzE0BF9wAzEEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ1OTA5NDg-?t=ms&k=Software+development+services&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=7x2qo6dMYy1p5AU1pt1tiQ">Software development services</a></li> <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjaTZhZmt2BF9TAzk3MzU5NzE0BF9wAzIEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ1OTA5NDg-?t=ms&k=Software+development&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=BN1lrlsQSEiIXBpRBgFwvg">Software development</a></li> <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjZDI2ZzB0BF9TAzk3MzU5NzE0BF9wAzMEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ1OTA5NDg-?t=ms&k=Development+software&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=tCpQXu3D1f1U1uy5lsC3_g">Development software</a></li> <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjYmdhdm44BF9TAzk3MzU5NzE0BF9wAzQEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ1OTA5NDg-?t=ms&k=Software+development+company&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=vprGpfTz1GxuQRXlltd5Og">Software development company</a></li> <li><a href="http://groups.yahoo.com/gads;_ylc=X3oDMTJjb3JkNmN0BF9TAzk3MzU5NzE0BF9wAzUEZ3JwSWQDMjQ5MzI0NQRncnBzcElkAzE3MDUwMDcxODEEc2VjA3NsbW9kBHN0aW1lAzExNjQ1OTA5NDg-?t=ms&k=Custom+software+development&w1=Software+development+services&w2=Software+development&w3=Development+software&w4=Software+development+company&w5=Custom+software+development&c=5&s=154&g=2&.sig=GblHBdeKJR4WCTYIwY_tYA">Custom software development</a></li> </ul> </div> <!-- Network content --> <div id="nc"> <div class="ad"> <div id="hd1">Yahoo! Mail</div> <p><a href="http://us.ard.yahoo.com/SIG=12h7rldge/M=493064.8985657.9760727.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1164598148/A=3848569/R=0/SIG=12jcbehhh/*http://us.rd.yahoo.com/evt=42410/*http://advision.webevents.yahoo.com/handraisers">You're invited!</a></p> <p>Try the all-new</p> <p>Yahoo! Mail Beta</p> </div> <div class="ad"> <div id="hd1">Y! Messenger</div> <p><a href="http://us.ard.yahoo.com/SIG=12hien0gm/M=493064.8985659.9760753.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1164598148/A=3848586/R=0/SIG=12dds2hov/*http://us.rd.yahoo.com/evt=42403/*http://messenger.yahoo.com/feat_voice.php">PC-to-PC calls</a></p> <p>Call your friends</p> <p>worldwide - free!</p> </div> <div class="ad"> <div id="hd1">New business?</div> <p><a href="http://us.ard.yahoo.com/SIG=12hm53crm/M=493064.8985663.9760769.8674578/D=groups/S=1705007181:NC/Y=YAHOO/EXP=1164598148/A=3848640/R=0/SIG=131an6mds/*http://searchmarketing.yahoo.com/arp/srchv2.php?o=US2002&cmp=Yahoo&ctv=Groups1&s=Y&s2=&s3=&b=50">Get new customers.</a></p> <p>List your web site</p> <p>in Yahoo! Search.</p> </div> </div> </div> <!-- |**|end egp html banner|**| --> <div style="clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=2493245/grpspId=1705007181/msgId=1460/stime=1164590948/nc1=3848569/nc2=3848586/nc3=3848640" width="1" height="1"> <br> <span style="color: white;">__,_._,___</span> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type="text/css"> <!-- #ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;} #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family: Georgia; } #ygrp-text p{ margin: 0 0 1em 0; } #ygrp-tpmsgs{ font-family: Arial; clear: both; } #ygrp-vitnav{ padding-top: 10px; font-family: Verdana; font-size: 77%; margin: 0; } #ygrp-vitnav a{ padding: 0 1px; } #ygrp-actbar{ clear: both; margin: 25px 0; white-space:nowrap; color: #666; text-align: right; } #ygrp-actbar .left{ float: left; white-space:nowrap; } .bld{font-weight:bold;} #ygrp-grft{ font-family: Verdana; font-size: 77%; padding: 15px 0; } #ygrp-ft{ font-family: verdana; font-size: 77%; border-top: 1px solid #666; padding: 5px 0; } #ygrp-mlmsg #logo{ padding-bottom: 10px; } #ygrp-vital{ background-color: #e0ecee; margin-bottom: 20px; padding: 2px 0 8px 8px; } #ygrp-vital #vithd{ font-size: 77%; font-family: Verdana; font-weight: bold; color: #333; text-transform: uppercase; } #ygrp-vital ul{ padding: 0; margin: 2px 0; } #ygrp-vital ul li{ list-style-type: none; clear: both; border: 1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight: bold; color: #ff7900; float: right; width: 2em; text-align:right; padding-right: .5em; } #ygrp-vital ul li .cat{ font-weight: bold; } #ygrp-vital a { text-decoration: none; } #ygrp-vital a:hover{ text-decoration: underline; } #ygrp-sponsor #hd{ color: #999; font-size: 77%; } #ygrp-sponsor #ov{ padding: 6px 13px; background-color: #e0ecee; margin-bottom: 20px; } #ygrp-sponsor #ov ul{ padding: 0 0 0 8px; margin: 0; } #ygrp-sponsor #ov li{ list-style-type: square; padding: 6px 0; font-size: 77%; } #ygrp-sponsor #ov li a{ text-decoration: none; font-size: 130%; } #ygrp-sponsor #nc { background-color: #eee; margin-bottom: 20px; padding: 0 8px; } #ygrp-sponsor .ad{ padding: 8px 0; } #ygrp-sponsor .ad #hd1{ font-family: Arial; font-weight: bold; color: #628c2a; font-size: 100%; line-height: 122%; } #ygrp-sponsor .ad a{ text-decoration: none; } #ygrp-sponsor .ad a:hover{ text-decoration: underline; } #ygrp-sponsor .ad p{ margin: 0; } o {font-size: 0; } .MsoNormal { margin: 0 0 0 0; } #ygrp-text tt{ font-size: 120%; } blockquote{margin: 0 0 0 4px;} .replbq {margin:4} --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html><!--End group email --> --HnMHTntJngHo4OAHVyzTqjL0nvC0XlqRkGj00Dz--