Symbolic links in TFS 2010 Source Control?

2019-04-03 10:48发布

问题:

As far as I know, Team Foundation Server 2010's source control (and prior versions) doesn't support linking (Symbolic links) of files.

Linking (per Visual SourceSafe) was the concept of providing one "hard" file in a folder, and then "linking" to it in other locations - exactly like file system hard links are designed.

Does anyone know if files can be linked at all? I realise it is not a good practice in general, but I have some scenarios where it makes sense.

According to an answer in this thread: Linking TFS source control folder from another TFS project it's not possible, but I can't find a definitive answer.

Closest thing I can find courtesy of Google is a thread on the MSDN forum but it's quite old (2006). I'm pretty much assuming that this is still the answer though (unless anyone knows differently)?

回答1:

This thread is more recent (2010), about TFS 2008 and 2010:

TFS (2008 and 2010) do not have support for links. There is a server-side extension for TFS 2010 (ie. what VS2010 used for gated checkin) but this sounds like a client-side solution since the link must be converted to a file to be recognized by the client OM.

If you only work with the command line, how about a wrapper tool for some version control operations? For example, the check-in wrapper would convert links to a linktext file and add or replace the existing linktext file before doing the normal check-in. The check-out wrapper would check-out the corresponding linktext file. Note that there will be quite a bit of work since you'll have to wrap many commands.



回答2:

It's not possible to make classical links, but it's possible to use branches for simmilar functionality. You can use a branch over folder to make something simmilar as were links. The only drawback is that you still work with branches, so it's necessary to do merges etc. See section "Source Code Sharing" of this document for detailed instructions.



回答3:

There seems to be a work-around for this for Linux-based systems.

This page - Applying Unix Filesystem Attributes to Files under Version Control - describes how to use a .tpattributes file text file to store details about file attributes. The article applies to the Visual Studio 2010 edition.

The process is described here: How to work with symbolic link files under Linux/Unix and TFS?. It involves the use of both a .tpattributes file, and a 0-byte file representing the symlink.

There have been some reports of success for this, according to the comments on an updated request to Microsoft for this feature to be implemented in TFS 2015.

In Perforce, symlinks may just be checked-in without having to go through any of this.