I have gotten a number of requests on hiding a visible but deleted Team Project from SCE. The usual scenario is as follow:
o Team creates a dummy team project in the pilot phase of Team Foundation Server
o Team moves on from that pilot phase and creates a new team project were a project starts (branches the files to the new team project)
o Administrator deletes the team project from the server (using TFSDeleteProject)
o Users go to SCE and if they have show deleted files they can still see the project name (By Design)
o Administrators do not want clients and their teams to see the project name since the project has been “forever” deleted for the organization
IMPORTANT- Be aware that clients will still be able to see the deleted team project in SCE until they run a Get and Version Control cleans the mapped files from that client’s computer. This scenario and the one described above are different and you should not use the solution below to solve the update client workspace problem. A lot of users hit this and think there is a bug in the system but all it is needed is to perform a GET.
The Project Creation Wizard creates a new folder for the Team project and after that point Version Control treats it as any other folder that is in the system. When TFSDeleteProject runs and deletes the folder the operation executed is a normal delete hence it is still present in the system and versioned . The folder just shows up in the deleted state as any other deleted folder and this is what makes the 4th bullet above By Design. In Orcas we have implemented Destroy which will completely delete the contents and metadata of the folder from the Database.
Currently the only solution to not show them is to remove read permission for those groups that you want to keep out. Here is how to do that:
o Open a VS2005 command prompt
o Go inside one of your folder mappings
o Execute: tf permission /deny:Read /group:[TEAMPROJECT]\GROUPNAME $/TEAMPROJECTName /server:SERVERName
· If the name is Contributors then [TEAMPROJECT]\Contributors
Note: Make sure you are a project or server admin in order to execute this command and also make sure not to deny yourself the read permissions.
When completing this check some of the clients and make sure they are unable to see the team project.