Giter VIP home page Giter VIP logo

godot-git-plugin's Introduction

C/C++ CI

Godot Git Plugin

Git implementation of the Godot Engine VCS interface in Godot. We use libgit2 as our backend to simulate Git in code.

Planned for the upcoming version of Godot. Look for other branches for support in other Godot releases.

Installation Instructions

  1. Grab the platform binaries here: https://github.com/godotengine/godot-git-plugin/releases
  2. Then read the installation instructions: https://github.com/godotengine/godot-git-plugin/wiki

Build Instructions

This section onwards is only meant to be used if you intend to compile the plugin from source.

Required Tools

  • Full copy of the source code. Remember to use git clone --recursive.
  • SCons (v3.0.1+)
  • C++17 and C90 compilers detectable by SCons and present in PATH.
  • Platforms Specific Setup
    • Windows
      • No extra steps required other than setting up the compilers.
    • MacOS
      • For making universal builds targeting both Apple Silicon and x86_64, you can optionally run build_openssl_universal_macos.sh to build OpenSSL yourself and replace the already prebuilt libraries provided inside thirdparty/openssl/, otherwise, just run brew install [email protected] to use the prebuilt libraries provided in this repository.
    • Linux
      • Run sudo apt-get install libssl-dev, or your local package manager's equivalent.

Release Build

scons platform=<platform> target=editor -j 6

You may get the gdextension dump yourself from Godot using the instructions in the next section, or use the ones provided in godot-cpp/gdextension or ci/.

For more build options, run scons platform=<platform> -h

Dev builds

When new features are being worked on for the Godot VCS Integration, the build process sometimes requires developers to make changes in the GDExtension API along with this plugin. This means we need to manually generate the GDExtension API from the custom Godot builds and use it to compile godot-cpp, and then finally link the resulting godot-cpp binary into this plugin.

If you need to use a custom GDExtension API:

  1. Dump the new bindings from the custom Godot build.
cd local/copy/of/godot/source
.\bin\godot.xxx --headless --dump-gdextension-interface --dump-extension-api
  1. Build the plugin along with the godot-cpp library.
scons platform=<platform> target=editor generate_bindings=yes dev_build=yes -j 6

You only need to build godot-cpp once every change in the GDExtension API, hence, generate_bindings=yes should only be passed in during the first time after generating a new GDExtension API dump.

  1. Open the project provided inside demo/ in the custom Godot build.

To view more options available while recompiling godot-git-plugin, run scons platform=<platform> -h.


License

This plugin is under the MIT License. Third-party notices are present in THIRDPARTY.md.

OpenSSL License Attributions - This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/). This product includes cryptographic software written by Eric Young ([email protected])

godot-git-plugin's People

Contributors

akien-mga avatar bruvzg avatar calinou avatar faless avatar follower avatar fries1234 avatar ianling avatar janglee123 avatar jokoho48 avatar markeel avatar tv4fun avatar twaritwaikar avatar vinegarlove avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

godot-git-plugin's Issues

Link error while building for Windows

Compiling for Windows 10

git2.lib(findfile.obj) : error LNK2001: unresolved external symbol __imp_RegQueryValueExW
git2.lib(findfile.obj) : error LNK2001: unresolved external symbol __imp_RegOpenKeyExW
git2.lib(findfile.obj) : error LNK2001: unresolved external symbol __imp_RegCloseKey

Remove unnecessary line from build_libs.sh

I seem this line is unnecessary in build_libs.sh

apt-get install scons

I think the build script should not need to install a package. But the main reason for it is that apt-get is not used by every Linux distribution. Installing a package also requires root privileges. So users have to run the script with sudo then it might compile binary which only accessible by the root.
Instead, we can use scons -v to check the availability of scons.

Create docs for developers using bleeding edge/unreleased/modified Godot versions to compile the plugin

The normal developer workflow for this plugin requires using a custom api.json generated from the target Godot executable more often than not because we mostly have to make changes to Godot itself to improve the API that this plugin has to then implement.

This process is however documented in godot-cpp but we don't actually mention that we use this workflow in the README anywhere as of now.

