CM in a mixed platform
Monday, October 22, 2007, 3:02
The basic setup is that you put your source code repository on a central machine and everybody accesses that repository. Within this model, however, there are four variations, driven by two factors. One factor is if the CM tool is available on the client hosts or if you have to log into the central host to use it; the other is whether the CM respository is on a network filesystem such as NFS, Novell Netware, NetBEUI, etc.
The four variations are then:
- No client CM tool / No NFS.
This is truly the poor man’s solution: you must telnet or otherwise log into the central repository host, check out files, and then manually move the files back to the client host (e.g. with FTP). When you are finished, you reverse the process: move the files to the repository host, log in and check in the files. No one likes this solution, but there are two cases where you have no choice: first, in mixed UNIX/DOS/MAC environments, where NFS support is poor; second, in geographically distributed environments, where NFS isn’t viable.All CM tools can be used in this way.
- No client CM tool / Has NFS.
This is one step better. In this case, you still have to log into the central repository host to check out or in files, but you can access those files directly from your client host, without having to copy them back and forth. This solution is not exactly loved either, but is the fallback when the CM tool vendor doesn’t support all your platforms. For example, you might have ClearCase installed and running on a Solaris host, exporting the managed files via NFS to a Linux host. When you have a limited number of “second class”, unsupported platforms, this works fairly well.There is a major wrinkle with this approach due to the different line separators in text files: LF on UNIX, CR on Mac, CRLF on DOS. NFS doesn’t translate these for you, and all sorts of programs (most notable diff(1)) fumble when the separator is wrong.
All CM tools can be used in this way, as long as they are running on platforms that have some form of NFS.
- Has client CM tool / Has NFS.
This is first class, transparent CM, where users check out, work on, and check in files as if the files were on their local disk. In some cases both the repository and the checked out, working files are on the shared network disk. In other cases, working files are actually on the local disk. This approach usually suffers from line separator problems as well.Freely available tools which can be used in this manner are RCS, SCCS, and CVS. Although not designed explicitly for this configuration, they are not disturbed if the repository is on a shared network disk. The problem with doing this with RCS and SCCS, however, is that the client’s working files are usually “right next to” the repository files, making it hard to move the working files off the shared network disk and onto a local one. CVS is better for this.
Commercial systems such as PVCS, MKS Source Integrity, and Microsoft’s SourceSafe also rely on NFS-style access to the repository, but have better support for separating the working files from the repository.
Other tools have populated the client workspace is with symbolic links into the repository (except for files on which the user is working).
ClearCase has the most elaborate NFS-based solution, interposing its own filesystem (MVFS, the multi-version filesystem) between the user and the shared repository, making the versioning virtually invisible to the user.
- Has client CM tool/No NFS.
For this, the CM tool must find its own way to the files in the repository, without directly sharing the repository filesystem. From the user’s perspective, this approach can be as functional as using NFS, but that depends as much on the actual tool as anything else. CVS has a mode where it can access its repository on a central host in a manner similar to using rsh(1). The commercial system Perforce accesses its repository using its own protocol directly over a TCP/IP connection.Because this approach dosn’t use NFS, it isn’t limited to environments where NFS is supported. Both CVS and Perforce, for example, can be used across the Internet.
Related posts:
- CM in a mixed platform network
- Why do I get Ctrl-M characters in my CVS files
- Troubleshooting of eudira in os x platform
- Rewriting podgrabber, part 2
- Key tols in java security
- Boot disk not found
Related posts brought to you by Yet Another Related Posts Plugin.
You can follow any responses to this entry through the
RSS 2.0 feed.