emacs-orgmode
[Top][All Lists]
Advanced

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

[Orgmode] Re: problems cloning using the http protocol


From: Bernt Hansen
Subject: [Orgmode] Re: problems cloning using the http protocol
Date: Tue, 14 Jul 2009 13:17:51 -0400
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

Scot Becker <address@hidden> writes:

> Just tried:
>    git clone http://repo.or.cz/r/org-mode.git
>
> behind my corporate firewall, and it worked.  It's slow, however.

HTTP will always be slower than the git protocol.  HTTP is dumb so there
is no way to transfer only part of a pack that contains the objects you
are missing.  You'll get the entire pack file each time via the HTTP
protocol.

> So I don't think the problem is on the server end.  Did you try any
> other projects (using git+http proxy)?
>
> I don't suppose anyone knows how to git org develpment releases
> sometimes behind an http proxy and sometimes directly (as on a laptop
> that is sometimes behind a firewall, and sometimes not.)  I couldn't
> make this to work.

There are multiple options
------------------------------------------------------------------------
UNTESTED

You might be able to get away with creating a second remote for the
project like this:

[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
        url = http://repo.or.cz/r/org-mode.git

[remote "origin2"]
        url = git://repo.or.cz/org-mode.git
        fetch = +refs/heads/*:refs/remotes/origin/*

then

  git fetch origin
  uses the HTTP protocol

and

  git fetch origin2
  uses the git protocol

You can set up origin to be whichever you use more often (or switch as
required.)  The only differences between these remotes are:

  - name of the remote - you can name it anything you like
  - the fetch = lines are identical - using the same remote ref
    'refs/remotes/origin'.  This should work okay since the repos are
    physically the same
  - the url specifies the transport method to use.

------------------------------------------------------------------------

Just use two remotes

origin for your fast git protocol access
http for your slow http protocol access

then you'll have remotes like origin/master and http/master

If you can't git pull origin, you can manually git fetch http and git
merge http/master or whatever is appropriate

------------------------------------------------------------------------

I carry my org-mode.git around on my USB stick -- so I can just
clone/pull/fetch from that without internet access.  I'll update my
workstation/laptop repo when it has net access and then push to the usb
stick.

HTH,
Bernt




reply via email to

[Prev in Thread] Current Thread [Next in Thread]