Would be nice to have it in there so that people can easily work on this and of course it helps the people already hacking on this project.

Ubuntu 18.04lts Godot 3.2.1 Plugin Fail

Greetings,
I'm getting these errors when I follow the installation steps. It is similar to issue #11 but not exact. Please let me know if you need more details.

 Can't open dynamic library: /home/alderin/Dropbox/Code/Godot/AldVenture/bin/x11/libgitapi.so. Error: /home/alderin/Dropbox/Code/Godot/AldVenture/bin/x11/libgitapi.so: undefined symbol: deflateInit_
 modules/gdnative/gdnative.cpp:483 - No valid library handle, can't get symbol from GDNative object
 modules/gdnative/nativescript/nativescript.cpp:1506 - No nativescript_init in "res://bin/x11/libgitapi.so" found

Auto-initialize?

It seems every time I start up the godot editor and open my project I have to re-initialize the VCS functionality. Is there no way to enable it automatically once the plugin is saved in the project's GDNative plugins section?

Add support for signing commits with GPG

Hi. On my computer I've set gpg signing for all projects but when I create a commit on godot It'll not have my signature. What should I do to sign my commits?

Commit Tab Missing in Godot 3.3

Godot33Git

I am trying to add the git plugin to Godot 3.3. The files are in the root project directory (not in a folder) and the plugin is enabled in the project settings. I was able to click setup VCS, select GitAPI (the only option) and I click Initialize but it doesn't seem like anything happened. There is not commit tab and I looked around and I don't see any other buttons. If I open the same exact project in Godot 3.2, then the tab is there so I definitely think it's something with 3.3. Any help?

Pre-check on .git folder existence

