Tuesday, 3 September 2013

Best Practice for Software Development Version Control

This post is slightly off-topic, but when developing it's important that software development needs to be managed on an ongoing basis. One of the best ways to do this is by using version control.

Version control, briefly explained, is the management of changes to documents, computer source or anything that has large collections of information. Version control systems take snapshots of these collections, and any changes to these can be tracked. In terms of software engineering, revision control takes the form of keeping a track of source code, which is my focus when developing my model.

There are three popular version control systems, git, mercurial and subversion. I'm not going to dwell on comparing these. If you need more information on these, just click on the links. Personally, I use git for my version control purposes. What I want to focus on is managing the snapshots. Taking snapshots regularly will allow us to save every change that has happened, but how do you keep track of these changes once your software system grows. What can be done to save the feeling of despair further on in the software development process when the tracking of changes potentially becomes unmanageable.

Here's a good guideline for version control written by Tom Proston-Werner, who is the co-founder of GitHub. He calls it "Semantic Versioning", which provides a simple, yet efficient set of rules and requirements to state how version numbers are assigned. The full post is here, for further details on these guidelines. Quoting from the post directly:

Given a version number MAJOR.MINOR.PATCH, increment the:
  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. PATCH version when you make backwards-compatible bug fixes. 
These simple set of rules makes is really easy to see when you've added different types of changes to your source code and go back and forth between them, if necessary. This works for collaborations, or individual development in my opinion.

29 comments:

  1. The information written in the article is descriptive and well written.It is also simple to read and understand.Good Read.
    Prestashop Theme Developer

    ReplyDelete
  2. Acetech software development company is one of the leading software company India.

    ReplyDelete
  3. Its so amazing blog, i really like that Software Development Company.
    Software Development Company in Indore

    ReplyDelete
  4. Very Nice information!! I like this Very much !!
    #Kiosk #Computer PC #software and Internet #browser #lockdown #software

    Kiosk Computer PC software

    ReplyDelete
  5. Thanks for let us know the new version control systems like mercurial and subversion. Also, i like your idea of versions names. Giving a version name along such as MAJOR.MINOR.PATCH is been always a popular tactic among the Software Developers .

    ReplyDelete
  6. I am to a fantastic degree grateful to analyze your blog.I believe you would give the immense relationship in the field of web outlining and change and Search Engine Optimization. Thank for the offer..

    experts of professional web designer services in india

    expert in seo service company in bangalore

    best web developer companies in india

    ReplyDelete
  7. Cost of custom site improvement for your business ought not be viewed as cost. Since this cost is a shrewd speculation.

    Website Development Company Bangalore| Website designers in bangalore

    ReplyDelete
  8. Its so amazing blog,I really like that Software Development Company.
    http://thinkfirstservices.com/

    ReplyDelete
  9. Great post I would like to thank you for the efforts you have made in writing this interesting and knowledgeable article. We are top CRM Software | CRM Software in Mumbai | CRM Software Provider | CRM Software in Pune | Field Management Software | CRM Software in India

    ReplyDelete
  10. This is a great post. Your Blog the very informative i have learned some information about your blog. We are top Mobile App Development | Mobile App Development Company in India | Website Development Company in Delhi | Website Designing Company in Gurgaon.

    ReplyDelete
  11. Best Corporate Video Production Company in Bangalore and top Explainer Video Company Bangalore , 3d, 2d Animation Video Makers in Chennai
    Awesome blog !! Thnq so much for this information and This is really helpful to me.

    ReplyDelete
  12. 'I'm highly impressed by the piece of thoughts you have shared on this portal. all the best
    connect us on Assignment Help can shed your burden of assignments with a return of qualitative assignments.
    Online Assignment Help
    Programming Assignment Help
    Management Assignment Help
    assignment experts
    Networking Assignment Help

    ReplyDelete
  13. Best of luck with your future as your regular reader of your blog I am giving you the appraisal that if you get any ups down you can reach me out at any time. 야한동영상

    Also visit my web site : . 야한동영상

    ReplyDelete
  14. This blog is very informative the stuff you provide I really enjoyed reading
    한국야동

    Also visit my web site : 한국야동

    ReplyDelete
  15. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well.

    야동

    Also visit my web site : 야동

    ReplyDelete
  16. Great post, you have pointed out some excellent points, I as well believe this is a very superb website. 야설 Also visit my web site : 야설

    ReplyDelete
  17. Wow! This can be one particular of the most beneficial blogs We have ever arrive across on this subject. 온라인카지노
    (mm)

    ReplyDelete
  18. I think the admin of this web site is really working hard for his website, because here
    every data is quality based stuff.Click Me Here온라인슬롯


    4YANGSKIE

    ReplyDelete
  19. Nice response in return of this question with real arguments and explaining the whole thing about that.
    송송넷

    ReplyDelete
  20. Hello there! Quick question that’s completely off topic.
    Do you know how to make your site mobile friendly? My website looks weird when viewing from my iphone.
    I’m trying to find a template or plugin that might
    be able to resolve this issue. If you have any recommendations, please share.
    Thank you!

    website:온라인카지노

    ReplyDelete
  21. If you are working on the masters or doctoral MATLAB dissertation help projects the you are advised to check the Matlab Assignment Help providing by the best team.

    ReplyDelete
  22. If you want to take any IT assignment help then you can check the details of this same by going through the provided direct link. Check out the page and avail the information of the IT assignment help.

    ReplyDelete
  23. Looking for a reliable Assignment Help Online
    provider to help in the Australia? Don’t worry we got the solution to your problem. We offer all academic assignment services for students within the budget. Visit our website to learn more.

    ReplyDelete

ShareThis