Subject: [PATCH 00/21] git remote: set-head and new show output

From: Jay Soffian <[email-masked]>
Date: Wed, 25 Feb 2009 03:32:07 -0500

This series replaces three related topics from pu:

  js/remote-set-head
  jk/head-lookup
  js/remote-display

It is based on master. I re-ordered the original commits such that all
the refactoring outside of builtin-remote is done first, followed by
some small cleanups of builtin-remote itself, and finally ending with
the new builtin-remote functionality (set-head) and changes to its
"show" output. I think it is easier to review this way and the history
will be cleaner.

The end result is largely unchanged from what is currently in pu, but
the intermediate results obviously differ to account for the
re-ordering. I've verified that each intermediate result compiles and
passes t5505-remote.sh. I also ran the full test-suite after the first
group of refactoring, and again at the end.

I've diffed each of the changed files at the end of this series against
what is currently in pu to verify I didn't miss anything and I saw
nothing of note.

So I think this series is clean, and doesn't need an extensive
re-review, but a quick look-over would be appreciated.

I signed off on Jeff's patches; please remove my SoB from those if it is
inappropriate for me to have done so.

Thanks,

j.

Jay Soffian (17):
  move duplicated get_local_heads() to remote.c
  move duplicated ref_newer() to remote.c
  move locate_head() to remote.c
  remote: simplify guess_remote_head()
  remote: let guess_remote_head() optionally return all matches
  remote: make match_refs() copy src ref before assigning to peer_ref
  remote: make match_refs() not short-circuit
  string-list: new for_each_string_list() function
  builtin-remote: refactor duplicated cleanup code
  builtin-remote: remove unused code in get_ref_states
  builtin-remote: rename variables and eliminate redundant function call
  builtin-remote: make get_remote_ref_states() always populate states.tracked
  builtin-remote: fix two inconsistencies in the output of "show <remote>"
  builtin-remote: teach show to display remote HEAD
  builtin-remote: add set-head subcommand
  builtin-remote: new show output style
  builtin-remote: new show output style for push refspecs

Jeff King (4):
  test scripts: refactor start_httpd helper
  add basic http clone/fetch tests
  refactor find_ref_by_name() to accept const list
  remote: make guess_remote_head() use exact HEAD lookup if it is available

 Documentation/git-remote.txt           |   28 ++-
 Makefile                               |    1 +
 builtin-clone.c                        |   41 +---
 builtin-remote.c                       |  563 ++++++++++++++++++++++++++------
 builtin-send-pack.c                    |   79 +-----
 cache.h                                |    2 +-
 contrib/completion/git-completion.bash |    2 +-
 http-push.c                            |   72 +----
 refs.c                                 |    4 +-
 remote.c                               |  136 ++++++++-
 remote.h                               |   12 +
 string-list.c                          |   10 +
 string-list.h                          |    5 +
 t/lib-httpd.sh                         |    9 +-
 t/t5505-remote.sh                      |  114 +++++--
 t/t5540-http-push.sh                   |    9 +-
 t/t5550-http-fetch.sh                  |   57 ++++
 17 files changed, 818 insertions(+), 326 deletions(-)
 create mode 100755 t/t5550-http-fetch.sh