Skip to content

Instantly share code, notes, and snippets.

@Janglee123
Last active August 28, 2020 12:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Janglee123/1c1e723e1a96df4b00c9a4eca6fceb27 to your computer and use it in GitHub Desktop.
Save Janglee123/1c1e723e1a96df4b00c9a4eca6fceb27 to your computer and use it in GitHub Desktop.
Google Summer of Code 2020 Final Work Submission

Google Summer of Code 2020 Final Work Submission

Description

Godot 3.2 introduced the version control system(VCS). The initial project to integrate VCS (Version Control System) into Godot was created in GSoC 2019 by Twarit Waikar. It introduced in-editor GUI, an interface and git-plugin. The interface provides API points to communicate with the in-editor GUI. Any version control framework can be implemented on top of the interface API.

The project has three main goals.

1. Imporving interface for seemless intigration between the editor and plugins

Providing rich and yet simple API to plugins so many features and version control operations can be implimented.

2. Adding hooks to interface into editor plugins

Improving or adding VCS hooks into the editor, like Commit dock, Version Control Buttom Dock, Line change gutters in Script editor.

3. Developing git-plugin for same

Also developing libgit2 based godot-git-plugin in parallel to the interface.

Code contribution

Progress Reports

Implemented Features

  • Actual stage/unstage file
  • Remaped commit dock UI
  • List of previus commits
  • New diff view with split and unified view for commit and status files
  • Pull/push/fetch support
  • Branch menegment
  • Discard file change
  • Line change gutters for the editor
  • Added data stucuters to into the interface.
  • Autoload once initilized
  • Error popups

What are not implimented becouse of time concern

  • Adding more advanced UI hooks for plugin and interface, like amend commit, revert commit, stash, multi remote support, Add branch.
  • Integrating VCS into other editor modules like file system dock or having support for resolving merge conflicts.
  • Autosync with a remote. They stash current changes pull from remote and unstash changes back.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment