:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.5/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.5/doc/classes/EditorVCSInterface.xml. .. _class_EditorVCSInterface: EditorVCSInterface ================== **Inherits:** :ref:`Object` Version Control System (VCS) interface, which reads and writes to the local VCS in use. Description ----------- Defines the API that the editor uses to extract information from the underlying VCS. The implementation of this API is included in VCS plugins, which are scripts that inherit ``EditorVCSInterface`` and are attached (on demand) to the singleton instance of ``EditorVCSInterface``. Instead of performing the task themselves, all the virtual functions listed below are calling the internally overridden functions in the VCS plugins to provide a plug-n-play experience. A custom VCS plugin is supposed to inherit from ``EditorVCSInterface`` and override these virtual functions. Methods ------- +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_checkout_branch` **(** :ref:`String` branch_name **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_commit` **(** :ref:`String` msg **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_create_branch` **(** :ref:`String` branch_name **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_create_remote` **(** :ref:`String` remote_name, :ref:`String` remote_url **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_discard_file` **(** :ref:`String` file_path **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_fetch` **(** :ref:`String` remote **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`_get_branch_list` **(** **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_current_branch_name` **(** **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`_get_diff` **(** :ref:`String` identifier, :ref:`int` area **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`_get_line_diff` **(** :ref:`String` file_path, :ref:`String` text **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`_get_modified_files_data` **(** **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`_get_previous_commits` **(** :ref:`int` max_commits **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Array` | :ref:`_get_remotes` **(** **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`_get_vcs_name` **(** **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_initialize` **(** :ref:`String` project_path **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_pull` **(** :ref:`String` remote **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_push` **(** :ref:`String` remote, :ref:`bool` force **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_remove_branch` **(** :ref:`String` branch_name **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_remove_remote` **(** :ref:`String` remote_name **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_set_credentials` **(** :ref:`String` username, :ref:`String` password, :ref:`String` ssh_public_key_path, :ref:`String` ssh_private_key_path, :ref:`String` ssh_passphrase **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`_shut_down` **(** **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_stage_file` **(** :ref:`String` file_path **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`_unstage_file` **(** :ref:`String` file_path **)** |virtual| | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`add_diff_hunks_into_diff_file` **(** :ref:`Dictionary` diff_file, :ref:`Array` diff_hunks **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`add_line_diffs_into_diff_hunk` **(** :ref:`Dictionary` diff_hunk, :ref:`Array` line_diffs **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`create_commit` **(** :ref:`String` msg, :ref:`String` author, :ref:`String` id, :ref:`int` unix_timestamp, :ref:`int` offset_minutes **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`create_diff_file` **(** :ref:`String` new_file, :ref:`String` old_file **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`create_diff_hunk` **(** :ref:`int` old_start, :ref:`int` new_start, :ref:`int` old_lines, :ref:`int` new_lines **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`create_diff_line` **(** :ref:`int` new_line_no, :ref:`int` old_line_no, :ref:`String` content, :ref:`String` status **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Dictionary` | :ref:`create_status_file` **(** :ref:`String` file_path, :ref:`ChangeType` change_type, :ref:`TreeArea` area **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`popup_error` **(** :ref:`String` msg **)** | +-------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ Enumerations ------------ .. _enum_EditorVCSInterface_ChangeType: .. _class_EditorVCSInterface_constant_CHANGE_TYPE_NEW: .. _class_EditorVCSInterface_constant_CHANGE_TYPE_MODIFIED: .. _class_EditorVCSInterface_constant_CHANGE_TYPE_RENAMED: .. _class_EditorVCSInterface_constant_CHANGE_TYPE_DELETED: .. _class_EditorVCSInterface_constant_CHANGE_TYPE_TYPECHANGE: .. _class_EditorVCSInterface_constant_CHANGE_TYPE_UNMERGED: enum **ChangeType**: - **CHANGE_TYPE_NEW** = **0** --- A new file has been added. - **CHANGE_TYPE_MODIFIED** = **1** --- An earlier added file has been modified. - **CHANGE_TYPE_RENAMED** = **2** --- An earlier added file has been renamed. - **CHANGE_TYPE_DELETED** = **3** --- An earlier added file has been deleted. - **CHANGE_TYPE_TYPECHANGE** = **4** --- An earlier added file has been typechanged. - **CHANGE_TYPE_UNMERGED** = **5** --- A file is left unmerged. ---- .. _enum_EditorVCSInterface_TreeArea: .. _class_EditorVCSInterface_constant_TREE_AREA_COMMIT: .. _class_EditorVCSInterface_constant_TREE_AREA_STAGED: .. _class_EditorVCSInterface_constant_TREE_AREA_UNSTAGED: enum **TreeArea**: - **TREE_AREA_COMMIT** = **0** --- A commit is encountered from the commit area. - **TREE_AREA_STAGED** = **1** --- A file is encountered from the staged area. - **TREE_AREA_UNSTAGED** = **2** --- A file is encountered from the unstaged area. Method Descriptions ------------------- .. _class_EditorVCSInterface_method__checkout_branch: - :ref:`bool` **_checkout_branch** **(** :ref:`String` branch_name **)** |virtual| Checks out a ``branch_name`` in the VCS. ---- .. _class_EditorVCSInterface_method__commit: - void **_commit** **(** :ref:`String` msg **)** |virtual| Commits the currently staged changes and applies the commit ``msg`` to the resulting commit. ---- .. _class_EditorVCSInterface_method__create_branch: - void **_create_branch** **(** :ref:`String` branch_name **)** |virtual| Creates a new branch named ``branch_name`` in the VCS. ---- .. _class_EditorVCSInterface_method__create_remote: - void **_create_remote** **(** :ref:`String` remote_name, :ref:`String` remote_url **)** |virtual| Creates a new remote destination with name ``remote_name`` and points it to ``remote_url``. This can be both an HTTPS remote or an SSH remote. ---- .. _class_EditorVCSInterface_method__discard_file: - void **_discard_file** **(** :ref:`String` file_path **)** |virtual| Discards the changes made in file present at ``file_path``. ---- .. _class_EditorVCSInterface_method__fetch: - void **_fetch** **(** :ref:`String` remote **)** |virtual| Fetches new changes from the remote, but doesn't write changes to the current working directory. Equivalent to ``git fetch``. ---- .. _class_EditorVCSInterface_method__get_branch_list: - :ref:`Array` **_get_branch_list** **(** **)** |virtual| Gets an instance of an :ref:`Array` of :ref:`String`\ s containing available branch names in the VCS. ---- .. _class_EditorVCSInterface_method__get_current_branch_name: - :ref:`String` **_get_current_branch_name** **(** **)** |virtual| Gets the current branch name defined in the VCS. ---- .. _class_EditorVCSInterface_method__get_diff: - :ref:`Array` **_get_diff** **(** :ref:`String` identifier, :ref:`int` area **)** |virtual| Returns an :ref:`Array` of :ref:`Dictionary` items (see :ref:`create_diff_file`, :ref:`create_diff_hunk`, :ref:`create_diff_line`, :ref:`add_line_diffs_into_diff_hunk` and :ref:`add_diff_hunks_into_diff_file`), each containing information about a diff. If ``identifier`` is a file path, returns a file diff, and if it is a commit identifier, then returns a commit diff. ---- .. _class_EditorVCSInterface_method__get_line_diff: - :ref:`Array` **_get_line_diff** **(** :ref:`String` file_path, :ref:`String` text **)** |virtual| Returns an :ref:`Array` of :ref:`Dictionary` items (see :ref:`create_diff_hunk`), each containing a line diff between a file at ``file_path`` and the ``text`` which is passed in. ---- .. _class_EditorVCSInterface_method__get_modified_files_data: - :ref:`Array` **_get_modified_files_data** **(** **)** |virtual| Returns an :ref:`Array` of :ref:`Dictionary` items (see :ref:`create_status_file`), each containing the status data of every modified file in the project folder. ---- .. _class_EditorVCSInterface_method__get_previous_commits: - :ref:`Array` **_get_previous_commits** **(** :ref:`int` max_commits **)** |virtual| Returns an :ref:`Array` of :ref:`Dictionary` items (see :ref:`create_commit`), each containing the data for a past commit. ---- .. _class_EditorVCSInterface_method__get_remotes: - :ref:`Array` **_get_remotes** **(** **)** |virtual| Returns an :ref:`Array` of :ref:`String`\ s, each containing the name of a remote configured in the VCS. ---- .. _class_EditorVCSInterface_method__get_vcs_name: - :ref:`String` **_get_vcs_name** **(** **)** |virtual| Returns the name of the underlying VCS provider. ---- .. _class_EditorVCSInterface_method__initialize: - :ref:`bool` **_initialize** **(** :ref:`String` project_path **)** |virtual| Initializes the VCS plugin when called from the editor. Returns whether or not the plugin was successfully initialized. A VCS project is initialized at ``project_path``. ---- .. _class_EditorVCSInterface_method__pull: - void **_pull** **(** :ref:`String` remote **)** |virtual| Pulls changes from the remote. This can give rise to merge conflicts. ---- .. _class_EditorVCSInterface_method__push: - void **_push** **(** :ref:`String` remote, :ref:`bool` force **)** |virtual| Pushes changes to the ``remote``. Optionally, if ``force`` is set to true, a force push will override the change history already present on the remote. ---- .. _class_EditorVCSInterface_method__remove_branch: - void **_remove_branch** **(** :ref:`String` branch_name **)** |virtual| Remove a branch from the local VCS. ---- .. _class_EditorVCSInterface_method__remove_remote: - void **_remove_remote** **(** :ref:`String` remote_name **)** |virtual| Remove a remote from the local VCS. ---- .. _class_EditorVCSInterface_method__set_credentials: - void **_set_credentials** **(** :ref:`String` username, :ref:`String` password, :ref:`String` ssh_public_key_path, :ref:`String` ssh_private_key_path, :ref:`String` ssh_passphrase **)** |virtual| Set user credentials in the underlying VCS. ``username`` and ``password`` are used only during HTTPS authentication unless not already mentioned in the remote URL. ``ssh_public_key_path``, ``ssh_private_key_path``, and ``ssh_passphrase`` are only used during SSH authentication. ---- .. _class_EditorVCSInterface_method__shut_down: - :ref:`bool` **_shut_down** **(** **)** |virtual| Shuts down VCS plugin instance. Called when the user either closes the editor or shuts down the VCS plugin through the editor UI. ---- .. _class_EditorVCSInterface_method__stage_file: - void **_stage_file** **(** :ref:`String` file_path **)** |virtual| Stages the file present at ``file_path`` to the staged area. ---- .. _class_EditorVCSInterface_method__unstage_file: - void **_unstage_file** **(** :ref:`String` file_path **)** |virtual| Unstages the file present at ``file_path`` from the staged area to the unstaged area. ---- .. _class_EditorVCSInterface_method_add_diff_hunks_into_diff_file: - :ref:`Dictionary` **add_diff_hunks_into_diff_file** **(** :ref:`Dictionary` diff_file, :ref:`Array` diff_hunks **)** Helper function to add an array of ``diff_hunks`` into a ``diff_file``. ---- .. _class_EditorVCSInterface_method_add_line_diffs_into_diff_hunk: - :ref:`Dictionary` **add_line_diffs_into_diff_hunk** **(** :ref:`Dictionary` diff_hunk, :ref:`Array` line_diffs **)** Helper function to add an array of ``line_diffs`` into a ``diff_hunk``. ---- .. _class_EditorVCSInterface_method_create_commit: - :ref:`Dictionary` **create_commit** **(** :ref:`String` msg, :ref:`String` author, :ref:`String` id, :ref:`int` unix_timestamp, :ref:`int` offset_minutes **)** Helper function to create a commit :ref:`Dictionary` item. ``msg`` is the commit message of the commit. ``author`` is a single human-readable string containing all the author's details, e.g. the email and name configured in the VCS. ``id`` is the identifier of the commit, in whichever format your VCS may provide an identifier to commits. ``unix_timestamp`` is the UTC Unix timestamp of when the commit was created. ``offset_minutes`` is the timezone offset in minutes, recorded from the system timezone where the commit was created. ---- .. _class_EditorVCSInterface_method_create_diff_file: - :ref:`Dictionary` **create_diff_file** **(** :ref:`String` new_file, :ref:`String` old_file **)** Helper function to create a ``Dictionary`` for storing old and new diff file paths. ---- .. _class_EditorVCSInterface_method_create_diff_hunk: - :ref:`Dictionary` **create_diff_hunk** **(** :ref:`int` old_start, :ref:`int` new_start, :ref:`int` old_lines, :ref:`int` new_lines **)** Helper function to create a ``Dictionary`` for storing diff hunk data. ``old_start`` is the starting line number in old file. ``new_start`` is the starting line number in new file. ``old_lines`` is the number of lines in the old file. ``new_lines`` is the number of lines in the new file. ---- .. _class_EditorVCSInterface_method_create_diff_line: - :ref:`Dictionary` **create_diff_line** **(** :ref:`int` new_line_no, :ref:`int` old_line_no, :ref:`String` content, :ref:`String` status **)** Helper function to create a ``Dictionary`` for storing a line diff. ``new_line_no`` is the line number in the new file (can be ``-1`` if the line is deleted). ``old_line_no`` is the line number in the old file (can be ``-1`` if the line is added). ``content`` is the diff text. ``status`` is a single character string which stores the line origin. ---- .. _class_EditorVCSInterface_method_create_status_file: - :ref:`Dictionary` **create_status_file** **(** :ref:`String` file_path, :ref:`ChangeType` change_type, :ref:`TreeArea` area **)** Helper function to create a ``Dictionary`` used by editor to read the status of a file. ---- .. _class_EditorVCSInterface_method_popup_error: - void **popup_error** **(** :ref:`String` msg **)** Pops up an error message in the edior. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`