Select specific files for merging / reverting

It would be incredibly useful to be able to choose which files are included in merges / checkpoints and also be able to revert an individual file or selection of files to a previous state without having to work at the entire branch level in version control.

For example : in my dev branch, say I have 5 changes I want to merge into the master branch, and 10 changes that were just tests / dead ends that I don’t want to keep, I also have 3 other changes that I’m still working on that I want to keep but am not ready to merge yet. It would be really nice to have the option of only merging in the 5 good changes, roll the 10 test changes back to their previous state, and preserve the three work in progress changes.

It would add some complexity to the version control but also would add so much flexibility! Maybe it could be available as an “advanced” mode feature? Hopefully this is possible! It would be a massive improvement in my opinion

Do any of the existing feature requests match what you are looking for? https://github.com/playcanvas/editor/issues?q=is%3Aopen+is%3Aissue+label%3A"area%3A+version+control"

I think we were thinking on implementing a feature that allows users to see all versions of an object. We could extend that so it can be reverted to a previous state?

Thanks for the reply! There are some incredible ideas in that list of feature requests! PRs would be a complete game changer! Diffing branches without merging! exposing the version control endpoints for CI?? wow… My imagination is running wild with how powerful all of those would be and how much it would improve the ability to work on Play Canvas projects as part of a team!

It looks like there is one for reverting files. It specifically states a single file but maybe that could be a single file or selection of files?
Be able to discard changes to a single file/entity/asset that hasn’t been committed

and it looks like
Be able to ‘git cherry pick’ checkpoints
has a comment from you about cherry picking individual files!

Are those version control features some that we could expect to see in the near future?

You can do this currently by selecting different checkpoints on branches :slight_smile:

Quite a BIG feature but we do have a feature request open for it: https://github.com/playcanvas/editor/issues/499

May need to think how we can get some of the way there :thinking: IE which bit of the PR process is the most important

Not super near future TBH. I think next on the list is to be able to merge a specific checkpoint in a branch rather than just the latest while polishing up the graph view feature that is in a closed beta.

Oh wow I don’t realize you could diff between different branches already! that’s super useful!

Not super near future TBH. I think next on the list is to be able to merge a specific checkpoint in a branch rather than just the latest while polishing up the graph view feature that is in a closed beta.

That makes sense! Just knowing it’s on your radar is great news though. We have grown our team working on a play canvas project by a few people and the version control has been a pain point on more than one occasion, but just about everything we’ve wished we had and more looks like it’s already captured in that list of feature requests! Thanks for the insight into what’s to come in the future, we won’t expect it soon but will be gracious when it arrives!

The issue is for single file as I didn’t think about multi-select at the time of ticket creation :sweat_smile:

Please do add to it! :slight_smile:

The PR one is probably the most challenging out of the lot feature wise. I do wonder if we can allow users to create a diff/patch file that can be uploaded elsewhere to review would help rather than have users wait for the full feature?