Showing posts with label Team Foundation Server 2013. Show all posts
Showing posts with label Team Foundation Server 2013. Show all posts

Sunday, July 10, 2016

Upgrading to Team Foundation Server 2015

It has been a while since Team Foundation Server 2015 was released and now that Update 3 was recently released, I decided it was time to revisit doing upgrades from earlier releases of Team Foundation Server such as Team Foundation Server 2013.

The upgrade process remains largely the same as earlier releases of Team Foundation Server, however, there is no longer a requirement to UNINSTALL the earlier release of Team Foundation Server prior to installing Team Foundation Server 2015.






















Tuesday, February 23, 2016

Using TortoiseGit with Visual Studio Online

If you are using Git with Visual Studio Online, you may also want to use TortoiseGit as your Git client.

However, as you will soon discover, TortoiseGit does not support Windows Live ID credentials!

Therefore, what do you do in this scenario?

Fortunately, Visual Studio Online supports a scenario called "Alternate Credentials" as described here: https://www.visualstudio.com/en-us/integrate/get-started/auth/overview

You need to set up these alternate credentials in Visual Studio Online in order to be able to use an alternative client such as TortoiseGit in conjunction with Visual Studio Online Git.

You will first need to log into Visual Studio Online and then under "My Profile"-->Security, you will be able to enter your Alternate Credentials as shown below:



Once you have done that, you will be able to log into TortoiseGit using these Alternate Credentials rather than your Windows Live ID credentials!

That is all there is to it!!

Monday, December 7, 2015

Storing TeamCity Project Settings in Team Foundation Server Version Control

If you have read about the feature in TeamCity which allows you to store Project Settings in a version control repository, you may also know that it has not supported Team Foundation Server in the past: https://confluence.jetbrains.com/display/TCD9/Storing+Project+Settings+in+Version+Control

Well, fortunately, that has now changed with the release of the new TeamCity Plugin to support TFS!  http://blog.jetbrains.com/teamcity/2015/12/teamcity-cross-platform-tfs-support/

With the release of this plugin, you will be able to store your TeamCity Project Settings in TFS as well as support platforms other than Windows! 

Currenly, the plugin targets TeamCity 9.x, however, the future release of TeamCity 10.x will have this plugin built right in!

I am definitely eager to try out this new plugin and cannot wait for TeamCity 10.x to be released!

Thursday, November 5, 2015

Windows Explorer integration with Team Foundation Server

If you are used to using tools such as TortoiseHg or TortoiseSVN that has Windows Explorer integration, you may be looking for similar features and functionality with Team Foundation Server.

Fortunately, this is available through install the Team Foundation Server Power Tools!

You can install TFS 2013 Power Tools from here: https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f

You can install TFS 2015 Power Tools from here: https://visualstudiogallery.msdn.microsoft.com/898a828a-af00-42c6-bbb2-530dc7b8f2e1

Friday, October 30, 2015

Subversion vs Team Foundation Server

I recently started working on a project that was using Subversion as its source control repository, therefore, I thought it fitting to discuss the differences between these 2 source control platforms.

In the past, I had used Subversion as my source control system for my own development since it was freely available as a hosted platform.

Since I could use Visual Studio to integrate with Subversion using either Visual SVN or AnkhSVN, it seemed like a suitable choice.

However, a few years later, Microsoft came out with Visual Studio Online ALSO as a free hosted platform for up to 5 users!

As soon as that was released, I immediately switched my source control over to Team Foundation Server/Visual Studio Online.

Why?

