ClearCase Windows Quick Tip: Find all symbolic links

Our ClearCase repository make heavy use of ClearCase symbolic links. We began an initiative to get rid of them, since they cause lots of problems – from snapshot view size, to tools not supporting them (e.g. WebPack), and Git migration efforts. See also my previous post on this matter.

The first step, of course, is to find all of them. One may think that cleartool find command will provide this functionality, but it’s lackcing. So we came up with this simple command-line:

cleartool ls -l -r <folder> | findstr /C:"symbolic link"

Folder must be a VOB, or a folder inside a VOB. To iterate on all VOBs, you can run:

for /d %i in (<view root>\*) do @cleartool ls -l -r %i | findstr /C:"symbolic link"

Now, we just need to figure out what to do with all of them…

NTFS Symbolic Links in Version Control Systems

NTFS support for Symbolic Links was added when Windows Vista was released (2007). 7 years later, and the only major VCS which added ‘native’ support for source-controlling NTFS symbolic links is Perforce.

Most multi-platform VCS (svn, git, etc.) support UNIX-style symbolic links. Why is it so hard to add support for NTFS ones?

Even more confusing is why Microsoft’s own TFS doesn’t support NTFS symbolic links?

Why would I want to use symbolic links, you ask?┬áThere are many use cases for that – I’ll provide examples in a separate post, if people would be interested.

So, what do you do if your developers rely on symbolic links in their workspace? To be honest, not much. The alternatives are: Continue reading