# git fetch --prune removes branches from origin/ with inconsistent case in path names

2 messages from 2013-07-02 to 2015-03-30. Participants: Lee Winder.
Thread: https://gitlist.dev/t/34328

## Lee Winder, 2013-07-02 20:37

Subject: git fetch --prune removes branches from origin/ with inconsistent case in path names
Message-ID: <CAJz8ETuFC=STDRbPOxsTDdYbuMh0phdR3AYCzW3AvOrSAmKpWw@mail.gmail.com>
URL: https://gitlist.dev/e/CAJz8ETuFC%3DSTDRbPOxsTDdYbuMh0phdR3AYCzW3AvOrSAmKpWw%40mail.gmail.com

```
When using git fetch --prune, git will remove any branches from
remotes/origin/ that have inconsistent case in folder names.

This issue has been verified in versions 1.7.10.2, 1.7.11.1 and 1.8.3.2.

I've described the reproduction steps here as I carried them out, and
listed the plaforms I used to replicate it.  The issue will most
likely occur on a different combination of platforms also.

- On Mac, create a new repository and push a master branch to a central server
- On Mac, create a branch called feature/lower_case_branch and push
this to the central server (note that 'feature' is all lower case)
- On Windows, clone the repository but stay on master, do not checkout
the feature/lower_case_branch branch
- On Windows, branch from master a branch called
Feature/upper_case_branch (note the uppercase F) and push to the
server
- On Mac, run git fetch and see that
remote/origin/Feature/upper_case_branch is updated

Couple of things to note here
1) In the git fetch output it lists the branch with an upper case 'F'
  * [new branch]      Feature/upper_case_branch ->
origin/Feature/upper_case_branch
2) When I run git branch --all it is actually listed with a lower case 'f'
  remotes/origin/feature/upper_case_branch

Now the problem happens when I run git fetch --prune, I get the following output
  * [new branch]      Feature/upper_case_branch ->
origin/Feature/upper_case_branch
  x [deleted]         (none)     -> origin/feature/upper_case_branch

Note the new branch uses 'F' and the deleted branch uses 'f'.

The results of this bug seem to be
* Everytime I call git fetch it thinks Feature/upper_case_branch is a
new branch (if I call 'git branch' multiple times I always get the
[new branch] output)
* Whenever I run with --prune, git will *always* remove the branch
with a different folder name (from a case sensitive perspective) than
the one originally created on the current machine.


Thanks
Lee

```

## , 2015-03-30 13:58

Subject: Re: git fetch --prune removes branches from origin/ with inconsistent case in path names
Message-ID: <loom.20150330T155535-398@post.gmane.org>
URL: https://gitlist.dev/e/loom.20150330T155535-398%40post.gmane.org
In-Reply-To: <CAJz8ETuFC=STDRbPOxsTDdYbuMh0phdR3AYCzW3AvOrSAmKpWw@mail.gmail.com>

```
Lee Winder <lee.winder <at> gmail.com> writes:

> 
> When using git fetch --prune, git will remove any branches from
> remotes/origin/ that have inconsistent case in folder names.
> ...
> Thanks
> Lee
> 


Hello,

Same type of issue here using Jenkins.

In a gitBash console:
$ git branch --list
* feature/testCI1
  feature/testCI2

In Jenkins Console output (git plugin is 2.3.5):
Seen branch in repository origin/Feature/testCI1
Seen branch in repository origin/Feature/testCI2

Both are running on Windows

```