For numerous reasons:

  1. Overall, as an overall platform TFS is much, much more robust and integrates far better with Visual Studio than Subversion.  The entire experience of using TFS with Visual Studio is completely seamless. 
  2. A check-in into TFS is significantly faster than a similar check-in into Subversion.
  3. Similarly TFS check-outs are also significantly faster than Subversion check-out operations.
  4. In the past, TFS did not support integration with Windows Explorer as was provided with TortoiseSVN, but recent releases of TFS since TFS 2012/2013 have rectified this issue.
  5. Since TFS is commercially maintained and updated, it is refreshed with newer features and functionality than Subversion over the time span.  In the last few years that I have been using TFS, TFS has evolved significantly and is continually responding to user feedback to enhance its platform both on the server as well as on the client.  During that same timespan, Subversion has made insignificant changes in features and functionality from the end-user perspective (Developer checking in content to Subversion).
  6. TFS provides excellent branching/merging capabilities that completely outshines the branching and merging functionality provided by Subversion.  The merge comparison and merge conflict resolution capabilities available with TFS make use branching and merging with TFS a snap.
  7. TFS provides an overall ALM solution by providing both source control as well as work item tracking.  Subversion, by itself, is simply a source control system.  If you wish to use a work item tracking or issue tracking system, you either have to use something like JIRA or find a hosted Subversion provider which also provides work item tracking features.
  8. TFS provides a built-in code review solution, however, Subversion has  no such feature built-in thereby requiring you to purchase your own code review solution.  If you investigate a Code Review tool such as Upsource for your team, this quickly becomes very expensive: https://www.jetbrains.com/upsource/
  9. If you are hosting your own instance of Subversion using a tool such as VisualSVN Server vs. hosting your own instance of TFS, you will find that the web user experience of TFS completely blows away the web user experience of Subversion.  
Therefore, are there really any remaining compelling reasons to choose Subversion?  Basically, it comes down to price.  If you are a very large company/corporation that needs to host a source control repository without paying any money for it, then Subversion is a suitable choice.  However, it comes at the cost of losing a lot of features and functionality that is provided by a robust source control system such as TFS.