Hello,
If a project already has a git repository there should be no need to Initialise it again. Perhaps check for .git existence (or maybe better a git rev-parse to return if it's valid) on startup then the button can be removed/updated accordingly.

To save on another issue, would be nice to have a push option, even if a first version meant you had to add your own remote and create the upstream branch prior so the plugin simply ran a 'push' and presumed it was configured ok...

Staging Doesn't Stage Files in Git? (MacOS)

OS: MacOS (10.14.6)
Godot: 3.2.3 (stable)

When I click "Stage Selected" or "Stage All" I am told "Stage contains 1 file" at the bottom, but the file remains Yellow in the staging area in the UI and the git index is not changed when I look at git status. Commit Changes does commit the staged file, but there is no way for me to see what is staged, and what isn't. Shouldn't staging a file stage in the plugin also stage it in the git index so that the plugin interacts with other git tools correctly? Right now it seems like Godot has its own invisible notion of what is staged and what isn't, that is unrelated to the git index status.

Suggestion to update wiki

Dear gents ,
thank you for you good work on this plugin and I hope you accept my humble suggestion:

I think it will help many beginners and (NOOBs :D) to add :
"Installing git from www.git-scm.com to your computer and configure user name and email"
as one of the prerequisites to install this plugin , as it may seems obovious (just now for me ^^")
I think it will make the wiki beginner-friendly and who won't want that ? 😄

Regards , Aziz.

Godot crush on initialization

I tried to activate plugin in my old project, but after initialization Godot crashes.
I noticed that the plugin created the folder .git in my project folder. But after reinitialization godot crashes with this error
2020-04-08 23_37_49-Godot Engine - Sumochkin Forgotten Hero - Level_01_Lost_in_Nightmare_Sumochkin t

Godot 3.2 - stable, windows 10

Plugin Installation

In the installation wiki there is an instruction that says to download the latest release. When I go to that link it shows 5 assets of the latest release. Which should I download?

Unhandled exception on initializing in bare repositories

Git API: Could not get status information from repository [-8] - cannot status. This operation is not allowed against bare repositories.. 

This is a regression because this error msg only occurs in cases when the project folder already has a .git folder. This does not happen in v1.2 afaik.

Git plugin blocks Windows export from Linux

Godot version:

3.2.3, 3.2.3 mono

Plugin version:
1.2-x11

OS/device including version:

Ubuntu 20.04

Issue description:

Attempts to export to Windows result in "export template appears to be missing" error. Exports to Linux/X11, HTML5 and Max OSX all succeed. Problem only happens when the Git plugin has been added to the project.

Steps to reproduce:
In a project with the git plugin installed and "Windows Desktop" configured in export_presets.cfg:
godot --export "Windows Desktop" demo.exe

ERROR: copy: Failed to open res://bin/win64/release/libgitapi.dll
   At: core/os/dir_access.cpp:298.
ERROR: _fs_changed: Project export failed for preset 'Windows Desktop', the export template appears to be missing.
   At: editor/editor_node.cpp:753.

Minimal reproduction project:

Unable to: git plugin causes project to exceed 10MB limit.

Also reported against godot as godotengine/godot#44213

Plugin UI and Branching

Is it possible to add branching or is this a limit of the Godot git API?

How much are you able to control the git UI in Godot?

Godot-Git where are the files going

I wish to use the git implementation on my main server for my godot projects. Where are the files being stored now? Where do I change the configuration to use my own local server?

Crash in Godot 3.x branch

Godot 3.3.rc.custom_build. 22e8fe7bf
Ubuntu 20.04

Running empty project and trying to initialize vcs, crashes with this info

modules/gdnative/gdnative/array.cpp:49:2: runtime error: constructor call on misaligned address 0x6060005006d2 for type 'struct Array', which requires 8 byte alignment
0x6060005006d2: note: pointer points here
 be be  be be be be be be be be  be be be be be be be be  be be be be be be be be  be be be be be be
              ^ 
core/array.cpp:471:5: runtime error: member access within misaligned address 0x6060005006d2 for type 'struct Array', which requires 8 byte alignment
0x6060005006d2: note: pointer points here
 be be  be be be be be be be be  be be be be be be be be  be be be be be be be be  be be be be be be
              ^ 
core/array.cpp:472:2: runtime error: member access within misaligned address 0x6060005006d2 for type 'struct Array', which requires 8 byte alignment
0x6060005006d2: note: pointer points here
 be be  be be e0 bd 7c 01 40 60  00 00 be be be be be be  be be be be be be be be  be be be be be be
              ^ 
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] godots() [0x1737270] (/mnt/Miecz/godot3.2/platform/x11/crash_handler_x11.cpp:54)
[2] /lib/x86_64-linux-gnu/libc.so.6(+0x46210) [0x7fead12da210] (??:0)
[3] /home/rafal/Downloads/godot-git-plugin-v1.2.1-x11/bin/x11/release/libgitapi.so(git_repository_is_bare+0x36) [0x7fea80b20194] (??:0)
[4] /home/rafal/Downloads/godot-git-plugin-v1.2.1-x11/bin/x11/release/libgitapi.so(+0x2c37b7) [0x7fea80b267b7] (??:0)
[5] /home/rafal/Downloads/godot-git-plugin-v1.2.1-x11/bin/x11/release/libgitapi.so(git_status_list_new+0x136) [0x7fea80b26fd9] (??:0)
[6] godot::GitAPI::_get_modified_files_data() (??:0)
[7] godot_variant godot::__wrapped_method<godot::GitAPI, godot::Dictionary>(void*, void*, void*, int, godot_variant**) (??:0)
[8] NativeScriptInstance::call(StringName const&, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot3.2/modules/gdnative/nativescript/nativescript.cpp:709)
[9] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot3.2/core/object.cpp:898 (discriminator 1))
[10] Object::call(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/mnt/Miecz/godot3.2/core/object.cpp:846)
[11] EditorVCSInterface::get_modified_files_data() (/mnt/Miecz/godot3.2/editor/editor_vcs_interface.cpp:122 (discriminator 1))
[12] VersionControlEditorPlugin::_refresh_stage_area() (/mnt/Miecz/godot3.2/editor/plugins/version_control_editor_plugin.cpp:171 (discriminator 1))
[13] VersionControlEditorPlugin::_initialize_vcs() (/mnt/Miecz/godot3.2/editor/plugins/version_control_editor_plugin.cpp:137)
[14] MethodBind0::call(Object*, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot3.2/./core/method_bind.gen.inc:61 (discriminator 4))
[15] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot3.2/core/object.cpp:919 (discriminator 1))
[16] Object::emit_signal(StringName const&, Variant const**, int) (/mnt/Miecz/godot3.2/core/object.cpp:1246 (discriminator 1))
[17] Object::emit_signal(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/mnt/Miecz/godot3.2/core/object.cpp:1303)
[18] BaseButton::_pressed() (/mnt/Miecz/godot3.2/scene/gui/base_button.cpp:135 (discriminator 1))
[19] BaseButton::on_action_event(Ref<InputEvent>) (/mnt/Miecz/godot3.2/scene/gui/base_button.cpp:174)
[20] BaseButton::_gui_input(Ref<InputEvent>) (/mnt/Miecz/godot3.2/scene/gui/base_button.cpp:64 (discriminator 3))
[21] MethodBind1<Ref<InputEvent> >::call(Object*, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot3.2/./core/method_bind.gen.inc:775 (discriminator 12))
[22] Object::call_multilevel(StringName const&, Variant const**, int) (/mnt/Miecz/godot3.2/core/object.cpp:761 (discriminator 1))
[23] Object::call_multilevel(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/mnt/Miecz/godot3.2/core/object.cpp:862)
[24] Viewport::_gui_call_input(Control*, Ref<InputEvent> const&) (/mnt/Miecz/godot3.2/scene/main/viewport.cpp:1716 (discriminator 1))
[25] Viewport::_gui_input_event(Ref<InputEvent>) (/mnt/Miecz/godot3.2/scene/main/viewport.cpp:2103 (discriminator 3))
[26] Viewport::input(Ref<InputEvent> const&) (/mnt/Miecz/godot3.2/scene/main/viewport.cpp:2923 (discriminator 2))
[27] Viewport::_vp_input(Ref<InputEvent> const&) (/mnt/Miecz/godot3.2/scene/main/viewport.cpp:1480)
[28] MethodBind1<Ref<InputEvent> const&>::call(Object*, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot3.2/./core/method_bind.gen.inc:775 (discriminator 12))
[29] Object::call(StringName const&, Variant const**, int, Variant::CallError&) (/mnt/Miecz/godot3.2/core/object.cpp:919 (discriminator 1))
[30] Object::call(StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/mnt/Miecz/godot3.2/core/object.cpp:846)
[31] SceneTree::call_group_flags(unsigned int, StringName const&, StringName const&, Variant const&, Variant const&, Variant const&, Variant const&, Variant const&) (/mnt/Miecz/godot3.2/scene/main/scene_tree.cpp:276)
[32] SceneTree::input_event(Ref<InputEvent> const&) (/mnt/Miecz/godot3.2/scene/main/scene_tree.cpp:432 (discriminator 5))
[33] InputDefault::_parse_input_event_impl(Ref<InputEvent> const&, bool) (/mnt/Miecz/godot3.2/main/input_default.cpp:429)
[34] InputDefault::parse_input_event(Ref<InputEvent> const&) (/mnt/Miecz/godot3.2/main/input_default.cpp:273)
[35] InputDefault::flush_accumulated_events() (/mnt/Miecz/godot3.2/main/input_default.cpp:692)
[36] OS_X11::process_xevents() (/mnt/Miecz/godot3.2/platform/x11/os_x11.cpp:2337)
[37] OS_X11::run() (/mnt/Miecz/godot3.2/platform/x11/os_x11.cpp:3639)
[38] godots(main+0x326) [0x172defc] (/mnt/Miecz/godot3.2/platform/x11/godot_x11.cpp:57)
[39] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x7fead12bb0b3] (??:0)
[40] godots(_start+0x2e) [0x172db1e] (??:?)

