cornercorner
FeaturesPluginsDocs & SupportCommunityPartners

CVS :fork: connection method

The paper discusses :fork: connection method support in NetBeans IDE CVS integration.

What is :fork: connection method?

The :fork: connection method is one of well known ways how CVS establishes client to repository (server) communication channel:
  • :local: accesses repository direcly using build-in cvs server
  • :fork: like :local: but executes cvs server and then uses C/S protocol
  • :server: connects using internal rsh [obsolete] (XXX)
  • :pserver: connects using internal pserver client (plain passwords on wire)
  • :gserver: (also :kserver:) connects using internal GSSAPI (requires client and server with Kerberos support) [rare]
  • :ext: connects using external program (shell)
:fork: is typically used to simulate C/S protocol communication. Advantage is that it can be understood by cvsclients using pure C/S protocol and tools thay rely on command line CVS output parsing (messages differ between local access and C/S protocol based access).

With :fork: CVS first reads CVS_SERVER environment variable that defines cvs server executable (possibly script.) Then CVS executes the server passing server arguments and hijackes its I/O streams. Finally it uses C/S protocol over the streams.

Pure :fork: support

IDE could follow command line client approach starting and stoping external cvs server.

IDE UI Implications

In checkout wizard and CVSROOT manager there must be a field that accepts path to the cvs executable capable of server mode. Setup errors must be propagated to user.

Simulated :local: support

:local: is better recognized than the :fork: method in spite of fact that both allow local versioning. IDE could accept :local: cvs roots and behind scene translate to :fork: (data on disk must stay consistent).

IDE UI Implications

:fork: UI implications apply.
Petr Kuzel on 11th May 2005
Companion
Projects:
MySQL Database Server   GlassFish Community: an Open Source Application Server   Open Solaris  Open JDK: an Open SourceJDK   Mobile & Embedded Community     Sponsored by 
Sponsored by Sun Microsystems