Re: Corruption of branch?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Stefan thanks for much for the response! So I compiled release version 2.6.4 as well as the current master branch on the git git repository (2.7.0.rc0.20.g4b9ab0e) and the problem persists on both.

To answer your questions, there are no weird characters. The name of the bad_branch is "frus". There is another branch called "frus_body_cleaning" that is totally fine.

As to whether the error continues after commits, the answer is no which is good. I.e. if I run `git checkout -b frus origin/frus` that works fine. I then decided to checkout a new branch (so as to not mess with the original branch and possibly turning this into a Heisenbug) and add a test commit which I pushed upstream. I then recloned the repository and was able to checkout this new branch just fine, but I still couldn't check out the original frus branch using the simplified command.

So of course on the practical side, I have a fix which is to just use `git checkout -b frus origin/frus` (apparently only this one time) and then be on my merry way (in fact I had only just broken myself of the habit typing it this older way after many versions of the newer simpler syntax), but it seems like it could be good to sort out what's going on here...

Thanks again for the response!

Cheers,
Thomas

On 12/14/2015 12:51 PM, Stefan Beller wrote:
On Mon, Dec 14, 2015 at 9:40 AM, Thomas Nyberg <tomnyberg@xxxxxxxxx> wrote:
Hello,

I have a repository (which I unfortunately cannot provide access to) which
is having some odd things happening with one (and only one) of its branches.
This workflow repeats the issue (here `bad_branch` is one of the remotes
branches; i.e. `origin/bad_branch`):

(1) clone the repository
(2) git checkout `bad_branch`

Basically nothing happens. Nothing is printed and I stay on the master
branch. I also checked $? and there is no error code that is set. If I
choose any of other branches, it correctly creates a local branch, sets it
to track the remote and then switches to the local branch.

Does that branch have a funny name? (i.e. is it ASCII only? Or is it
also utf8 characters?
Does it have some special characters in it like points, colons,
question marks etc)

Does it happen only with a single sha1 or can you apply commits on top
of that branch
and the error condition persists?


It seems like there could be some sort of weird bug in the checkout or
possibly somehow some corruption in the actual object tree. From my vantage
point, however, the data appears totally fine. For example, in
`.git/packed-refs` everything appears normal and if I explicitly checkout
the commit IDs directly (i.e. just copy the commit corresponding to
refs/remotes/origin/bad_branch and checkout $commit) it checks out fine. If
I do this with the bad_branch I get a detached HEAD as expected and git log
lists the commits that it should.

This seems a bit odd to me. There's certainly some sort of error somewhere,
but it's passing silently. I'm not really sure how to debug this and it's
too bad I can't actually link the actual repository. I presume if I have the
time I could try compiling git from source and seeing if it still shows up.
I tested it on the following two versions of git get the same error:

* 1.9.1 (installed as a package from Linux Mint 17.2 Rafaela)
* 2.1.4 (installed as a package from Debian Jessie 8.2)

The refs handling code is in flux at the moment. (starting mid of last
year actually)
I cc'd people who did work recently on the file refs.c

So I think trying with a new version of Git would be a valuable datapoint!


Also I should note that the original repository is hosted on Github.

Thanks for any help. Hopefully the fact that I can't provide enough
information for others to reproduce the issue isn't too large a bother...

Cheers,
Thomas Nyberg
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]