Skip to content
rctay edited this page Sep 13, 2010 · 13 revisions

This is a forked repository. Have a look at
git’s git wiki
for more information.

Description

This repository holds patches applied on top of git (currently tracking ‘master’ and ‘pu’). The branches are rebased frequently, so you might have to use “force” if you’re following them.

My aim is to streamline http code, whilst adding features vis-a-vis other transports (see TODO). This is done incrementally in separate branches that “build” on one another, making small, frequent submission to the main repo possible, as well as aiding vetting.

TODO

Here’s a “map” to make sense of the branches in the repo. Nested “topics” denote unimportant forks.

  1. fix fetching in push (http-fix-push-fetching)
    1. in v1.6.4-rc0 and later
  2. refactor fetching in http files (http-refactor-fetching)
    1. add progress indicators (http-progress-indicators)
    2. in v1.6.4-rc0 and later
  3. refactor fetching of ref info
    There are two ways of knowing-refs-on-the-remote-side: reading the whole refs/ directory, like http-push.c does on WebDAV-enabled servers, or just info/refs, like transport.c does. Preferably, the order of should look like:
    1. read /info/refs (sometimes people forget to update this)
    2. read /packed-refs
    3. read /refs/ recursively (we could either
      a. ls with http
      b. ls with WebDAV
      c. not ls at all)
      (do tell me if you disagree with this; I’m still trying to figure out other “precedence” configurations in use, such as in a local clone.)
  4. create a single connection alternative (vis-a-vis curl_multi) (details)
  5. report rejected non-fast-forward pushes (transport-helper-nonff)
  6. separate WebDAV stuff — it should be possible to enable pushing over HTTP/1.0 or 1.1, without DAV
Clone this wiki locally