Considering that Visual Studio Online Pricing is extremely affordable now (https://www.visualstudio.com/en-us/products/visual-studio-online-pricing-vs.aspx), unless the company has absolutely no budget to invest in an excellent source control system, TFS should be the logical choice for every organization compared to using Subversion.

Wednesday, October 7, 2015

Excluding NuGet Packages from Team Foundation Version Control

In the past, if you want to exclude NuGet packages from Team Foundation Server Version Control, you would need to make use of the NuGet.config file.

However, you now also have the option of using a .tfignore file as outlined in this NuGet article:  https://docs.nuget.org/consume/package-restore

This MSDN article further outlines how to structure and use a .tfignore file when adding files to Team Foundation Version Control: https://msdn.microsoft.com/en-us/library/ms245454.aspx

Thursday, October 1, 2015

Performing a Team Foundation Server Merge Operation

If you have ever want to learn how to perform a TFS Merge Operation using Visual Studio (and not the command line), this is how you do it:










Once you are completed with the Merge operation, you will have to resolve any Conflicts which arise due to the Merge operation and you have the following options to choose from:


  • Merge Changes in Merge Tool
  • Keep Target Branch Version
  • Take Source Branch Version
If you intend on merging changes in a Merge Tool, I highly recommend a 3rd party merging tool such as Beyond Compare (http://scootersoftware.com/) to help you perform the merge operations!  

That is all there is to it!

Sunday, September 20, 2015

Team Foundation Server Administration Tool

One of the hidden gems that can be found in the TFS Install and Administration Guides (http://www.microsoft.com/en-us/download/details.aspx?id=29035) is a reference to the Team Foundation Server Administration Tool: http://tfsadmin.codeplex.com/

If you do not have a version of Visual Studio installed on your machine that is compliant with this tool, you will need to install the Team Foundation Server Object Model in order to be able to run this tool: https://visualstudiogallery.msdn.microsoft.com/19311823-5262-4e63-a586-2283384ae3bf

The numerous limitations that are currently present in the Team Foundation Server Web Access UI can be overcome by using this tool.  There is no telling when Microsoft will improve the Team Foundation Server Web Access User Interface for managing security permissions, but for now, you can rely on this handy tool for managing your Team Foundation Server security permissions!

Thursday, September 17, 2015

Initiating a Code Review in Team Foundation Server

Ever since the release of Visual Studio 2012 and Team Foundation Server 2012, Microsoft has provided the ability to initiate Code Reviews from within the Visual Studio IDE.

Unfortunately, many developers are unaware of this wonderful ability to conduct code reviews as part of the TFS ALM Lifecycle.

Well, fortunately, Microsoft has created a detailed article (including screenshots) which walks you through the process of initiating and conducting a Code Review from within Visual Studio:  https://www.visualstudio.com/en-us/get-started/code/get-code-reviewed-vs

The best part of the code review process is that all of the code review comments become a part of TFS and can be reviewed historically if there are several code reviews and code reviewers for a particular design change/feature!


Saturday, September 12, 2015

Why we use JIRA Issue Tracking instead of Team Foundation Server Work Item Tracking

There is 1 MAJOR reason:  Web-based Work Item Customization

JIRA Issue Tracking offers this very convenient method for customizing issues while even the latest release of Team Foundation Server still requires using the Process Editor that is installed as an extension to Visual Studio.

The ease of customizing issues/work items in JIRA makes choosing JIRA compelling over TFS Work Item Tracking extremely compelling.  Using the Process Editor is a very complex, difficult and overconvoluted process which easily dissuades novice users from adopting this methodology of customizing TFS Work Items.  In addition, customizing TFS Work Items using the Process Editor introduces problems while upgrading from one release of TFS to the next.

Even though there are many great reasons to use TFS Work Item Tracking because of its tight integration with other products released by Microsoft such as SharePoint, the difficulty of managing customizations to Work Items usually trumps those integration points.

For integration with source control check-ins, you can use add-ons such as TFS4JIRA to provide similar functionality as associating check-ins with TFS Work Items: https://marketplace.atlassian.com/plugins/com.spartez.jira.plugins.bork.tfs4jira

Friday, September 4, 2015

Installing and configuring TFS4JIRA

If you are using a combination of Team Foundation Server and JIRA within your organization, then you may want to take a look at a tool such as TFS4JIRA to help you with your synchronization needs.

To get started, you need to download TFS4JIRA from here: https://spartez.com/products/tfs4jira

Before you install TFS4JIRA, you will need to make sure you meet the installation prerequisites which include SQL Server Compact Edition 4.0 and TFS 2012 Update 4 Object Model as documented here: https://confluence.spartez.com/display/TFS4JIRA/Prerequisites

The prerequisites can be downloaded from here:

Unfortunately, even though there are newer versions of the TFS Object Model (such as the TFS 2013 Update 4 Object Model), TFS4JIRA is still compiled against the older TFS Object Model library and therefore retains this older library dependency.

Once you have successfully installed TFS4JIRA, you will get a login screen similar to the following:





You will need to login with your domain credentials.

Once you have done that, you will see the following screen:



 You will first need to create a Check-ins Scanning Configuration:





Next, you will need to add a TFS Source Repository:


After you have done that, you should have a configuration similar to the following:


You are now ready to create a Synchronization Configuration by clicking on the Synchronization Configuration tab:


Monday, August 31, 2015

Performing a baseless Merge in Team Foundation Server

If you search Google for how to perform a baseless Merge operation, you may come across these articles which require using the command-line:


How To: Perform a Baseless Merge in Visual Studio Team Foundation Server
https://msdn.microsoft.com/en-us/library/Bb668976.aspx


Merge Command
https://msdn.microsoft.com/en-us/library/bd6dxhfy%28v=vs.100%29.aspx

Well, unfortunately, Microsoft has not updated these articles for TFS 2012 and later releases!!

Fortunately, however, this article addresses how to perform a baseless Merge using the User Interface beginning with TFS 2012 and later releases: http://incyclesoftware.com/2012/08/baseless-merge-vs-2012-ui/

It is a great relief to know that you can now perform baseless merges directly using the Visual Studio User Interface and not have to resort to the command line to perform these operations thus making baseless merges much easier to use for the entire development team!

Tuesday, August 4, 2015

Undo a checkout made by another user in Team Foundation Server

If you have ever been stuck in a situation where you have to checkout a file and it is currently checked out by another user, you may be wondering if you have to wait until the other user checks in the file or not.

Well, provided you have sufficient privileges in TFS to undo other's checkouts or check in other people's changes, you can do something about it!!

There are 2 tools available for you to accomplish this:

  1. Team Foundation Server 2013 Power Tools: https://visualstudiogallery.msdn.microsoft.com/f017b10c-02b4-4d6d-9845-58a06545627f
  2. Team Foundation Sidekicks: http://www.attrice.info/downloads/index.htm#tfssidekicks2013

The easiest tool to use is definitely Team Foundation Server 2013 Power Tools which integrates with Visual Studio 2013.

  1. You simply find the file that is currently checked out to another user in Source Control Explorer
  2.  Then you right click on the file and select Find-->Find By Status
  3. Once you have pulled up the current list of checkouts, you simply select the person's edit you want to undo and select "Undo"







With Team Foundation Sidekicks, the operation requires that you know the owner of the file as well as the data range when you think the file was checked out.  This makes the operation a bit more difficult because it requires date ranges to be known (or guessed):





Once you have found the file that you want, you simply select "Undo pending change" from the icon in the toolbar.

That is all that is necessary to undo another person's checkout from TFS!

Tuesday, July 14, 2015

Clear your Team Foundation Server credentials

If you have ever logged into TFS using Visual Studio and then checked the checkbox for "Remember my credentials", you may encounter problems with logging into TFS in the future (especially if you change your Active Directory domain password):






Therefore, you may need to clear out your TFS credentials at some point in time!

Fortunately, that is easy enough to accomplish!

You simply have to go into the Control Panel and click on User Accounts-->Manage your credentials


You will then have to click on "Windows Credentials"





There, you should be able to see your stored Windows Credentials:





You can then simply click on the Remove button to clear out your previous credentials.  Then, all you have to do is shut down Visual Studio and re-launch it.  The next time you launch Visual Studio and attempt to connect to TFS, you should be once more prompted for your TFS credentials!

An outdated version of this solution was originally documented several years ago on this MSDN Blog: http://blogs.msdn.com/b/visualstudioalm/archive/2012/08/29/clearing-the-credentials-for-connecting-to-a-team-foundation-server.aspx






Wednesday, June 17, 2015

TF31003 error message when connecting to On-Premise TFS via Https

I was working on a project where we recently discovered a defect with Visual Studio 2013 and connectivity to TFS when connecting to TFS via Https:

If you connect to TFS by selecting the Https radio button AFTER entering the TFS Url, your connection will FAIL!!








However, if you select the Https radio button FIRST, the connection succeeds!

You can further verify that this is the root cause of the defect by simply connecting to TFS Web Access in the browser:
https://<TFS Url>/tfs/DefaultCollection

If the connection succeeds using the same login credentials, the defect lies in connectivity via Visual Studio.

This essentially becomes an "order of operations" defect inherent from the design of the User Interface in Visual Studio.

Therefore, to avoid this problem when connecting to TFS via Https, follow these steps:


  1. Select the Https radio button BEFORE entering any TFS Url information
  2. Enter the TFS Url
  3. Attempt to connect to TFS via login credentials
  4. Verify that the login succeeds
This has also been filed as this Microsoft Connect feedback item: https://connect.microsoft.com/VisualStudio/feedback/details/1443294/tfs-connectivity-order-of-operations-for-https

If you also experience this issue, please vote on this Microsoft Connect item to ensure that Microsoft fixes this major defect in the next release of Visual Studio 2015/Team Foundation Server 2015!!

Tuesday, June 16, 2015

Unable to clear credentials from Team Foundation Server

I had recently moved my TFS installation from one domain to another.  Of course, when I logged into my workstation, my Visual Studio instance still thought that I was logging into TFS with my old domain credentials.

I tried using the steps outlined in this article: http://blogs.msdn.com/b/visualstudioalm/archive/2012/08/29/clearing-the-credentials-for-connecting-to-a-team-foundation-server.aspx

However, there was one major problem with what was outlined in this article: I had no credentials stored in Credential Manager!!

Therefore, how did I get rid of this error message so that I could log in with my new domain credentials?

Well, fortunately, I found a reference to deleting the TFS cache on my local workstation located at this location: C:\Users\<User Name>\AppData\Local\Microsoft\Team Foundation\5.0\Cache

Once I deleted the cache from this location, I was able to log into TFS using my new domain credentials!

Wednesday, June 10, 2015

Move Team Foundation Server from one domain to another

I recently had to move a Team Foundation Server installation from one domain to another and therefore I followed this MSDN article: https://msdn.microsoft.com/en-us/library/ms404883.aspx

However, this article does not address a TFS Setup to accommodate SQL Server on a separate server and essentially assumes a single server installation of TFS (TFS and SQL Server residing on the same server).

Unfortunately, this left several gaping holes in the article which I had to manually address.

First of all, after switching servers over to the new domain, I had to manually add SQL service accounts that would have appropriate privileges on all of the SQL Server databases.  Since I did not have much guidance as to what specific privileges would be needed, I assigned sysadmin to my Service Accounts (it was a development environment anyway).

Next, all of the file system permissions were out of sync on my TFSBackups directory with the change of domains, therefore, I had to correct all of these permissions including adding back the name of my SQL Server Computer account to the list of permissions.

Of course, with the switch over to the new domain, I also had to manually update the domain accounts assigned to SQL Server Analysis Services and Reporting Services.

I then had to also remove any invalid TFS Administration Console Users from the old domain and add back new TFS Administration Console Users from the new domain.

When I attempted to remove the old domain Administration Console User, I received the following error message:





This, of course, led to the following article: http://blogs.msdn.com/b/tfsao/archive/2013/05/01/can-t-remove-admin-console-user.aspx.  I followed  the instructions in the article to move my previous dbo user to the new domain dbo user in my TFSDefaultCollection database.


Then, before I could update the Reporting section of TFS, I had to go back into SQL Server Reporting Services and restore the Encryption Key.  Once I had restored the Encryption Key, I could go back and update the Reporting section of TFS with new user account information from the new domain.

To verify that everything was working as expected, I decided to take a safety backup of TFS after the domain migration to ensure that the backup completed as expected.

To my surprise, after the migration was complete and I attempted to log into TFS as one of the domain users, I discovered that all of the original project permissions had been completely removed/wiped out!!  Therefore, I  had to go back into TFS and add all of the Security permissions back into all of the individual Projects in my Project Collection to ensure everyone had access once again.

Once I got through this extra laundry list of migration items, my TFS server was up and running on my new domain.

However, when some users attempted to log in under the new domain, they encountered error messages regarding invalid workspaces related to the old domain.  This was resolved by clearing out their old TFS credentials as is outlined in this article: http://blogs.msdn.com/b/visualstudioalm/archive/2012/08/29/clearing-the-credentials-for-connecting-to-a-team-foundation-server.aspx

On the side of SQL Server, I noticed that my SQL Server Maintenance Plans suddenly stopped working after I switched over to the new domain.  Just changing the credentials used for running the SQL Server Maintenance Plans did not seem to resolve the issue, therefore, I was forced to completely re-create the SQL Server Maintenance Plans before the SQL Maintenance Plans would execute successfully.

That seemed to resolve the remaining issues with the TFS domain migration!!





Saturday, May 30, 2015

The report server installation is not initialized

I was recently restoring and setting up a TFS 2013 environment when I received the following error message in the Reporting section"

"The report server installation is not initialized"


Well, as it turns out, I had not restored the Reporting Services Encryption Key as well as the fact that the Url I was using to access Reporting Services was not considered a valid Url either in Reporting Services or in DNS.

Therefore, once I restored the Reporting Services Encryption Key and updated the Url to match what was configured in SQL Server Reporting Services, the error message went away!!