We discuss Mercurial and how we use it to upload changes for us during project development which reduces time and increases efficiency
Do you use FTP or SFTP to upload changes to your website or do you upload the complete, changed files? Perhaps you’re using a file comparison tool to upload your changes within those files? Don’t worry since these are actually the most common ways to update changes to your website. However, at mso.net we have found a more efficient way.
The problem with using the traditional method is that it is generally slow and prone to human error – for example, if you forget to upload a change. Also, as a job multiplies in size so do the number of changes which in turn increases the risk of those changes getting missed. There is also the knock on effect regarding the length of time it takes to upload more files. We’ve therefore decided to address these two main problems by utilising the technologies we already use on a daily basis – SSH for Linux sites, HTTP/HTTPS for Windows sites and Mercurial.
Since 2009 we have been using Mercurial to manage multiple developers working on the same sites. However, we were still using SFTP and a file comparison tool to upload changes to the test or live sites. The change finally came in early 2012, when our experience with Mercurial had vastly grown and our team realised that we could utilise Mercurial to upload the changes for us. Not only could we eliminate human error as a potential issue but we could reduce the amount of time it takes to upload changes to a matter of minutes irrespective of whether the change is a minor 1 file change, or a complete redesign of a site.
How do we do it? We use Mercurial to track up to 3 versions of a site, these are:
Production – The live version of the site, which clients and their users see.
Staging – Optional –an exact replica of the production version of the site where the specific changes to go live are applied. This is useful when there are multiple large jobs already on the test version of the site, and gives peace of mind that the changes will work on the production site before putting them live.
Test – The test version of the site, which our QA team use to ensure any changes developed meet the expectations of our clients, and overall operate as laid out in the specifications.
We start by allowing all new jobs to fork from the latest point of production, and track them against their own branch – which we name after the job or support ticket that you have raised. After a senior developer has reviewed the code, the change can be merged into the test branch, and pushed to one of our servers within MSO HQ. The server will cleverly notice that there is a change to the test branch, and will automatically send the changes to the server via SSH or HTTP/HTTPS – all depending on the server that holds the test version of the site. It will then apply the change to the test site by itself.
One of our developers can now continue to perform any post installation tasks and notify our internal QA team that the job is ready for testing. After the team is happy with the changes they can just pass them to the client for User Acceptance Testing. Once this is complete the same process will apply to the Staging or Production versions of the site.
Did it all sound too complicated? No problem, we are experts in our field, so you can be fully confident in leaving it all to us! Contact us here for a more information.
Using Mercurial is just one of the many techniques we use which has allowed our developers to spend more time writing your website code in a much quicker and efficient way, saving you time and money and giving you peace of mind.