Does VSS support check-in/check-out of a single directory?

The “tf checkout” command supports a /recursive switch checks out all files that match the itemspec in the current directory or specified location and all of its subfolders.

Does Team Foundation Server track line-by-line file changes?

The diff tool can be used to compare between revisions when showing the history of a file. The diff tool will highlight portions of code that differ, even if it’s a single line of code. The internal deltas stored in the repository are not directly accessible. Furthermore, check-ins generate churn data in the reporting database to indicate how many lines were modified, deleted and added.

How are File Moves and Renames handled by VSTS?

Unlike many past source control plug-ins for Visual Studio, when you rename, move, or delete a source-controlled item, you do not have to worry that your change will not be properly shared with your teammates. The change is isolated in your local workspace as a pending change until you check it in. When you do so, the change is propagated to other users' workspaces the next time they perform a Get or Check In operation. This is particular type of file change (similar to an add or an edit). From the command line you can specifically use the rename or its move alias to rename/move a file or an entire folder. This is automatically done inside the IDE in relation to a rename/move of a file.

What level of branch management does VSTS provide? Does it support branching, sharing and pinning of files with similar or better capabilities than Microsoft VSS? Can these functions operate on whole directories or projects?

More traditional branching models are supported by TFS which are not directly comparable to Shared Projects with pinned files. The Team Foundation Server approach is more robust and scalable than VSS.  

Does VSTS have a Graphical view of branches/sharing/pinning/history?

Somewhat. There is a hierarchical view, but not really on a file by file history basis.

Does Visual Studio Team System provide version comparson between different versions and variants? What file types are supported?

Yes the built-in merge/diff tool provided supports comparing all the primary text based file types commonly used in Visual Studio (i.e. .cs, .csproj, .vb, etc.) Any file type can be associated with either the built-in tool or any external merge/diff tool.

What level of merge functionality does Visual Studio Team System Provide? Can merges be automated if there are no conflicts? What types of files are supported?

TFS supports both manual and automatic merge resolution through its diff/merge tool/engine. Most of the native “source” file types a supported (i.e. .vb, .cs). You can associate any file type to Team Foundation Server and specify which ones can be merged (typically non-binary file types). You also have the option of associating 3rd party merge/diff tools to support other file types (i.e. MS Word, etc.)

How are basedlines implemented in Visual Studio Team System?

Does Visual Studio Team System have a staging area in which the changes can be grouped together and developed before being committed/checked-in?

There are two options here. For individual work in process, work transfer, or work interruption, files can be checked-in to a ShelveSet which does not affect the primary branch. The other option is to create multiple branches to segregate development (i.e. DEV, QA, PROD) and then promote/merge ChangeSets from one branch to another.

Does Visual Studio Team System support attomic commits/check-ins?

Yes. Multiple files checked-in at the same time are atomically committed to a SQL Server 2005 database and a referencable artifact known as a ChangeSet is published. This can be used at a later point in time to view the contents of a check-in, associate to work item or build. It can also be used the same way a label would be used “Get me all the source code as of ChangeSet 155” which would include the image of the entire source branch (not just the changed files) as of that moment.