For service level source control, each service (java, flow, mainframe, etc) has its own set of files that are modified with a change to the service. For example:
Flow: node.ndf, flow.xml
Java: node.ndf, java.frag, X.java, X.class
mainframetran: node.ndf, cfgdata
most others: node.ndf
You would need to check in/out each of these files per service. You can test for the files that are created by simply creating a new service and checking what files were added. I would assume all the services you have will fall into the groupings above. One complexity is when you have web services that have a flow service, unbounded documents, and unbounded schemas…and there are a few others.
To top it off, in order to make it an automatic process, you need to bypass the lock/unlock/create/move/copy/delete, etc functionality of the IS in order to execute these commands in conjunction (i.e. check out when a service is locked, upload and check in on unlock). This functionality exists in nsimpl.class. There are threads on this site that explain how to implement this. From my experience, I can tell you that there is a new issue at every turn…
#Integration-Server-and-ESB#webMethods#Flow-and-Java-services