playcanvas / playcanvas/editor
Auto create / merge / destroy branches to improve collaboration
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1.3k
- Forks
- 215
- Avg merge
- 1d 29m
- Merged PRs (30d)
- 30
Description
A big selling feature for using PlayCanvas is realtime collaboration - which assumes working in a shared branch. This gets difficult, especially for larger projects, as changes (to script, but also to scene ...) can break the branch for everybody while the work is in progress.
At the moment every change a user does in Editor is directly updated in server database. We could implement simple interface in Editor to change this behavior by adding a switch, allowing user to switch between 2 modes:
- Sync mode. As currently, every change would go to server.
- Isolated Mode. When user clicks on this, a branch would be silently created for the user, and all changes the user does would go to that branch, removing a risk of breaking main previous branch. When the user is happy with changes, the user would switch to Sync Mode again. At that point, a branch would be silently (unless conflict) integrated to previously active branch, and this temporary branch would be silently deleted.
It would probably be useful to Revert changes, which would delete this temporary branch without merging it to original branch.
This can already be done using branching, this is a proposal of simplified workflow.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the existing branching workflow referenced in the issue and how Editor changes are synchronized with the server database. Done would be a defined isolated/sync workflow that creates, merges, and removes temporary branches, supports reverting changes, and handles conflicts.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100