Useful Versioning Based on git
- 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