How to cleanup old versions of SQL change automation plugin from Teamcity? - teamcity

Our Teamcity server is running out of disk space so I've been using WinDirStat to track down the source of the issue and noticed each of the build agents has dozens of versions of Redgate SQL Change Automation.
Is there a simple and safe way of removing old versions?

Related

Better Version Control than TFS

I am working on TFS for Version Controlling since one year. It was good with Visual Studio but some days ago my PC Crashed and the Code on my local Machine Which were not Checked in Destroy... Then I have worked again which took much time and my project got late. Now I decide to move from TFS to another better Version controlling then TFS which handle code locally as well as on the server.
please advise me if anyone use good version control tool for Visual Studio. Thanks in advance
Just like Edward commented TFS is not a version control system. Which is a product that provides source code management (either with Team Foundation Version Control or Git), reporting, requirements management, project management, automated builds, lab management, testing and release management capabilities. It covers the entire application lifecycle, and enables DevOps capabilities.
TFS supports two types of version control: Git and Team Foundation Version Control (TFVC). One centralized and one distributed. As for which version control system should you use, you could take a look at this thread: Choosing the right version control for your project
For your case, you should be checking in frequently or setup some sort of backup system to avoid mistakes like this. Or set an alarm clock, memos to remind you to commit code to version control. If the files are gone from your file system, they're gone.

Unable to upgrade from 9.x to 10.x

I am a teamcity developer and our organisation currently uses Team-city 9.0.3 Free version. Now we maxed out Builds. So we are planning to take an enterprise edition.
But before that we need to upgrade the teamcity to latest version 10.x. while i am doing the upgrade it throws the following error.
Please click the link to see the error
The steps i did for the upgrade are
-- Take a back up of entire Teamcity which will be in /root/.BuildServer/backup
-- Stop the Teamcity server and delete the whole teamcity directory
-- copy the backup .Zip file into import section.
-- download the latest teamcity and do the necessary configurations and start the teamcity server.
-- go to Administration/Import and start importing the file from /root/.BuildServer/import
While importing i am getting the above error as version is not supported.
Please help me on this so that i have to upgrade the Teamcity and go for enterprise edition
Thankyou in advance..
It sounds like you are trying to import a backup created with TeamCity 9 into TeamCity 10, that isn't supported, backups can only be restored with the same version they were created with.
When you install TeamCity you usually have a data directory (probably ".BuildServer" in your case) and the software in a different location. You shouldn't delete the data directory, you should upgrade the database and data directory in place (TeamCity will prompt to do this when the new software starts, refer maintenance mode below).
If you continue with your proposed route you'll need to create a fresh TeamCity 10 database with the new schema version, however you'll loose all the other settings and data as that backup sounds like a project config only backup.
JetBrains provide detailed guides to perform upgrades:
https://confluence.jetbrains.com/display/TCD10/Upgrade
https://confluence.jetbrains.com/display/TCD10/TeamCity+Maintenance+Mode

Should a Windows based build server get automatic updates installed?

I'm asking myself if it is a common practice to have automatic updates activated on build server with windows operating system. The build server uses jenkins, visual studio and java to drive the build. On the one hand I want a system that is clearly defined which software is installed. On the other I have a server that should have up to date patches installed.
What is a common practice?
In my previous company, we were using Windows to host the Jenkins master and all the slaves. We were building our code with Visual Studio 2010. We tested the automatic updates and it broke our configuration 2 times (in 3 years). So if you want to control your server's configuration, I recommend to apply the Microsoft patches manually (you can test the patches on a staging environment before applying the patch in production).

Storing Windows SDKs in source control?

The question is at the end - let me start by posing the context:
One of the problem we are facing at work when using Visual Studio is to make sure that everybody on the team is using the same version of the SDKs.
A typical problem would be to have somebody use a different Direct X SDK version resulting in a different behavior of the code, or somebody upgrading to a more recent Platform/Windows SDK in order to use some new API and having the code fail on other's programmers machines if they still use the previous version.
A way we used to solve the issue for other middleware has been to put the whole set of libraries, include files, tool chains, etc... in our source control system, and have our projects to use these so nobody has to install anything.
We also managed to do that with earlier version of the Direct X SDK, but we always ran into issues with the Windows/Platform SDK due to the close links between the SDK and the toolchain.
Since we now have to support both VS2010 and VS2012, and have to support from Windows XP to Windows 8 targets, we have to support v100, v110 and v110_xp toolsets.
This means that we need all the associated compilers and the corresponding SDKs, both on our developer machines and build systems: This is getting ridiculously costly to maintain, specially considering that random windows updates and .net framework releases routinely tend to break msbuild.
So the question is:
Is it possible to have Visual Studio to use non installed toolsets and SDK and instead having it use whatever is available in some folder out of the normal VS installation locations?
Bonus question: If it is doable, is it possible to do that without having to change any locally installed configuration file on the machine - ie: Have all that in the solution/project or property sheets - so if we change the structure on the source control system we don't have to update every single machine?
Thanks :)
This sounds too complicated, given how complex some of these tool installations are. I would solve this problem by investing in some PowerShell scripts that look at the installed tools and tool paths and "police" the installations. It would be relatively easy to check for installed versions of everything, including patches and updates. You can run those nightly, or as part of a build. Also, you can compare aspects of different installations, such as the tool versions installed on a developer box with your build server.
This would give you 90% of the value for 10% of the pain.
The problems you describe are not solved with your approach. What you actually need is a build server and a definition of done including using binaries built with the build server. You also need a test suite as part of the build definition with some invariants related to the build environment used.

Are there any SCM solutions designed for use on the local machine only?

I'm going to be building some ASP.Net MVC 2 software using Visual Studio 2010 and, as the only developer, I'd like to have some basic SCM in place to I can manage changes locally. I know most SCM solutions are designed to run on servers and accessed by multiple developers. What's an easy, simple SCM solution for a solo developer that wants to manage everything on a single Windows 7 machine?
Thanks so much in advance for your help!
A distributed VCS like git or mercurial would work just fine for a local repository, and you could always use your local repo as a master for future shared access.
File based SVN
git
I see three possibilities:
use a VCS that allows file-based access (SVN does)
install a server (e.g. for SVN)
use a distributed VCS (like Hq, git etc.)
They are listed with increasing recommendation level, so I recommend last one most. (Although I should warn against using git, which isn't really considered the easiest to use of the family.)
In my experience, TFS, hands down, has the best integration with Visual Studio. All other source control providers offer lackluster support for .NET projects at best (this specifically comes into play with renaming, moving, and deleting files under source control).
That said, for a single developer, my recommendation would be to use AnkhSVN with free SVN hosting on projectlocker.
On the other hand, if you have a BizSpark or MSDN account, and have some time, you may want to set up TFS 2010, perhaps on a VM.
Perforce provide a 2-user non-expiring "evaluation" license. I believe this can be installed and used on a single PC.
If you already have the .NET stack installed on your machine and SQL Server (including Express Edition), you can have a single user version of SourceGear Vault for free. Works well on my fairly old XP Pro machine.

Resources