Plugin detected but not working

Hi,

I have followed the wiki for the installation:

I have the "godot-git-plugin-v1.2-x11" folder inside my root project folder:
Capture d’écran du 2020-04-21 23-59-04

The GDNative plugin is detected inside godot:
Capture d’écran du 2020-04-22 00-01-11

But when I go to Project -> Version Control -> Set up version control, I have this:
Capture d’écran du 2020-04-22 00-01-51

I'm on Linux (Ubuntu Budgie 19.10). I have tried to switch Godot to english but same error. I have also tried with a project already versioned with git, but still the same popup.

Ability to push?

Hi, loving the plugin so far! It's really convenient, but I don't see the ability to push changes to remote? Is it planned / in the works maybe? I'd be happy to help.

Godot crashes when initialize version control

Hi,

when I press the Project->Version Control->Set up version control->Initialize button, a git repo is created but after this godot closes and doesn't automatically restart. I don't see any "commit" tab in my editor like the one who is described in the blog post update 3 for GSoC. I use Godot in version v3.2.stable.mono.official.
What do you need to check this problem?

Regards,
Rinma

Issue implementing VCS on Mac with godot-git-plugin-v1.2.1-osx

Report

Mac OS version: 10.15.7 Catalina
Godot version: v3.2.4.rc3
git version 2.24.3 (Apple Git-128)
godot-git-plugin-v1.2.1-osx

