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

Re: Slow fetches of tags

From
RBRalf Baechle <ralf@linux-mips.org>
Date
May 25, 2006, 13:12 UTC
Message-ID
<20060525131241.GA8443@linux-mips.org>
In-Reply-To
<Pine.LNX.4.64.0605241641250.5623@g5.osdl.org>
On Wed, May 24, 2006 at 04:43:02PM -0700, Linus Torvalds wrote:
Show 6 quoted lines
> Actually, maybe the problem is that Ralf's tree has two roots, because of 
> the old CVS history. It might be following the other root down for the 
> "have" part, since that one doesn't exist at all in the target and the 
> other side will never acknowledge any of it. 
> 
> I'll play with it.

Interesting idea, so I went to play with it, too. I took a copy of the tree and deleted all branches except the v2.6.16-stable tracking branch which I pruned back to v2.6.16.17, then added a new branch starting at the oldest commit, your initial import of the kernel tree:

$ git branch junk 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2
$ git checkout junk
$ seq -f "%05.0f" 1 100 | while read i; do echo $i; echo $i > Makefile;\
  git commit -s -m "Blah $i" Makefile; done
So with this I get:
$ git branch
* junk
  v2.6.16-stable
$
If I now run
$ strace git-fetch-pack --thin git://www.kernel.org/pub/scm/linux/kernel/\
	git/stable/linux-2.6.16.y.git \
	refs/heads/master refs/tags/v2.6.16.18 2>&1 | grep have /tmp/xxx
I get:

write(3, "0032have ef686028603c291ba510c66"..., 50) = 50 write(3, "0032have 150384dac99eb263c4385c7"..., 50) = 50 write(3, "0032have 4df3afbfc2d8f6c22d41c63"..., 50) = 50 ... write(3, "0032have db119fba3d9495aa9cd5a63"..., 50) = 50

Where ef686028603c291ba510c66 = junk, 150384dac99eb263c4385c7 = junk~1 ... db119fba3d9495aa9cd5a63 = junk~99 (first commit on the junk branch). 100 "have" lines upto this point, then:

write(3, "0032have d87319c3e4d908e157a462d"..., 50) = 50 write(3, "0032have 22ddf44d54d0b2326f7b233"..., 50) = 50 write(3, "0032have 90a03936acb1c3400a5833c"..., 50) = 50 write(3, "0032have bf7d8bacaaf241a0f015798"..., 50) = 50 write(3, "0032have a120571fbdfc8f543eea642"..., 50) = 50 write(3, "0032have 42a46c74c4520174b82a60a"..., 50) = 50 write(3, "0032have f66ab685594d49e570b2176"..., 50) = 50 write(3, "0032have 834f514019e01f87657a257"..., 50) = 50 write(3, "0032have 9d395d1961a0eeb9e8b1ef2"..., 50) = 50 write(3, "0032have aa48603d1ba772d0a2b28ab"..., 50) = 50 write(3, "0032have 54e5705fd460c7621a4d73c"..., 50) = 50 write(3, "0032have 37863c8a9b7b0261ec76daa"..., 50) = 50 write(3, "0032have a7603f9099869f9aeebd6c7"..., 50) = 50 write(3, "0032have 623c30d2ae22cd4b8703c77"..., 50) = 50 write(3, "0032have e2c78fb27dd13ab8c778a96"..., 50) = 50 write(3, "0032have dbb676d1214c181e6cde4ce"..., 50) = 50 write(3, "0032have 1ffe5e06461f72b9b6a2569"..., 50) = 50

These are the commits for which this test tree has the tags left:

$ ls .git/refs/tags/ v2.6.16.1 v2.6.16.12 v2.6.16.15 v2.6.16.2 v2.6.16.5 v2.6.16.8 v2.6.16.10 v2.6.16.13 v2.6.16.16 v2.6.16.3 v2.6.16.6 v2.6.16.9 v2.6.16.11 v2.6.16.14 v2.6.16.17 v2.6.16.4 v2.6.16.7 $

And finally:
write(3, "0032have 1da177e4c3f41524e886b7f"..., 50) = 50
which is your Linux-2.6.12-rc2 import.
  Ralf
Previous: Junio C HamanoNext: Junio C Hamano
Message 11 of 23 in “Slow fetches of tags”
  1. Ralf BaechleMay 24, 2006
  2. Linus TorvaldsMay 24, 2006
  3. Linus TorvaldsMay 24, 2006
  4. Junio C HamanoMay 24, 2006
  5. Linus TorvaldsMay 24, 2006
  6. Linus TorvaldsMay 24, 2006
  7. Junio C HamanoMay 25, 2006
  8. Junio C HamanoMay 25, 2006
  9. Ralf BaechleMay 26, 2006
  10. upload-pack: stop "ack continue" when we know common commits for wanted refsJunio C Hamano, May 27, 2006
  11. Ralf BaechleMay 25, 2006
  12. Junio C HamanoJul 26, 2006
  13. Johannes SchindelinJul 28, 2006
  14. Teach the git wrapper about --name-rev and --name-rev-by-tagsJohannes Schindelin, Jul 28, 2006
  15. Junio C HamanoJul 28, 2006
  16. Linus TorvaldsJul 28, 2006
  17. Johannes SchindelinJul 28, 2006
  18. Nguyễn Thái Ngọc DuyJul 29, 2006
  19. Johannes SchindelinJul 29, 2006
  20. Junio C HamanoMay 24, 2006
  21. Ralf BaechleMay 24, 2006
  22. Junio C HamanoMay 24, 2006
  23. Ralf BaechleMay 25, 2006

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.