gitbutlerapp / gitbutler

The GitButler version control client, backed by Git, powered by Tauri/Rust/Svelte
https://gitbutler.com
Other
11.48k stars 467 forks source link

Deleted branches are still showing up under branches as remote #4161

Open famosab opened 1 week ago

famosab commented 1 week ago

Version

0.12.5

Operating System

Mac OS X

Distribution Method

dmg (Apple Silicon)

Describe the issue

image This is a branch that was merged and deleted upstream and locally.

How to reproduce

No response

Expected behavior

Deleted branches should not show up anymore.

Relevant log output

No response

Thanks for the nice tool - I use it a lot :)

Byron commented 6 days ago

Thanks for reporting!

Does this issue persist, that is, when reopening the project then deleted branches are still showing up?

I wonder if the "How to reproduce" involves deleting the branches while keeping the UI open, but the UI does not update accordingly? Thanks again for clarifying.

famosab commented 6 days ago

Yes, I removed the project and added it again and all the branches are still showing up.

And yes, I cannot really delete branches in the UI. Or at least not those that were already pushed at some point. Deleting Virtual Branches is no problem.

My repository is a fork of an upstream to which I contribute regulary with Pull Requests.

Byron commented 5 days ago

Thanks a lot for elaborating. Now that it's clear that the issue persist, and knowing that GitButler can't make branches up, they must be there somewhere.

Can you find the branches it shows (directly or as suffixes, maybe parts of remote tracking branches) in the list you get with git branch -a? My thinking is that the branches are there under a different remote maybe, but shown in a truncated fashion in the UI, somehow.

famosab commented 5 days ago

These are the branches I get with git branch -a:

  cf-bed-circos
  cf-circos
  fix-strelka-somatic
* gitbutler/integration
  gitbutler/target
  manta-germ-test
  manta-tumor-test
  master
  strelka-germ-test
  strelka-somatic-test
  tiddit-sv
  update_mageck_test
  vcftools
  vep-dl
  remotes/origin/HEAD -> origin/master
  remotes/origin/getref-nftest
  remotes/origin/master
  remotes/origin/module-datavzrd
  remotes/origin/module-info
  remotes/origin/muse-call
  remotes/origin/muse-sump

And these are also the ones showing up in GitButler. They seem to be local branches (even though they are shown as remote) as they are not found on the remote repository. And when I try to delete them in GitButler they stay.

Byron commented 5 days ago

Going back to the original topic in the issue, refs/heads/cf-circos is supposed to be deleted locally, but it still shows in the listing above (as cf-circos), which means it exists. GitButler shows the full name. The remote tracking branch for it does not exist though, so maybe this is the source of the confusion?

Is there any other branch that is listed in the UI but not listed by git branch -a?

famosab commented 5 days ago
image image

The UI shows these 15 branches. I remember deleting for example cf-bed-circos, cf-circos and fix-strelka-somatic since the PRs were merged. So I deleted them on the repo and locally in the UI. After the update to 0.12.5 they showed up again.

Byron commented 5 days ago

Thank you!

Since GitButler sees these branches and Git sees these branches, to me it seems clear that they do exist.

But that's not what you are saying - what you are saying is that they have been re-created somehow when switching to a more recent GitButler version?

famosab commented 5 days ago

I deleted them in an older GitButler version and also on the remote repo. When I updated, these branches were showing up again in the UI. I never checked (before updating) whether they were present with git branch -a after deleting them in the UI (so maybe they were never really gone). Does that make senese?

Byron commented 4 days ago

I see - so the issue might be that the branches were never deleted by the UI in the first place. Maybe the steps were:

  1. delete branches in GB pre v12.5
  2. update GB
  3. the new version v12.5 opens and shows the previously deleted branches

Since GitButler can't make these up (for instance by having its own configuration files with branch names), I think the branches weren't actually deleted on disk, even though the UI thought so.

Can imagine this really happened? Not really, the UI should have shown the error, but it's the best explanation of what might have happened. Maybe that's a way to reproduce the issue.

famosab commented 4 days ago

I am also not able to delete those branches via the UI anymore. I will go ahead and remove those using the command line.

Byron commented 4 days ago

Could it be that there is some sort of name-duplication with virtual branches? That way, you might have deleted virtual branches which somehow shadowed the real ones. I was also under the impression that real branches won't be touched by GitButler.

famosab commented 4 days ago

Sure all my virtual branches turn into real ones at some point when I commit and push.