Forget Branching and Merging — locking is more intuitive for the modern software team.

Jacek Materna
5 min readJun 30, 2017

--

It is 2017 —the modern software team is made up of marketers, sales people, executives and developers. You may be asking yourself… What — what do you mean, my software team only has a bunch of devs? Ask yourself if you’re looking at your software team end to end. I guarantee you your team is much larger, more expansive — the dev team is a just a small piece of the modern software team.

How did we get here? Pretty simple. Linux started the open source wave, git was built to manage the code process because the cloud was not ready for “always connected” workflows. The massive amount of open source projects created the need for Github to centralize this collection of packages. Innovation continued. Entering 2017 we are now in digital transformation . Software is eating the world, the Cloud is the standard. Legacy business’ need to innovate. If they do not — they die. Small companies are now able to challenge the large incumbents. It’s a really exciting time for Software teams in general.

The Modern software team… this team has a large percentage of team members working not on text files, but on binary files too. They work with Adobe files, spreadsheets, CAD diagrams, and many other non text based assets. Modern teams need an approachable, powerful UX to collaborate in a version control context and we at Assembla strongly believe in Subversion powering this. Merging is not an option. Forget it. What does it even mean to merge a CAD diagram?

And if you think git should be used — think again— does this Git workflow (below) look like an intuitive UX for everyone on the team? Give me a break.

Google around, you’ll find great info that demystify this “git is the only way to go” discussion like this post resulting in a fascinating discussion about monorepos vs project repos. Classic quote:

The average team doesn’t need Git. Git merging sucks, and few people know how to use Git well (but nobody wants to admit they don’t know how to use Git).

Do it right — with Subversion

What Modern Software Teams need is a way to control parallel work streams — fully version controlled — in a more intuitive way while keeping security and compliance front and center. Enter locking powered by Subversion.

Working with multiple people on the same file can be a risk. Conflicts when merging a non-text file are hard to overcome and will require a lot of manual work to resolve. With Subversion, File Locking helps you avoid merge conflicts and better manage your binary files by preventing everyone, except you, from modifying a specific file or entire directory.

Why locking? Well it’s pretty simple:

  • Visibility: Locked files help your team understand who is working on the file. In the UI you’ll see who locked the file and when it was locked.
  • Collaboration: Reduce the number of merge conflicts caused by two or more team members working on a file at the same time.
  • Streamline: With Large Binary file support and File Locking your team can effectively store and manage their media assets, such as images, PSDs, 3D models, etc. within the repository. Subversion eats this stuff up.
  • Security: With permission management control who can lock what parts of your precious repository so only those that are authorized can make changes. Full audit logs show you ever move that was ever made.

Teams need a way to manage who can access what file and ensure that only specific folks are working on a file or directory at a time.

With Next-Gen Subversion at Assembla you can now lock files that you’re actively working on, preventing others from pushing to the repository until you unlock the files again right from the web app.

The Subversion repo view has a “Locked” column which displays a grey padlock if a file is locked along with the profile icon of the user(s) who locked that file. Hovering over the lock will give a pop-up that shows the time the file was locked as well as the locking message submitted by the user who locked that file. Hovering over the users’ icons will show the profile card of the user who locked the file.

In addition, users can lock multiple files at once by selecting those files with the check box to the right of the screen, clicking “Actions” at the top of the column, and selecting “Lock” from the dropdown menu. Additionally, users can bulk unlock, steal, or break locks in the same way.

Clicking on a locked file will allow a user to view the file as well as its locked status and the user(s) who locked it.

What about folders?

Accessing the drop-down menu allows you to lock all of the files in the directory at once by selecting “Lock all files in directory.” Super simple way to do bulk work.

All locking and unlocking actions are logged in the Assembla audit log. They can be adjusted through the new filter “Svn actions” at the bottom of the filter list.

Additionally, users will be able to receive locking alerts over email.

So… Next time your team is thinking about their workflow for Subversion — don’t just jump into branching and merging blindly. Locking is a more inclusive, better UX way to have the modern software team collaborate.

Assembla has the only Web based locking interface in the market — powered by Subversion — and we are really proud of it. Get out of the SVN CLI and get into the cloud with your team and collaborate!

Skeptical Locking can’t beat Branching? Feel free to jump into Next Gen SVN at Assembla and take it for a spin yourself!

--

--