Extracted the zip then put the contents in same directory with project.godot, and it still says "No VCS addons are available." when pressed "Set Up Version Control" from project tab.

Note: I duplicated -libgitapi.dylib- file from ~bin/osx/release directory to project.godot directory, but still no luck.

Dose anyone get VCS done on mac successfully?

Demo project does not work after building with instructions

I built this plugin using the instructions in the README:

Linux

  1. Prepare script for execution: chmod 755 build_libs.sh
  2. Run . ./build_libs.sh Release.
  3. Run scons platform=x11 target=release.

While on step 2, I noticed this message:

[100%] Built target git2
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
scons: Reading SConscript files ...

Looking at the code, it seems that this is caused by apt-get install scons. This script certainly needs improvement, it should not try to install scons if it is already installed, and if scons does need to be installed then it's better to ask for root access or inform the user rather than try to run apt-get without root. Anyway, this isn't the cause of the main problem in this issue, since on my system scons is already installed.

After building, when opening the demo, this is printed to the console:

 Can't open dynamic library: /home/aaronfranke/workspace/godot-git-plugin/demo/bin/x11/release/libgitapi.so. Error: /home/aaronfranke/workspace/godot-git-plugin/demo/bin/x11/release/libgitapi.so: undefined symbol: SSL_CTX_free
 modules/gdnative/gdnative.cpp:483 - No valid library handle, can't get symbol from GDNative object
 modules/gdnative/nativescript/nativescript.cpp:1506 - No nativescript_init in "res://bin/x11/release/libgitapi.so" found

When trying to run the project (by pressing F5 or the play button), this error is printed in the debugger:

E 0:00:00.674   open_dynamic_library: Can't open dynamic library: /home/aaronfranke/workspace/godot-git-plugin/demo/bin/x11/release/libgitapi.so. Error: /home/aaronfranke/workspace/godot-git-plugin/demo/bin/x11/release/libgitapi.so: undefined symbol: SSL_CTX_free
  <C++ Error>   Condition "!p_library_handle" is true. Returned: ERR_CANT_OPEN
  <C++ Source>  drivers/unix/os_unix.cpp:424 @ open_dynamic_library()

This problem only happens when building, the 1.2 release build here works fine: https://github.com/godotengine/godot-git-plugin/releases

I'm using Godot 3.2.2 stable on Mint 20 (Ubuntu 20.04). I tested the master branch of this repo, the v1.2 tag, and the libgit2-bump-fix branch, all fail in the same way.

Godot Crashes after pressing the Initialize button

Hi everyone, I tried to install the plugin but keeps on crashing when I press the Initialize Button. I'm on Fedora 32 KDE.

Here's the console error:

