Fetch fails over HTTPS with error "fatal: protocol error: bad line length 2"
qubist opened this issue ยท 20 comments
Prerequisites
- Put an X between the brackets on this line if you have done all of the following:
- Reproduced the problem in Safe Mode: https://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
- Followed all applicable steps in the debugging guide: https://flight-manual.atom.io/hacking-atom/sections/debugging/
- Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
- Checked that your issue isn't already filed: https://github.com/issues?utf8=โ&q=is%3Aissue+user%3Aatom
- Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages
[I can't reproduce this in safe mode because it doesn't happen when Atom is launched from the terminal.]
Description
Fetching in Atom results in an error. Fetching through the terminal works fine.
Steps to Reproduce
- Clone a GitHub repository with HTTPS
- Commit and push a change from a different machine
- Click the fetch button on the bottom right in Atom
Expected behavior:
Atom should fetch the change and allow you to pull
Actual behavior:
Atom produces this error:
Unable to fetch
protocol error: bad line length 2
In Developer Tools Console, this message appears:
index.html:1 Uncaught (in promise) Error
at new GitError (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:14)
at /Applications/Atom.app/Contents/Resources/app/static/<embedded>:14
Reproduces how often:
Every time. However, here are situations where the error doesn't occur (at least on my machine):
- I opened Atom from the command line with
atom
- I opened Atom in Safe Mode from the command line with
atom --safe
- There are no new changes to fetch (for example, running
git pull
through terminal and then clicking the fetch button doesn't produce an error. Nothing happens which is the expected result.)
Also if I clone the repo using SSH (having set up SSH keys beforehand), the issue does not occur.
Versions
My machine:
$ atom --version
Atom : 1.58.0
Electron: 9.4.4
Chrome : 83.0.4103.122
Node : 12.14.1
$ apm --version
apm 2.6.2
npm 6.14.13
node 12.14.1 x64
atom 1.58.0
python 2.7.16
git 2.28.0
macOS Big Sur 11.6 (20G165)
M1 Mac
Other machines:
This issue occurred in a class I was helping teach with 19 students. The issue also occurred on other machines including older non-M1 Macs and Windows machines.
Additional Information
Terminal works
Even when Atom's fetching is throwing this error, fetching or pulling through terminal works fine.
Pushing still works, just not fetching.
Other solutions didn't work
Here's a discussion a similar issue which mentions this issue and a fix: atom/atom#22668 Their fix didn't work for me (see my comment there).
I've found a few forum posts about this error message, which suggested something is wrong with the connection. The issues persists when tested on two different WiFi networks, and I made sure Firewalls and antivirus software were turned off on my machine.
Issue persists in different Atom installations
Issue persists with Atom installed through Homebrew or from https://atom.io
.
Git details
Running git remote -v
in the repo gives:
$ git remote -v
origin https://github.com/HCDigitalScholarship/ticha-xml-tei.git (fetch)
origin https://github.com/HCDigitalScholarship/ticha-xml-tei.git (push)
(https://github.com/HCDigitalScholarship/ticha-xml-tei is the repo I'm working with. We need Atom git to work because students aren't trained in using the command line.)
I'm also having this issue on an intel Mac Mini (2018) with macOS 11.6. I guess I'll just stick to VSC for now.
Same here! Glad its not just me. Platforms both Mac OS (late 2013 and 2020 intel) and on Big Sur.
Glad this is not just me, but it's a real bummer it's so widespread. How can I debug further or help with a fix?
Faced exact same issue, the only solution helped was changing git origin url from HTTP to SSH
I am also affected when I try to pull from a repo.
Same issue on GNU/Linux (Debian 11)
I'm having this issue on ElementaryOS
Has there been a fix for this? Still having this issue. Running MacOS Monterey 12.0.1
I get the same issue every time I try to fetch from the Git tab. The only way around I have found it works is using git pull
from a terminal window.
My machine:
% atom --version
Atom : 1.58.0
Electron: 9.4.4
Chrome : 83.0.4103.122
Node : 12.14.1
% apm --version
apm 2.6.2
npm 6.14.13
node 12.14.1 x64
atom 1.58.0
python 3.9.7
git 2.32.0
macOS Monterrey 12.1
Intel chip
Same issue on macOS Big Sur 11.4.
A temporary workaround for those who are not comfortable with the command line is to install github desktop, then:
- File > add local repository
- point the directory to the repository folder you use with atom
- when you need to pull changes to your atom repository folder, use github desktop instead for the pull
Maybe this is caused by using different git versions?
#!/bin/bash
GITPATH1=/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/bin
GITPATH2=/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core
# Homebrew?
[[ -x /usr/bin/git ]] && GITBINPATH=/usr/bin # No Homebrew !
[[ -x /usr/local/bin/git ]] && GITBINPATH=/usr/local/bin # Hombrew on Apple Intel
[[ -x /opt/homebrew/bin ]] && GITBINPATH=/opt/homebrew/bin # Homebrew on Apple ARM
for GITBIN in $(find ${GITBINPATH} -iname "git*"); do
[[ -f "${GITPATH1}/$(basename ${GITBIN})" ]] && \
rm -f "${GITPATH1}/$(basename ${GITBIN})"
[[ ! -L "${GITPATH1}/$(basename ${GITBIN})" ]] && \
ln -s ${GITBIN} "${GITPATH1}/$(basename ${GITBIN})"
[[ -f "${GITPATH2}/$(basename ${GITBIN})" ]] && \
rm -f "${GITPATH2}/$(basename ${GITBIN})"
[[ ! -L "${GITPATH2}/$(basename ${GITBIN})" ]] && \
ln -s ${GITBIN} "${GITPATH2}/$(basename ${GITBIN})"
done
## for private repos
## https://git-annex.branchable.com/forum/error__58___bogus_format_in_GIT__95__CONFIG__95__PARAMETERS/
[[ ! -f "${GITPATH1}/git-show-config-params" ]] && \
cat > ${GITPATH1}/git-show-config-params << EOF
#!/bin/sh
echo "\$GIT_CONFIG_PARAMETERS"
EOF
[[ ! -f "${GITPATH2}/git-show-config-params" ]] && \
cat > ${GITPATH2}/git-show-config-params << EOF
#!/bin/sh
echo "\$GIT_CONFIG_PARAMETERS"
EOF
(Everything is changed within /Applications/Atom.app so you could delete it and copy back the downloaded version)
Using this script after every update of atom should help. Should also work with Apple ARM processors, but hasn't been tested. (MacbookPro Mid 15 -> Intel) I am personally using the homebrew version of git.
best regards
realizelol
Having the same issue.
Try replace https to http. It works for me
Try replace https to http. It works for me
I have had success with this too. Update .git/config update [remote "origin"] to use http://<repo_url>/
+1
+1 on linux (ubuntu mate). https to http workaround works.
+1 on for the workaround linux (PureOS - Debian based)
Is this the recommended way or is there any kind of fix someone is working on?
I've fixed this problem on my Mac like it was described in atom/atom#22668. Unfortunately, for some reason, this discussion was deleted.
The main idea was to use your system git command instead of packaged with Atom.
I've deleted the following files from my system:
/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/bin/git
/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git
And after that created a symlink to git:
ln -s /usr/bin/git /Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git
ln -s /usr/bin/git /Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/bin/git
OK, thx. Seems to be a bit hidden when you use flatpak on debian ^^
/var/lib/flatpak/app/io.atom.Atom/x86_64/stable/cea629ca495e72d577eae4e64bff902ead937564bc67be7fd6d584554be3de36/files/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/<subfolders see above>
(will not repeat how to link to you own separate installed git binary)
But if it is the integrated git binary, I think Atom devs can somehow easily fix it.
Or am I wrong?