gitgithubmercurialtortoisehghg-git

TotoiseHG: An existing connection was forcibly closed by the remote host


I wanted to push a project from from TortoiseHg to GitHub. I know that, TortoiseHg is a front-end to the Mercurial distributed version control system; where GitHub works with Git. But I love to use TortoiseHg (instead of TortoiseGit or GitGui), and want to keep my project in GitHub.

So, I configured TortoiseHg (File>Settings>Extensions>hggit) and was able to push a test project to GitHub (following this wonderful blog). But later when I tried to push a C# MVC project with it, situation changed. It nicely starts pushing, then asks for authentication, & then shows this error-

An existing connection was forcibly closed by the remote host

Here is what shown in the log-

% hg push git+https://github.com/MinhasKamal/MVCPracticeWork
pushing to git+https://github.com/MinhasKamal/MVCPracticeWork
http authorization required for https://github.com/MinhasKamal/MVCPracticeWork/info/refs
realm: GitHub
searching for changes
adding objects
URLError: [Errno 10054] An existing connection was forcibly closed by the remote host
[command returned code 255 Thu Feb 04 16:17:02 2016]

I don't understand- why this error is happening. Is this a problem of GitHub or TortoiseHG, or I did something wrong? How it can be solved?


Edit 1: I am able to push to the repository but only by 'not adding' some specific directories to my repository. Is it any file type or name that is making this error?


Edit 2: The problem again happened with me, this time with a Java project. Everything was fine, till I added a *.jar file in the repository. I made a commit, but when I tried to push it to the GitHub, TortoiseHg showed me the same message. I removed the *.jar, committed, and tried to push again, but couldn't.

Now, I did again that I did before (Edit 1)- I pulled the whole repository from GitHub to another folder, replaced changed files from the current repository at my PC (did not add the *.jar), committed, and pushed; I was successful this time. So, this time the *jar file was not added to the version control database, that is why it worked.


Solution

  • So far, after many comments, it seems the content of some binary file types (like- *.jar, *.mp3 etc. but not *.png) are problematic:

    To keep a similar end-user experience, a test would be to install a TortoiseGit, and see if a git push would work in a classic git clone repo.