This page looks best with JavaScript enabled

GitLfsLocksQT

 ·  ☕ 3 min read

Introduction

During my career as Game Developer, collaboration between teammates in a project tended to be a little chaotic when we don’t have a clear idea of what are you doing or how to deal with it.

In the past we use to work only with source code and a folder with all the assets of the game. Then, we move from unity to Unreal Engine 4 and knew somethings were about to change.

First we stuck to the only Source Code Managment tool we already knew, Git. And since Large File System support was incorporated, we just stored all of our content files along side our source code without major problems (before that, all the assets like, Textures, music, sound effects, etc. were store in a Google Drive folder that was shared with most of the staff).

Sooner than later we learned that the blueprints were unable to merge since they were store in a binary format and we were used to have multiple people working with the same “source code files”. Our first reaction to the problem was to just communicate which files were about to be modified and reduce the size of each task to avoid delays with other teammates, but accidents kept happening and time was lost resolving those “conflicts” after merging.

We needed a better way of working with blueprints between teammates.

File Locking

Looking for solutions or alternatives for our problem, we found about File Locking and the way many other Source Code Managment tools integrated as part of their workflow (perforce, plastic scm), but digging some more, we found out that git lfs already have us covered with it’s command lock/locks/unlock.

git lfs lock “file”
Set a file as “locked” on the Git LFS server.

git lfs unlock “file”
Remove “locked” setting for a file on the Git LFS server.

git lfs locks
List currently “locked” files from the Git LFS server.

You can look for more information here: 📚 GitLab’s Docs & Atlassian’s Docs.

GitLfsLocksQT

My attempt was to do an app that helps us to use git lfs lock feature and the main focus right now is make easier to use the lock feature of git lfs for none command line users. Repository can be found here: 💾 GitLfsLocks-Qt.

Features

  • Batch locking/unlocking files.
  • Monitoring locked files in a repository and display notofications when changes are found.
  • Validates that the files that are going to be locked, are located in the repository directory.
  • Drag&Drop files to be locked.

Right now, the app asumes that the repository is already configurated to work with lfs and lfs lock.

Final words

Developing this app can be seen useless since the the use of the command line it’s an easier way use git lfs lock features (and instead write bash scripts to aliviate some repetitive tasks), and i can releate to that. But I still develop this application because it was a perfect way to keep developing my C++ skills by writting a functional app.

During development of this tool I found this other app that does almost the same. If you are interested in looking alternatives, check it out here: 💾 gitlit.

Share on

Jesús Mastache Caballero
WRITTEN BY
Jesús Mastache Caballero
Game Developer