ERROR: set_path: Another resource is loaded from path 'res://git_api.gdns' (possible cyclic resource inclusion).
At: core/resource.cpp:82.
handle_crash: Program crashed with signal 11
Dumping the backtrace. Please include this when reporting the bug on https://github.com/godotengine/godot/issues
[1] /lib64/libc.so.6(+0x3cab0) [0x7fa1ef134ab0] (??:0)
[2] /run/media/nazareno/Datos/Desarrollo/Godot/Projects/GMTK 2020/bin/x11/release/libgitapi.so(git_repository_is_bare+0x36) [0x7fa1cd0b3194] (??:0)
[3] /run/media/nazareno/Datos/Desarrollo/Godot/Projects/GMTK 2020/bin/x11/release/libgitapi.so(+0x2c37b7) [0x7fa1cd0b97b7] (??:0)
[4] /run/media/nazareno/Datos/Desarrollo/Godot/Projects/GMTK 2020/bin/x11/release/libgitapi.so(git_status_list_new+0x136) [0x7fa1cd0b9fd9] (??:0)
[5] godot::GitAPI::_get_modified_files_data() (??:0)
[6] godot_variant godot::__wrapped_method<godot::GitAPI, godot::Dictionary>(void*, void*, void*, int, godot_variant**) (??:0)
[7] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x2618ae7] (:?)
[8] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xc4e60f] (??:?)
[9] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xbecee5] (??:?)
[10] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x1f4fc44] (??:?)
[11] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x1b7199c] (:?)
[12] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x1b72610] (:?)
[13] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x28ea179] (??:?)
[14] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xc4e6d3] (??:?)
[15] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xc57fc6] (??:?)
[16] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xc58fc0] (??:?)
[17] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x18703e5] (:?)
[18] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x18cf8ea] (:?)
[19] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x18cfc71] (??:?)
[20] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x1f8f6b6] (??:?)
[21] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xc1c6b4] (??:?)
[22] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xbece61] (??:?)
[23] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x18f4c78] (:?)
[24] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x1919a5f] (:?)
[25] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x191ab46] (??:?)
[26] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x191ac9e] (:?)
[27] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x277ba46] (??:?)
[28] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xc4e6d3] (??:?)
[29] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0xbecee5] (??:?)
[30] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x18a2bf3] (??:?)
[31] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x18a536c] (??:?)
[32] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x2920a93] (??:?)
[33] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x291dcfd] (:?)
[34] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x2a66a6b] (:?)
[35] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x8582cc] (??:?)
[36] /lib64/libc.so.6(__libc_start_main+0xf2) [0x7fa1ef11f042] (??:0)
[37] /run/media/nazareno/Datos/Desarrollo/Godot/Godot_v3.2.2-stable_x11.64() [0x86695e] (??:?)
-- END OF BACKTRACE --

Button to select/unselect all

I like to keep my commits small and focused to just one specific feature I'm working on, if I can. It makes it easier to revert specific things without undoing a bunch of work that I want to keep.

But sometimes I forget to commit after finishing one task and start working on another thing and then another, etc. So when I finally take a break to commit, I have to selectively choose only the files that belong to the specific feature I want to commit.

Right now it's really a really annoying process! I have to manually unselect 50 files, stage and commit 3 files, then manually unselect 47 files, stage and commit 1 file, manually unselect 46 files, stage and commit 5 files, etc.

We really need a button to that will toggle between all files selected and unselected in the list. I imagine this button would fit nicely at the top of the list somewhere. Perhaps right next to the Refresh button.

Either that, or default everything in the list to unselected upon refreshing. After all, if you want to commit everything, there's already a handy "Stage All" button right there in the UI.

Plugin import error

I encountered the following error when trying to use the plugin with GodotEngine X11 v3.2-stable on ArchLinux (Linux Kernel v5.4.15):

E 0:00:00.462 open_dynamic_library: Can't open dynamic library: /home/[username]/Documents/Git/[project_folder]/bin/x11/libgitapi.so. Error: /home/[username]/Documents/Git/[project_folder]/bin/x11/libgitapi.so: undefined symbol: deflateInit_
<C++ Error> Condition "!p_library_handle" is true. Returned: ERR_CANT_OPEN
<C++ Source> drivers/unix/os_unix.cpp:424 @ open_dynamic_library()

