godotengine / godotengine/godot-git-plugin

Bug: Files vanish when deleting current branch in Git plugin

Open
#278 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
C++
Stars
954
Forks
98
PR merge metrics
No merged PRs in 30d

Description

## Environment where the phenomenon occurred

GodotEngine v4.3.stable.official [77dcf97d8]
Git plugin v3.1.1
Windows10 Home (64bit)

## Steps taken and the problem encountered

Using the "Create New Branch" option in the bottom-right menu of the Commit Dock, I created a branch named `publish`.

The selected branch in the bottom-left of the Commit Dock automatically switched from `master` to `publish`.

I committed several files to the `publish` branch.

Using the "Remove Branch" option in the bottom-right menu of the Commit Dock, I deleted the currently selected `publish` branch.

![Godot4 Git plugin remove branch probrem #1](https://github.com/user-attachments/assets/5f005127-06b6-4f68-becb-9de5be0b166e)

Immediately afterward, two error dialogs were displayed, and some of the files I had just committed disappeared.
The first dialog displayed the message: *"Cannot open file 'filename.tscn'. The file may have been moved or deleted."*
The second dialog displayed the message: *"Cannot load due to a missing dependency: filename.gd."*

When I closed the dialogs, the editor forcibly closed itself.

Even after restarting the editor, the files remained missing, and errors related to the missing files were displayed.

The deleted files were not found in the recycle bin either.

![Godot4 Git plugin remove branch probrem #2](https://github.com/user-attachments/assets/2d971d96-401f-4f27-9440-2df5ec095e0e)

## Workaround

If you select a different branch (e.g., `master`) and then delete the `publish` branch, the branch is removed successfully without errors.

## Request

Please prevent the deletion of the currently selected branch.
For example, by excluding the currently selected branch from the "Remove Branch" list or by displaying a dialog to interrupt the process.

## The Issue is Not File Deletion, but the Ability to Delete the Currently Selected Branch
*(Added on 2025/04/23)*

When switching branches, it was confirmed that TortoiseGit also deletes files or folders that were tracked in the previous branch (e.g., `publish`) but not in the branch after switching (e.g., `master`).
However, these deleted files or folders can be restored by switching back to the original branch (e.g., `publish`).

```
master branch
a.txt

publish branch
a.txt
b.txt

File states during branch switching

publish -> master -> publish
a.txt -> a.txt -> a.txt
b.txt -> (deleted) -> b.txt
```

The main point of this issue is not that files or folders were deleted when the selected branch (e.g., `publish`) was removed and the remaining branch (e.g., `master`) was automatically switched to.
Instead, the point is that after the original branch (e.g., `publish`) was deleted, the files or folders cannot be restored.

```
File states when the selected branch is deleted, and it is automatically switched to the `master` branch

publish -> master -> publish (deleted)
a.txt -> a.txt -> Cannot switch back.
b.txt -> (deleted) -> Cannot switch back.
```

Therefore, it would be safer if the list displayed in the "Remove branch" option prevents selecting the currently active branch (e.g., `publish`).

That is all for my report.

This text was translated from Japanese to English using Windows 10 Copilot.
It was then retranslated back into Japanese with Google Translate to verify its accuracy before posting.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.