From: Stephen Kelly <hidden> Date: 2016-06-15 22:50:25
Hi,
On Friday we had an issue where a developer pushed a branch called HEAD to
the remote server. The result was that other developers could not pull or
push. I have not been able to reproduce the exact issue locally, but this
script shows that the bob clone behaves oddly on each pull. That is a
symptom we saw on Friday. However, bob is still able to push, which we were
not able to. That point could be something to do with how the kde git
infrastructure is configured.
mkdir remote
cd remote/
git init --bare
cd ../
git clone remote/ alice
cd alice/
echo test >> file
git add file
git commit -am w
git push origin master
echo test >> file
git commit -am w
git branch HEAD
git push origin HEAD
git push
cd ..
git clone remote bob
cd bob/
git pull --rebase
echo test >> file
git commit -am w
git push
git pull
git pull
git pull
There were also messages like this:
$ git pull
remote: Counting objects: 5, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /home/kde-devel/dev/src/playground/git/tmp/remote
+ 1434cd2...dd30974 HEAD -> origin/HEAD (forced update)
error: Ref refs/remotes/origin/master is at
dd3097498a6c1c5bc73ad1f2ff3b7969a6f6d059 but expected
1434cd2bb9823d2d2b1548c75fdd4ff8b1feddc1
! 1434cd2..2fb560d master -> origin/master (unable to update local
ref)
The HEAD branch was created accidentally and the issue was resolved by doing
a git push origin -f :refs/heads/HEAD. Again though, git push -f is not
something all developers are allowed to do on the kde git infrastructure, so
until that was done, the repo was corrupt for everyone.
Shouldn't git forbit the creation of a branch called HEAD? Hopefully the
provided script can lead to the actual issue that caused the corruption of
our repo.
Thanks,
Steve.
_______________________________________________
KDE PIM mailing list kde-pim@kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
KDE PIM home page at http://pim.kde.org/
From: Stephen Kelly <hidden> Date: 2016-06-15 22:50:26
Stephen Kelly wrote:
Hi,
On Friday we had an issue where a developer pushed a branch called HEAD to
the remote server. The result was that other developers could not pull or
push.
Does anyone have any thoughts/response on this?
Why does git not have a bug tracker?
Steve.
From: Stephen Kelly <hidden> Date: 2016-06-15 22:50:26
Ok so there was some movement with the result that no one uses what was set up.
Presumably because git developers don't want a bug tracker.
So how can I ensure that this particular issue doesn't get lost? Is
there no way except hope that people get involved in fixing it
straight away, and fix it straight away before they forget about it?
We worked around this on the KDE side by forbidding pushing any ref
with the name HEAD to the remote, but it's still a git bug.
On 1/20/11, Thomas Rast [off-list ref] wrote:
From: Erik Faye-Lund <hidden> Date: 2016-06-15 22:50:26
On Thu, Jan 20, 2011 at 4:05 PM, Stephen Kelly [off-list ref] wrote:
Ok so there was some movement with the result that no one uses what was set up.
Presumably because git developers don't want a bug tracker.
So how can I ensure that this particular issue doesn't get lost? Is
there no way except hope that people get involved in fixing it
straight away, and fix it straight away before they forget about it?
You could always fix it yourself, and submit a patch.
From: Stephen Kelly <hidden> Date: 2016-06-15 22:50:26
On Thu, Jan 20, 2011 at 4:41 PM, Erik Faye-Lund [off-list ref] wrote:
On Thu, Jan 20, 2011 at 4:05 PM, Stephen Kelly [off-list ref] wrote:
quoted
Ok so there was some movement with the result that no one uses what was set up.
Presumably because git developers don't want a bug tracker.
So how can I ensure that this particular issue doesn't get lost? Is
there no way except hope that people get involved in fixing it
straight away, and fix it straight away before they forget about it?
You could always fix it yourself, and submit a patch.
Correct. That would be a big rampup though and I might give up, move
on or forget and then no one would do it because everyone has
forgotten about it. I mean that in the general sense of any bug that
gets posted to this mailing list.
But I'm not trying to change how git people work. I'm just trying to
discover what the states of a bug in git should be understood to be
after it is emailed to this list and before it's in master. So far it
seems there is only one intermediate state: "Limbo, maybe forgotten.
You should email the list again"
Thanks,
Steve.
From: Felipe Contreras <hidden> Date: 2016-06-15 22:50:26
Hi,
On Thu, Jan 20, 2011 at 1:14 PM, Stephen Kelly [off-list ref] wrote:
Stephen Kelly wrote:
quoted
On Friday we had an issue where a developer pushed a branch called HEAD to
the remote server. The result was that other developers could not pull or
push.
Does anyone have any thoughts/response on this?
Can you list a series of steps to reproduce this?
Why does git not have a bug tracker?
Because it's not needed. If you have an issue, post the issue as you
would file a bug:
Which version of git?
Which kind of network transport was used?
Is this reproducible?
Chances are, if this is reproducible in the latest version, someone
would fix it soon enough. If not, and it's important to you, you would
ping back. If other people find this issue, they would send another
email.
In fact, if you really want to help, you could clone the latest
'master' to see if this still happening, narrow down the steps needed
to reproduce this, write a test to trigger it and send a patch.
Certainly, a test case that constantly fails would be a constant
remainder that there is a bug.
Cheers.
--
Felipe Contreras
From: Wesley J. Landaker <hidden> Date: 2016-06-15 22:50:26
On Thursday, January 20, 2011 10:32:40 Felipe Contreras wrote:
Hi,
On Thu, Jan 20, 2011 at 1:14 PM, Stephen Kelly [off-list ref] wrote:
quoted
Stephen Kelly wrote:
quoted
On Friday we had an issue where a developer pushed a branch called
HEAD to the remote server. The result was that other developers could
not pull or push.
[...]
Which version of git?
Which kind of network transport was used?
Is this reproducible?
FWIW, here is a quick demonstration of at least one problem with having a
branch called HEAD. You can make it and push it fine, but when cloning, you
don't get it.
#!/bin/bash
git init --bare origin.git
git clone origin.git wc1
cd wc1
git commit --allow-empty -m "Initial rev"
git checkout -b HEAD
git commit --allow-empty -m "Make HEAD branch"
git push --all
cd ..
git clone origin.git wc2
diff -u <(cd wc1; git branch -a) <(cd wc2; git branch -a)
diff -u <(cd wc1; git log --all) <(cd wc2; git log --all)
If I do the following from wc2 I can get the branch manually:
git pull origin refs/heads/HEAD:HEAD
I haven't played with it enough to see what other problems might arise.