1. 12 1月, 2009 1 次提交
  2. 18 10月, 2008 2 次提交
  3. 10 10月, 2008 1 次提交
  4. 06 10月, 2008 1 次提交
  5. 10 9月, 2008 1 次提交
    • J
      push: prepare sender to receive extended ref information from the receiver · 40c155ff
      Junio C Hamano 提交于
      "git push" enhancement allows the receiving end to report not only its own
      refs but refs in repositories it borrows from via the alternate object
      store mechanism.  By telling the sender that objects reachable from these
      extra refs are already complete in the receiving end, the number of
      objects that need to be transfered can be cut down.
      
      These entries are sent over the wire with string ".have", instead of the
      actual names of the refs.  This string was chosen so that they are ignored
      by older programs at the sending end.  If we sent some random but valid
      looking refnames for these entries, "matching refs" rule (triggered when
      running "git push" without explicit refspecs, where the sender learns what
      refs the receiver has, and updates only the ones with the names of the
      refs the sender also has) and "delete missing" rule (triggered when "git
      push --mirror" is used, where the sender tells the receiver to delete the
      refs it itself does not have) would try to update/delete them, which is
      not what we want.
      
      This prepares the send-pack (and "push" that runs native protocol) to
      accept extended existing ref information and make use of it.  The ".have"
      entries are excluded from ref matching rules, and are exempt from deletion
      rule while pushing with --mirror option, but are still used for pack
      generation purposes by providing more "bottom" range commits.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      40c155ff
  6. 08 8月, 2008 1 次提交
    • P
      Fail properly when cloning from invalid HTTP URL · fd35e426
      Petr Baudis 提交于
      Currently, when cloning from invalid HTTP URL, git clone will possibly
      return curl error, then a confusing message about remote HEAD and then
      return success and leave an empty repository behind, confusing either
      the end-user or the automated service calling it (think repo.or.cz).
      
      This patch changes the error() calls in get_refs_via_curl() to die()s,
      akin to the other get_refs_*() functions.
      
      Cc: Daniel Barkalow <barkalow@iabervon.org>
      Signed-off-by: NPetr Baudis <pasky@suse.cz>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      fd35e426
  7. 06 7月, 2008 1 次提交
  8. 26 6月, 2008 1 次提交
  9. 12 5月, 2008 1 次提交
  10. 05 5月, 2008 1 次提交
  11. 27 4月, 2008 1 次提交
  12. 05 3月, 2008 1 次提交
    • S
      Teach git-fetch to exploit server side automatic tag following · 41fa7d2e
      Shawn O. Pearce 提交于
      If the remote peer upload-pack process supports the include-tag
      protocol extension then we can avoid running a second fetch cycle
      on the client side by letting the server send us the annotated tags
      along with the objects it is packing for us.  In the following graph
      we can now fetch both "tag1" and "tag2" on the same connection that
      we fetched "master" from the remote when we only have L available
      on the local side:
      
               T - tag1          S - tag2
              /                 /
         L - o ------ o ------ B
          \                     \
           \                     \
            origin/master         master
      
      The objects for "tag1" are implicitly downloaded without our direct
      knowledge.  The existing "quickfetch" optimization within git-fetch
      discovers that tag1 is complete after the first connection and does
      not open a second connection.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      41fa7d2e
  13. 29 2月, 2008 1 次提交
  14. 28 2月, 2008 1 次提交
    • M
      Set proxy override with http_init() · 9fc6440d
      Mike Hommey 提交于
      In transport.c, proxy setting (the one from the remote conf) was set through
      curl_easy_setopt() call, while http.c already does the same with the
      http.proxy setting. We now just use this infrastructure instead, and make
      http_init() now take the struct remote as argument so that it can take the
      http_proxy setting from there, and any other property that would be added
      later.
      
      At the same time, we make get_http_walker() take a struct remote argument
      too, and pass it to http_init(), which makes remote defined proxy be used
      for more than get_refs_via_curl().
      
      We leave out http-fetch and http-push, which don't use remotes for the
      moment, purposefully.
      Signed-off-by: NMike Hommey <mh@glandium.org>
      Acked-by: NDaniel Barkalow <barkalow@iabervon.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9fc6440d
  15. 12 2月, 2008 1 次提交
    • M
      Work around curl-gnutls not liking to be reinitialized · b26768e2
      Mike Hommey 提交于
      curl versions 7.16.3 to 7.18.0 included had a regression in which https
      requests following curl_global_cleanup/init sequence would fail with ASN1
      parser errors with curl-gnutls. Such sequences happen in some cases such
      as git fetch.
      
      We work around this by removing the http_init and http_cleanup calls from
      get_refs_via_curl, replacing them with a transport->data initialization
      with the http_walker (which does http_init).
      
      While the http_walker is not currently used in get_refs_via_curl, http
      and walker code refactor will make it use it.
      Signed-off-by: NMike Hommey <mh@glandium.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      b26768e2
  16. 10 2月, 2008 1 次提交
    • M
      Work around curl-gnutls not liking to be reinitialized · 9fd9279b
      Mike Hommey 提交于
      curl versions 7.16.3 to 7.18.0 included had a regression in which https
      requests following curl_global_cleanup/init sequence would fail with ASN1
      parser errors with curl-gnutls. Such sequences happen in some cases such
      as git fetch.
      
      We work around this by removing the http_init and http_cleanup calls from
      get_refs_via_curl, replacing them with a transport->data initialization
      with the http_walker (which does http_init).
      
      While the http_walker is not currently used in get_refs_via_curl, http
      and walker code refactor will make it use it.
      Signed-off-by: NMike Hommey <mh@glandium.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      9fd9279b
  17. 05 2月, 2008 1 次提交
    • D
      Reduce the number of connects when fetching · ba227857
      Daniel Barkalow 提交于
      This shares the connection between getting the remote ref list and
      getting objects in the first batch. (A second connection is still used
      to follow tags).
      
      When we do not fetch objects (i.e. either ls-remote disconnects after
      getting list of refs, or we decide we are already up-to-date), we
      clean up the connection properly; otherwise the connection is left
      open in need of cleaning up to avoid getting an error message from
      the remote end when ssh is used.
      Signed-off-by: NDaniel Barkalow <barkalow@iabervon.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      ba227857
  18. 05 1月, 2008 1 次提交
  19. 15 12月, 2007 2 次提交
  20. 06 12月, 2007 1 次提交
  21. 04 12月, 2007 1 次提交
  22. 21 11月, 2007 1 次提交
  23. 12 11月, 2007 1 次提交
  24. 10 11月, 2007 1 次提交
  25. 09 11月, 2007 1 次提交
  26. 03 11月, 2007 2 次提交
  27. 02 11月, 2007 1 次提交
  28. 21 10月, 2007 1 次提交
  29. 16 10月, 2007 3 次提交
  30. 03 10月, 2007 1 次提交
  31. 01 10月, 2007 1 次提交
  32. 30 9月, 2007 1 次提交
    • J
      bundle transport: fix an alloc_ref() call · 90446a00
      Junio C Hamano 提交于
      Currently alloc_ref() expects the length of the refname plus 1
      as its parameter, prepares that much space and returns a "ref"
      structure for the caller to fill the refname.  One caller in
      transport.c::get_refs_from_bundle() however allocated one byte
      less.
      
      It may be a good idea to change the calling convention to give
      alloc_ref() the length of the refname, but that clean-up can be
      done in a separate patch.  This patch only fixes the bug and
      makes all callers consistent.
      
      There was also one overallocation in connect.c, which would not
      hurt but was wasteful.  This patch fixes it as well.
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      90446a00
  33. 19 9月, 2007 3 次提交
    • S
      Fix memory leaks when disconnecting transport instances · f4e95765
      Shawn O. Pearce 提交于
      Most transport implementations tend to allocate a data buffer
      in the struct transport instance during transport_get() so we
      need to free that data buffer when we disconnect it.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      f4e95765
    • S
      Ensure builtin-fetch honors {fetch,transfer}.unpackLimit · 50ab5fd3
      Shawn O. Pearce 提交于
      The only way to configure the unpacking limit is currently through
      the .git/config (or ~/.gitconfig) mechanism as we have no existing
      command line option interface to control this threshold on a per
      invocation basis.  This was intentional by design as the storage
      policy of the repository should be a repository-wide decision and
      should not be subject to variations made on individual command
      executions.
      
      Earlier builtin-fetch was bypassing the unpacking limit chosen by
      the user through the configuration file as it did not reread the
      configuration options through fetch_pack_config if we called the
      internal fetch_pack() API directly.  We now ensure we always run the
      config file through fetch_pack_config at least once in this process,
      thereby setting our unpackLimit properly.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      50ab5fd3
    • S
      Always obtain fetch-pack arguments from struct fetch_pack_args · fa740529
      Shawn O. Pearce 提交于
      Copying the arguments from a fetch_pack_args into static globals
      within the builtin-fetch-pack module is error-prone and may lead
      rise to cases where arguments supplied via the struct from the
      new fetch_pack() API may not be honored by the implementation.
      
      Here we reorganize all of the static globals into a single static
      struct fetch_pack_args instance and use memcpy() to move the data
      from the caller supplied structure into the globals before we
      execute our pack fetching implementation.  This strategy is more
      robust to additions and deletions of properties.
      
      As keep_pack is a single bit we have also introduced lock_pack to
      mean not only download and store the packfile via index-pack but
      also to lock it against repacking by creating a .keep file when
      the packfile itself is stored.  The caller must remove the .keep
      file when it is safe to do so.
      Signed-off-by: NShawn O. Pearce <spearce@spearce.org>
      Signed-off-by: NJunio C Hamano <gitster@pobox.com>
      fa740529