Thread (1 message) 1 message, 1 author, 2016-06-15

Re: Git an case-insensitive Mac OS X filesystem

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:54:43

Roger Pau Monné [off-list ref] writes:
Hello,

I'm using git for all my projects, and I usually work under Mac OS X
with the default filesystem (that's case-insensitive, but
case-preserving). I'm currently working on a project that has several
branches, and two of them are called origin/DHCPCD and origin/dhcpcd
respectively, that's unfortunate, but I cannot do anything about it.
This completely breaks the git repository, because
.git/refs/remotes/origin/DHCPD and .git/refs/remotes/origin/dhcpd are
actually the same file, so when I try to update my repository
performing a git pull I get the following error:

error: Ref refs/remotes/origin/dhcpcd is at
6b371783de2def2d6e3ec2680ba731f7086067ee but expected
79f701ce599a27043eed8343f76406014963278a

So I was wondering if anyone has stumbled upon this issue, and what's
the best approach to fix it.
If "several" is manageably small, you can configure your refspecs to
rename them, e.g.

	[remote "origin"]
		url = ...
                fetch = +refs/heads/master:refs/remotes/origin/master
                fetch = +refs/heads/dhcpcd:refs/remotes/origin/dhcpcd
                fetch = +refs/heads/DHCPCD:refs/remotes/origin/dhcpcd-u

which tells

	$ git fetch origin

to use your remote tracking branch origin/dhcpcd-u to copy from
their DHCPCD.  Then you can work on it the usual way.

	$ git checkout -b dhcpcd-u origin/dhcpcd-u
        $ work work work

For pushing, you can rename it back in a similar way.

        $ git push origin dhcpcd-u:DHCPCD

which is a short-hand for

        $ git push origin refs/heads/dhcpcd-u:refs/heads/DHCPCD
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help