LMMS / LMMS/lmms

Useful Versioning Based on git

Open
#8,230 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
10.4k
Forks
1.3k
Avg merge
2d 13h
Merged PRs (30d)
7

Description

### Enhancement Summary

Hi,

I am fairly new to LMMS. Today, I was dissatisfied with my mixing I did yesterday, so I wanted to switch to the previous version.
Alas, that wasn't possible!

Then, I found out that there is this "Save as New Version" feature. This however just adds a running number to the base filename like "filename-number".

To me as a dev this is kind of disappointing as all devs will agree.

So I am going to create a git repo for all my projects using the uncompressed xml files which is more or less an okayish solution.

However, I suggest the following:
* Create a feature that integrates git into LMMS for nerds like us
* Maybe create a slimmer versioning feature that integrates only a small subset of git into LMMS for people with non-dev background, but who are tired of working with "song-01", ... "song-99" versioning.
* The diff feature would be an awesome feature, but it would also be helpful without it

What do you think?

### Implementation Details / Mockup

You could implement it using:
* QCompress to decompress the files
* libgit2 to access git directly
* Another QWidget on the left hand side (where you can switch between 'My Projects', 'My Computer', etc.) like in VSCode or similar IDE.
* A version graph painter, but just a nice-to-have later on.

We could rely on established open source solutions embedding git like Github Desktop.

### Please search the issue tracker for existing feature requests before submitting your own.

- [x] I have searched all existing issues and confirmed that this is not a duplicate.

Contributor guide

No contributing guide indexed for this repository

Research direction

No files or tests are named. Start by locating LMMS's existing “Save as New Version” behavior and the project/file-browser UI described in the issue, then clarify whether the goal is full git integration or a smaller versioning feature. Done would require an agreed scope and corresponding version history behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, git
Domain
desktop, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.