top of page

Week 7: Version control

  • Writer: Lehang Tieu
    Lehang Tieu
  • Jul 13, 2021
  • 3 min read

Updated: Aug 24, 2021

13th July 2021

Version control is a system that allows you to back up your files, monitor any changes and revisit them. It gives you the power to go back in time and retract a specific version of the file (Ravishankar, 2013). It is a great organisation and collaboration tool to manage your work that large teams and companies can benefit from. There will be many users accessing and updating the code and design. If there was an error, they can revert to an older version of the file and restore it.


Version control systems (VCS) are a popular tool for practitioners. It is a system built to store different project versions without wasting storage (Louridas, 2006).


Incorporating a VCS involves setting up a repository. It is the location where your code and files are stored. A copy of the files is made onto your private working directory (Spinellis, 2005), where you can create new updates and features. These changes are committed to the repository. Other members of the VCS can commit their work and all changes are shared. It enables productive team collaboration without the need of stepping on each other's toes. If similar changes are happening in the commit, the VCS will notify you of the system conflict.


Louridas (2006) states the copy-modify-merge enables developers to make modifications to their commits if there was a system conflict. It allows them to resolve the issue quickly without having to redo the work.


Spinellis (2005) discusses best practices of VCS, such as adding relevant names to each of the commits and a brief explanation of your changes. Everything will need to be put under version control so all files and folders are stored safely. Moreover, always create one change per commit to avoid confusion and complicated issues.


Version control systems


GitHub is a VCS that allows developers and companies to build and maintain their software globally. GitHub safely stores your project as the MASTER version. From the MASTER, you can have multiple clones and create new branches within your local machine to make changes and updates. Once testing is complete in the staging area and quality and assurance checks are carried out by developers, it is merged with the original MASTER.


I used GitHub a few years ago to create new pages and updates on the company’s website. I have learnt HTML and CSS coding from my bachelor’s degree, which has made it quite easy for me to familiarise myself with code. I learnt how to access my MASTER through the terminal and create a new branch by entering commands. There were times when I felt confused using this system so I made step by step notes to help me. It wasn’t an easy task at first but with practice and help from developers, I was able to grasp it quite well.


Although VCS support software development, there hasn’t been much focus and attention for game, media and binary data such as image and video content. It requires extensive storage space and time (Da Silva et al., 2016).


My current design projects have been created in Figma. Figma has an automatic backup function built-in so you do not need to save your project because it has an autosave feature. It is beneficial to users because you don’t need to worry about saving your project or manually creating backups. It may be difficult to see the differences of each backup because there is no clear labelling. The backups are unique according to dates. It might be a helpful idea to name the backups to help you find the version you are searching for.


Version control screen shot created by Lehang Tieu. 2021


Summary


GitHub might be challenging to work with because it is a developer's tool rather than for a UX/UI designer. The interface is not very user-friendly and it will take a few practices to interpret and navigate through all the features and processes. I will not be coding in my app designs so I am unsure I will be using Github in my projects. However, it is a helpful tool to use, especially in the future. I will be working with developers to create products based on my designs and implementing a VCS in the project will be valuable.


References


Spinellis, D. 2005. ‘Version Control Systems’. IEEE software 22(5), 108–9.


GitHub. 2021. Build software better, together. [online] Available at: <https://github.com/about> [Accessed 11 July 2021].


Rubino, G. 2021. Github. [online] Available at: <https://flex.falmouth.ac.uk/courses/912/pages/week-7-git-version-control?module_item_id=54123> [Accessed 11 July 2021].


Ravishankar, S. 2013. Git Version Control for Everyone Beginner’s Guide : the Non-Coder’s Guide to Everyday Version Control for Increased Efficiency and Productivity Birmingham: Packt Pub.


Da Silva, J., Ricardo, J., Clua, E., Murta, L. 2016. ‘Efficient Image-Aware Version Control Systems Using GPU’. Software, practice & experience 46(8), 1011–33.


Louridas, P. 2006. ‘Version Control’. IEEE software 23(1), 104–7.

Comments


Post: Blog2 Post
  • Facebook
  • Twitter
  • LinkedIn

©2021 by Lehang Tieu. Proudly created with Wix.com

bottom of page