git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: What's cooking in git.git (topics)

From
Julian Phillips <julian@quantumfyre.co.uk>
Date
Mar 13, 2007, 18:49 UTC
Message-ID
<Pine.LNX.4.64.0703131837280.18274@reaper.quantumfyre.co.uk>
In-Reply-To
<7vps7dle8j.fsf@assigned-by-dhcp.cox.net>
On Tue, 13 Mar 2007, Junio C Hamano wrote:
Show 24 quoted lines
> * jc/fetch (Sun Mar 4 15:36:08 2007 -0800) 15 commits
> + .gitignore: add git-fetch--tool
> + builtin-fetch--tool: fix reflog notes.
> + git-fetch: retire update-local-ref which is not used anymore.
> + builtin-fetch--tool: make sure not to overstep ls-remote-result
>   buffer.
> + fetch--tool: fix uninitialized buffer when reading from stdin
> + builtin-fetch--tool: adjust to updated sha1_object_info().
> + git-fetch--tool takes flags before the subcommand.
> + Use stdin reflist passing in git-fetch.sh
> + Use stdin reflist passing in parse-remote
> + Allow fetch--tool to read from stdin
> + git-fetch: rewrite expand_ref_wildcard in C
> + git-fetch: rewrite another shell loop in C
> + git-fetch: move more code into C.
> + git-fetch--tool: start rewriting parts of git-fetch in C.
> + git-fetch: split fetch_main into fetch_dumb and fetch_native
>
> This is a partial C rewrite of heaviest part of git-fetch to
> help fetching between repositories with hundreds of refs.  I do
> not like the way it is split, but it may be a good idea to throw
> it in 'master' as it does not seem to regress anything and see
> if there are other interested people who want to finish the
> rewriting.

As it happens I was planning to start looking at writing a builtin fetch when I got home this evening ... the fetch--tool improvements have whetted my appetite for speed ... ;)

Show 12 quoted lines
> * sb/fetch (Mon Mar 12 19:01:11 2007 -0700) 19 commits
> + git-fetch.sh:append_fetch_head() no longer has a remote_nick
>   argument
> + git-fetch: Split fetch and merge logic
>
> I have a soft spot to anything that claims to be a clean-up, but
> I suspect that the shell loop this series introduces may defeat
> the git-fetch--tool optimization.  Also I think having to base
> the patch on this made Paolo's "dot is special token to mean
> 'git pull' merges from a local branch" needlessly complex (but I
> haven't tried rewriting it myself without these two).  Although
> I merged these to 'next', I am considering to revert them.

I found that this series did introduce a regression, but not a serious one. A null fetch went from ~30s to ~40s IIRC. I moved canon_refs_list_for_fetch from git-parse-remote.sh to git-fetch--tool in response, and was pretty much able to get back to where I was before - I can send the patch if you want, I didn't think it that important.

-- 
Julian

  ---
The new Congressmen say they're going to turn the government around.  I
hope I don't get run over again.
Previous: Matthias LederhoferNext: Junio C Hamano
Message 17 of 28 in “What's cooking in git.git (topics)”
  1. Junio C HamanoFeb 20, 2007
  2. Eric WongFeb 20, 2007
  3. Junio C HamanoFeb 20, 2007
  4. Alexander LitvinovFeb 20, 2007
  5. Junio C HamanoFeb 23, 2007
  6. Johannes SchindelinFeb 23, 2007
  7. Junio C HamanoFeb 23, 2007
  8. Junio C HamanoMar 4, 2007
  9. Johannes SchindelinMar 4, 2007
  10. Linus TorvaldsMar 4, 2007
  11. Junio C HamanoMar 4, 2007
  12. Marco CostalbaMar 4, 2007
  13. Junio C HamanoMar 13, 2007
  14. Matthias LederhoferMar 13, 2007
  15. Junio C HamanoMar 13, 2007
  16. Matthias LederhoferMar 13, 2007
  17. Julian PhillipsMar 13, 2007
  18. Junio C HamanoMar 13, 2007
  19. Santi BéjarMar 13, 2007
  20. Junio C HamanoMar 14, 2007
  21. Santi BéjarMar 14, 2007
  22. Junio C HamanoMar 25, 2007
  23. Johannes SchindelinMar 25, 2007
  24. Junio C HamanoMar 25, 2007
  25. Johannes SchindelinMar 25, 2007
  26. Florian WeimerMar 26, 2007
  27. Junio C HamanoMar 26, 2007
  28. Document git-log --first-parentJunio C Hamano, Mar 27, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.