rtyley / bfg-repo-cleaner

Removes large or troublesome blobs like git-filter-branch does, but faster. And written in Scala
https://rtyley.github.io/bfg-repo-cleaner/
GNU General Public License v3.0
11.11k stars 549 forks source link

ref-names are treated case-insensitively #281

Open Vampire opened 6 years ago

Vampire commented 6 years ago

It seems ref-names are treated case-insensitively. I have a rather big and complex repo where some branch names occure more than once with different casing. It seems on updating the refs only one of those refs is updated, the others are ignored.

javabrett commented 6 years ago

What are your platform details 1) of where the repo is commonly-used and 2) where you are running BFG? Is it possible that you are running against branches created with different case on say Linux, but running BFG on Windows?

Case-differing branch-names are known problematic with Git cross-platform with case-sensitive vs case-insensitive platforms and filesystems. I'd recommend that you make-unique branch-names disregarding case.

Vampire commented 6 years ago

Of course this is a good plan always, I know that. But this is a big repo with a long history where many very dirty things were done and also partly separate repos combined into one. For me it is only 4 branches I have to rename, so I either do that manually or change the svn2git rules file to rename those branches on the fly.

I just thought I report here that BFG does not handle it well.

My setup was an svn2git (the proper one, by the KDE guys) generated repo on Linux, mirror-cloned to a Windows machine (too less RAM on the migration machine) and there BFG run.

javabrett commented 6 years ago

I would expect these issues when moving from Linux to run BFG on Windows. I highly recommend running it on Linux, just spin-up a machine with enough RAM. This is caused by known cross-platform limitations with Git re case-insensitive filesystems, so is not a BFG issue and is a won't-fix for me.

Vampire commented 6 years ago

Well, I don't like the likewise-named brnaches anyway and will rename them, so no problem here. It also probably only worked half-way as the branches were in a pack-file. So yeah, close it as Git known-limitation if you think. :-)