For me, coming to kdenlive I early asked two questions:
- How do I version control my projects?
- How do I share / collaborate with my team?
The obvious answer for someone that like me came from development was, of course, git. Since project files are just xml
-files I thought this would “just work” but alas, I was wrong.
Three things made this much more cumbersome than expected:
-
Non-determinstic files as described in this thread by @Ron . Properties seemingly haphazardly changed order for no obvious reason.
-
Prevalence of absolute paths, making portable projects very impractical as described here
<?xml version='1.0' encoding='utf-8'?>
<mlt LC_NUMERIC="en_US.UTF-8" producer="main_bin" root="//wsl$/Ubuntu/home/einar/...
- Mixture of “proper” project config data and local user config and/or editor app state. Things such as
kdenlive:sequenceproperties.position
kdenlive:sequenceproperties.activeTrack
kdenlive:docproperties.sessionid
kdenlive:docproperties.browserurl
kdenlive:docproperties.renderurl
Why would the browser url be be stored in the project file? And is it really reasonable that a project file is modified as soon as I change the position / active track? Isn’t that just… temporary and ‘nice to have’ application state?
And, when trying to understand these things, a lack of documentation made it even harder. What does docproperties.browserurl
even mean?
How we solved it
Today, we are actually using git to collaborate on kdenlive projects in my team. We use git-filters (smudge/clean) to normalize the files which makes it possible to have them in one repository and check out files that work. We use git-lfs for any assets.
It works. We are careful, not working on the same project at the same time. But it works.
But it was a hassle and it shouldn’t have to be that way, in my opinion. And there may still be some things we have just not discovered yet. And new changes may come that will render our filters obsolete. New instabilities can come anytime I fear.
Request
Can we please - step by step - make an effort to make the project files
- Deterministic
- Portable
- Free from temporary application state
?
On the kdenlive roadmap I see Collaborative Editing on a medium term time frame. It to me sounds like a fairly big undertaking. Solving the issues above would go a long way to both provide reliable versioning/backups and collaboration among people.
Note: I realize that git is a tool mainly used by developers and alike and perhaps not the average kdenlive user (or?). However, the solution above would also enable other ways of sharing (i.e. mail, dropbox, whatever).
Thank you
/Einar