A quick one that is to the point to solve "your" problem. show-ref -d
I was out for dinner, just come back home. Some quick tests with show-ref -d instead of peek-remote: - git tree 2374ms - linux tree 2225ms Not a big change. I reboot before each test to have a guaranteed cold cache. Tested also with show-ref only, not useful to me, but just as a comparison. - git tree 1420ms - linux tree 1021ms Better, but still slower then what I would expected. In both case CPU load is low, processes are heavily I/O bound, so avoiding some fork does not save the day. Please, tell me if you want me to run some kind of additional test.
I wonder how fast update-server-info is under the same condition with your earlier timing. I am not suggesting you to use update-server-info. The reason I am wondering about it are: (1) traditionally, "peek-remote ." has been the only way to get to that information, so you have every right to keep doing so; (2) however, even with presense of packed-refs, upload-pack that is invoked by peek-remote needs to consult unpacked refs first and then fall back to packed-refs, and only using the ^{} information "cached" in packed-refs file and computing ^{} itself when dealing with unpacked refs means more code, which we need to assess the pros-and-cons. (3) another inefficiency of using "peek-remote ." is that it spawns another process in the "remote" repo and talks with it. So storing this information making upload-pack to reuse it when it can might make things go faster for other applications but first I wanted to know how much overhead is incurred in the extra upload-pack process, and time update-server-info needs to prepare the info in .git/info/refs would be a way to get a rough estimate for that (you subtract that from "peek-remote ." time).
It's to late to understand this part of your e-mail ;-) I will read better tomorrow. Thanks Marco - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html