Why ignore bin, lib and .lib folders by default?

I think it makes sense to check in this plugin into source control to minimize setup pain for team members. I renamed the bin folder .lib so it doesn't show up in godot's FileSystem viewer (I want to keep that as clean as possible), and it was ignored by default.

I had to change my gitignore to this:

# Import cache
.import

# Exported Binaries
.export

# Don't ignore .lib folder
!.lib

Even then the plugin didn't pick up on .lib directory, I had to use a git gui to check that in.

Improvement: keep plugin open after restart

Suggestion: once git plugin is open, auto-open it every time godot editor starts, until the user intentionally disables it.
This will save repetitive actions for the user every time a restart/crash happens - exactly what scripts are good at.

No git pull?

I don't understand this, Why don't any of these plugins include git pull functionality for people who aren't git savvy?

Why not install to the addons directory

As the Godot documentation suggests, https://docs.godotengine.org/en/stable/tutorials/plugins/editor/installing_plugins.html, Plugins go into res://addons/plugin_name.
but the installation instructions instruct we put the contents alongside the project.godot file and won't work otherwise.

Why doesn't this project follow the convention?
Imo, the root project folder would get cluttered if plugins were to reside there, and its not good for project hierarchy organization.

Unrecognized by godot.

I did as the wiki explained ... or at least tried. The wiki installation says to unzip with content of the zip file to the godot root project folder.

I assume this is meant to be where the godot binary is located? There is no mention of "root project folder" anywhere in the godot documentation.

After quitting my project to the godot project manager and re-opening my project, I tried to set up source control and received error: "No VCS addons are available."

Details:
windows 10,
godot 3.2.1 Stable.
Plugin version 1.2

v1.0 not using Release of MSVC 14.x runtime, uses Debug

Adding Git support to my new project, the plugin complains about a missing VCRUNTIME140_1D.dll. This specific one is NOT part of the MS Visual C redistributable setup, only the non-debug (aka release) versions of the runtime libraries are installed with the setup (and I don't want to install Visual Studio 2019 just to get the Debug runtimes).

Somehow you forgot to switch the plugin into Release status for the v1.0 release.

LFS Support?

I've been using this plugin along with git-lfs (large file storage) on my current project, and I've just discovered that they don't seem to be behaving together properly. If I commit a file that should be tracked with LFS using the plugin, it doesn't actually get handled by LFS, it's just treated as a regular file. The problem isn't apparent until either a push (where I notice that I don't see any Uploading LFS objects line) or a checkout, where I get an error like this:

Encountered 7 file(s) that should have been pointers, but weren't:

LFS works fine if I just handle my commits and pushes from git-bash instead of using the plugin.

Is support for LFS coming at some point? Or am I perhaps doing something wrong?

Can't open dynamic library: Error 126: The specified module could not be found.

I get the following with the v1.1 release on Windows 10 x64, Godot 3.2 stable

ERROR: Can't open dynamic library: D:/path/to/project/bin/win64/libgitapi.dll, error: Error 126: The specified module could not be found.
.
   At: platform/windows/os_windows.cpp:2269

The file is indeed at the path printed. Is there some dependency that I might be missing? (If so this should be documented.)

Initial commit

Does the plugin need to create the initial commit?

Wouldn't this be better to perform the 'git init' then allow the developer to add files for the initial commit?

macOS ?

It seems like this doesn't work on macOS, although it would be cool...

Plug-in not recognized

I installed the plug-in, per the instructions, and verified that all files are in their proper location (see attached), but I'm still getting an error message that No VCS addons are available.

2021-05-04 17_50_44-Window
2021-05-04 17_52_03-Window

And I'm receiving the following error messages:

2021-05-04 17_54_05-Window
2021-05-05 18_08_50-Godot_v3 3

All the files it says it can't find are present in the project folder or the ../bin/win64/release folder inside the project folder.

2021-05-05 18_16_51
2021-05-05 18_14_01-Godot Engine

If you need any more information, let me know. Thanks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.