In Part 1 of this 3-part blog I walked-through connecting a project in Microsoft’s Visual Studio to a Subversion repository on CloudForge; providing a secure version control environment that can be shared across a distributed team. In Part 2, I walked-through connecting that same Visual Studio project to TeamForge on CloudForge, providing issue tracking as well as Agile project planning. Today, I wanted to bring all of these pieces together to increase my productivity as a developer and to provide traceability between the work items or artifacts assigned to me in the project and changes to the code. Again, as a developer I never need to leave Visual Studio to accomplish all of this.
Parts 1 and 2 of this blog can be followed independently of each other. You don’t need Subversion present to connect your project to TeamForge and you don’t need TeamForge present to connect your project Subversion. In this blog, however, I am working with the assumption that both Subversion and TeamForge are present and connected to project in Visual Studio. It is the combination of Subversion and TeamForge that allows us to have traceability between the code and the artifacts. If you haven’t done so already, please review parts 1 and 2 of this blog to establish the proper context.
AnkhSVN provides connectivity not only between Visual Studio and Subversion but also between Visual Studio and my issue tracker. Once my project has been configured to use Subversion for version control I now have some new menu items within my Solution context. If I right-click on my Solution within the Solution Explorer I have a few new options, including “Issue Tracker Setup.”
Since I previously configured a connection to my CloudForge project in Part 1 and that project includes TeamForge Project as a service I don’t have to change anything here; it will automatically default to the current project connection. If I didn’t already have a connection established or if my Subversion repository and TeamForge tracker were in different locations I could create a new connection here by adding a site.
This will open a new window frame within Visual Studio showing “Pending Changes.” The default query displayed shows all open artifacts that have been assigned to me but you can modify to show other artifacts as well. In the screen shot below you can see that the list of artifacts in my “Pending Changes” reflect the same artifacts I assigned to myself using the Agile Taskboard in Part 2. I’m intentionally showing the data redundancy here to illustrate that there isn’t a single way to do things. You can pick and choose whatever views and working methods best suit your needs. Remember, as a mature IDE Visual Studio can be configured to look and behave very differently from one developer to the next. Windows can be hidden, floating, or removed altogether. My screen shots reflect a fairly vanilla window setup in Visual Studio but are certainly not the only way to organize things.
Okay, let’s assume that a moderate amount of time has passed and I have been happily coding on my project. I think I have enough to check my changes back into the central repository and I also want to update the artifacts assigned to me. I could use the Agile Taskboard to simply drag and drop the artifacts from one status to the next but I want to automatically link this artifact state change in these specific artifacts with my code commit. For this, I am going to use the list of artifacts in my “Pending Changes” window.
In this case I am going to update three artifacts, marking two of them as “Done” and the third as “Impeded.” I’ve simply checked the box to include these artifacts and set a new status. Note: I don’t have to change the status of an artifact to include it. If I work on something but it remains “In Progress” or “Impeded” I can still link that artifact with my code commit by selecting the check box. Now, all that’s left to do is click the commit button to submit my code changes and artifact changes to CloudForge.
If you recall, I said that I didn’t need to leave Visual Studio to make all of this happen and that is still true. I made all the changes to my code and artifacts directly in Visual Studio. This last screenshot merely illustrates that all of my changes are now tracked in the CloudForge Dashboard, available for viewing across my team. If you examine the most recent activity in the Activity Stream you will see my latest commit including a hyperlink to each TeamForge artifact that I updated as well as a list of all files I changed in my project with a link to that updated file in ViewVC. Within TeamForge this commit will also create an association between the artifact in my projects Tracker section and this specific commit in my Source section.
Using the power of Visual Studio and CloudForge I have an environment to quickly and easily update my code and artifacts; securely centralize my code repository in the cloud; track all revisions to my code and artifacts; and provide traceability between specific code changes and artifacts.