Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compatibility issues between git 1.8 client and older git server

I'm using a remote git hosting service (Svnrepository.com). I'm able to access the git repositories successfully while using a git 1.7.x as the client, but as soon as I upgrade the client to git 1.8.x, I am no longer able to push: the push hangs. The hosting service's support claims that this is because they are using an older git server that does not support version 1.8.

  1. How do I use git 1.8 as a client, with an older git server?
  2. Is there a workaround?
  3. Does anyone know what the exact incompatibility is?
  4. Does the statement from the support even sound plausible? For some reason I had thought that git had excellent backward/forward compatibility and there was no reason to fear that upgrading would break git
  5. Is there some known incompatibility introduced in the 1.7->1.8 transition that would cause this?

By request, here is a trace with GIT_TRACE=1. It looks like it hangs while running git-http-push:

$ GIT_TRACE=1 git push -v
trace: built-in: git 'push' '-v'
Pushing to https://secure2.svnrepository.com/redacted/redacted/
trace: run_command: 'git-remote-https' 'origin' 'https://secure2.svnrepository.com/redacted/redacted/'
trace: run_command: 'http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'
trace: exec: 'git' 'http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'
trace: exec: 'git-http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'
trace: run_command: 'git-http-push' '--helper-status' '--verbose' 'https://secure2.svnrepository.com/redacted/redacted/' 'refs/heads/master:refs/heads/master'

It hangs after the last line of output. (If you prefer, you can also look at a trace where I've set both GIT_TRACE=1 and GIT_CURL_VERBOSE=1.)

like image 378
D.W. Avatar asked Feb 17 '13 23:02

D.W.


People also ask

Is git backward compatible?

It's extremely backward compatible in terms of the actual storage of information, which is all you're worried about in this case.

What is Git server and Git client?

View More. Git is a DevOps tool used for source code management. It is a free and open-source version control system used to handle small to very large projects efficiently. Git is used to tracking changes in the source code, enabling multiple developers to work together on non-linear development.

How do I know my git server version?

Check your version of Git You can check your current version of Git by running the git --version command in a terminal (Linux, macOS) or command prompt (Windows).

How do Git clients work?

The Git GUI client is a tool that allows the developer to work with this version control system in a visual mode. It does not require writing commands manually, offering a convenient graphical interface with the in-built options. This way, one can perform the tasks faster and in a more comfortable manner.


2 Answers

Wanting to run with a more up to date version of git is understandable, but if you host of choice doesn't run a current version, why don't you switch hosts? From the name alone, Svnrepository.com, doesn't sound like they focus on Git hosting. If the hosting service isn't something you can change, what about installing git1.7 somewhere outside your path and 1.8 normally. Then you could link the 1.7 version to something like oldgit and when you need to work with Svnrepostiory.com your commands would be like oldgit add, oldgit commit, oldgit push.

like image 175
linuxdan Avatar answered Oct 10 '22 01:10

linuxdan


Svnrepository.com page says 'Standard features: Git over SSH' and it seems that you are accessing over http: which is probably good for read-only access. If you look at the text file .git/config you should see a section [remote "origin"] and the 'url' value can be set to the format host:/path/on/remote/machine which implies an SSH connection for Git

like image 26
karmakaze Avatar answered Oct 10 '22 02:10

karmakaze