In the world of software version control, there are many passionate and differing opinions. Some developers and leaders are adamant about the use of version control software, but others seem to care little of the safety and continuity of their ColdFusion applications. Entire comment sections of blog posts have been turned into heated discussions over the subject of “Use or Not?”
I will explain the importance of using version control software, tell you why it matters to ColdFusion developers, and give you a peek into some of the best solutions on the market.
Why I Suggest Git for Version Control
Although there are a few version control software packages available, Git always lands at the top of most CIO and developers lists. Here’s why:
- Saves time. Git is fast! Save the time waiting for your SCM system for more important things.
- Undo mistakes easily. With the click of a button, you can revert to before the mistake was made and try another approach. Nothing is ever permanent.
- You can work offline. Most other software makes you stay connected to make changes, but with Git you have full functionality offline. Your changes will be synched to the main application later.
- Work your way with confidence. You can’t screw things up, and the feeling is priceless! You can work with remote repositories or sub modules -however you want! Work on different features using branching without affecting anyone else’s code!
What is Version Control?
I found this definition on MikeMcQuaid.com:
“Version control is the ability to manage the change and configuration of an application. Versioning is a priceless process, especially when you have multiple developers working on a single application, because it allows them to easily share files. Without version control, developers will eventually step on each other’s toes and overwrite code changes that someone else may have completed without even realizing it. Using these systems allows you to check files out for modifications, then, during check-in, if the files have been changed by another user, you will be alerted and allowed to merge them.”
Simple and effective.
Why Version Control Should Matter
In the passionate words of Adam Cameron:
- If you don't use source control, you are professionally negligent.
- If you don't use source control because it's out with your control: you're still professionally negligent, because you should have done something about it.
- If you think you have an excuse or a justification or a rationalization for not using source control: you're mistaken.
While the words may sound a little harsh, the idea is solid. Use of version control is very important.
3 Reasons Why Version Control Should Matter to ColdFusion Developers
In the case of ColdFusion developers, anything that will save time, money, or improve quality will be beneficial.
- If you don’t use an SCM system, you are taking a huge risk that something bad could happen to your code.
- Version control systems work by maintaining a list of changes to files over time. Each time a file is modified and committed, the new version of the file is stored in the repository.
- Changes, commits, history, the repository, and branches are all provided by a version control system such as Git. These features enable workflows where changes are logged for future reference. Work can be done in parallel and previous versions of files are kept safe and secure.
These are just a few of the reasons that highlight the importance of always using an SCM system.
What is the Best SCM System in 2018?
As I’ve said before, the standard for me is Git, which I believe is one of the best SCM systems available. Why? There are many reasons –all discussed on the Git about page— but a few reasons are:
- Git is small and fast.
- It is distributed. This means when you work on code, you don’t work on the main application; you do a “clone” and work on your local version.
- The data model that Git uses ensures the cryptographic integrity of every bit of your project.
- Git is a free and open source.
Some of the other offshoots of Git include Git-Hub and BitBucket from Atlassian.
Runners Up in the Version Control Race
There are a couple of SCM systems that are worth mentioning here.
- Apache Subversion – Subversion is a project of the Apache Software Foundation and is an open source, centralized version control system.
- Mercurial is a free, distributed SCM system.
When looking at SCM systems, there are many factors to determine which system is best for you.
- Centralized or Distributed System
- Open Source?
- Do you want other developers to submit changes?
- Security features of the software
I think we all can agree that version control software is necessary for a modern ColdFusion development project. When you commit to using resources to create an application, you should make sure your work is safe and secure. Also, determining your workflow is mapped out so there are no errors is monumental to prevent disasters from happening to your code.
The old way of copying folders to another drive or creating zip files is irrelevant when you have so many free SCM systems available. They are so easy to use that there should be no excuse to fail to protect your work.
Do the right thing and protect your investment of time and money!
Do you have any recommendations on SCM systems? Comment below and tell us how you handle your version control needs. As always, great advice is always appreciated!
And to continue learning how to make your ColdFusion apps more modern and alive, I encourage you to download our free ColdFusion Alive Best Practices Checklist.
Because… perhaps you are responsible for a mission-critical or revenue-generating CF application that you don’t trust 100%, where implementing new features is a painful ad-hoc process with slow turnaround even for simple requests.
What if you have no contingency plan for a sudden developer departure or a server outage? Perhaps every time a new freelancer works on your site, something breaks. Or your application availability, security, and reliability are poor.
And if you are depending on ColdFusion for your job, then you can’t afford to let your CF development methods die on the vine.
You’re making a high-stakes bet that everything is going to be OK using the same old app creation ways in that one language — forever.
All it would take is for your fellow CF developer to quit or for your CIO to decide to leave the (falsely) perceived sinking ship of CFML and you could lose everything—your project, your hard-won CF skills, and possibly even your job.
Luckily, there are a number of simple, logical steps you can take now to protect yourself from these obvious risks.
No Brainer ColdFusion Best Practices to Ensure You Thrive No Matter What Happens Next
ColdFusion Alive Best Practices Checklist
Modern ColdFusion development best practices that reduce stress, inefficiency, project lifecycle costs while simultaneously increasing project velocity and innovation.
√ Easily create a consistent server architecture across development, testing, and production
√ A modern test environment to prevent bugs from spreading
√ Automated continuous integration tools that work well with CF
√ A portable development environment baked into your codebase… for free!
Learn about these and many more strategies in our free ColdFusion Alive Best Practices Checklist.