* Re: Linux 2.6.15-rc2 [not found] <Pine.LNX.4.64.0511191934210.8552@g5.osdl.org> @ 2005-11-24 12:37 ` Ed Tomlinson 2005-11-24 13:07 ` Andreas Ericsson 2005-11-24 18:37 ` Linus Torvalds 0 siblings, 2 replies; 10+ messages in thread From: Ed Tomlinson @ 2005-11-24 12:37 UTC (permalink / raw) To: Linus Torvalds, Junio C Hamano, git; +Cc: Linux Kernel Mailing List On Saturday 19 November 2005 22:40, Linus Torvalds wrote: > There it is (or will soon be - the tar-ball and patches are still > uploading, and mirroring can obviously take some time after that). Something strange here. After a cg-update, I had no tag for rc2. Checking showed no problems so I used cg-clone to get another copy of the repository. Still no rc2. ed@grover:/usr/src/2.6$ cg-version cogito-0.16rc2 (73874dddeec2d0a8e5cd343eec762d98314def63) ed@grover:/usr/src/2.6$ git --version git version 0.99.9.GIT cg-clone http://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2.6 It looks to be the tag that is missing, gitk show commits after Nov 19. Both git and cg were updated just prior to the cg-update (~Nov 22 8pm EST). What is happening? TIA Ed Tomlinson ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 12:37 ` Linux 2.6.15-rc2 Ed Tomlinson @ 2005-11-24 13:07 ` Andreas Ericsson 2005-11-24 18:44 ` Linus Torvalds 2005-11-24 18:37 ` Linus Torvalds 1 sibling, 1 reply; 10+ messages in thread From: Andreas Ericsson @ 2005-11-24 13:07 UTC (permalink / raw) To: Ed Tomlinson Cc: Linus Torvalds, Junio C Hamano, git, Linux Kernel Mailing List Ed Tomlinson wrote: > Something strange here. After a cg-update, I had no tag for rc2. Checking > showed no problems so I used cg-clone to get another copy of the repository. > Still no rc2. > > ed@grover:/usr/src/2.6$ cg-version > cogito-0.16rc2 (73874dddeec2d0a8e5cd343eec762d98314def63) > ed@grover:/usr/src/2.6$ git --version > git version 0.99.9.GIT > > cg-clone http://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2.6 > This happened a while ago to someone else too. Apparently the http transport needs serverside help (git-update-server-info or some such must be run on the remote side). Unless you're restricted by firewalls and other you could try git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2.6 which works flawlessly for me although it takes quite some time to transfer all the data. Linus, HPA: Are the packs cached on kernel.org? It seems to be at least a minute before the transfers start. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 13:07 ` Andreas Ericsson @ 2005-11-24 18:44 ` Linus Torvalds 2005-11-24 19:42 ` Junio C Hamano 0 siblings, 1 reply; 10+ messages in thread From: Linus Torvalds @ 2005-11-24 18:44 UTC (permalink / raw) To: Andreas Ericsson Cc: Ed Tomlinson, Junio C Hamano, git, Linux Kernel Mailing List On Thu, 24 Nov 2005, Andreas Ericsson wrote: > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git 2.6 > > which works flawlessly for me although it takes quite some time to transfer > all the data. The initial clone is very expensive for the native git protocol: the protocol is designed to scale well for incremental updates (ie you have a _huge_ repository that has changed just a bit, and the protocol should work well for that), and that makes the initial clone quite expensive as it marshalls the whole damn repository into this nice packed format. So it's often nicer (certainly on the remote server) to use "rsync" for the initial clone, and then only after that start using the git protocol. (This is in no way really fundamental, and the server could cache the packs it generates for initial clones, but that isn't implemented yet, and probably won't be for some times). Of course, especially if you're mostly bandwidth-constrained and the server side is not under a big load, using the native git protocol may actually be faster anyway. Because it's always going to generate the nicest packing, while rsync:// will just use whatever packing that the server happens to have at that point (but I do repack every few weeks, so rsync for the initial clone should never be horribly bad - and since I just repacked, it should get that "perfect" pack too). Linus ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 18:44 ` Linus Torvalds @ 2005-11-24 19:42 ` Junio C Hamano 2005-11-24 19:57 ` Linus Torvalds 0 siblings, 1 reply; 10+ messages in thread From: Junio C Hamano @ 2005-11-24 19:42 UTC (permalink / raw) To: Linus Torvalds Cc: Andreas Ericsson, Ed Tomlinson, git, Linux Kernel Mailing List Linus Torvalds <torvalds@osdl.org> writes: > (This is in no way really fundamental, and the server could cache the > packs it generates for initial clones, but that isn't implemented yet, and > probably won't be for some times). Performance perceived by cloners is helped by $ mkdir -p .git/pack-cache $ git-rev-list --objects --all | git-pack-objects .git/pack-cache/pack on the server side. This exact example of preparing by the repository maintainer is optimizing for a wrong case, and I do not think it is worth doing in practice, but this will give you the lower bound when server side cache is implemented to do it on demand. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 19:42 ` Junio C Hamano @ 2005-11-24 19:57 ` Linus Torvalds 2005-11-24 21:02 ` Junio C Hamano 0 siblings, 1 reply; 10+ messages in thread From: Linus Torvalds @ 2005-11-24 19:57 UTC (permalink / raw) To: Junio C Hamano Cc: Andreas Ericsson, Ed Tomlinson, git, Linux Kernel Mailing List On Thu, 24 Nov 2005, Junio C Hamano wrote: > > Performance perceived by cloners is helped by > > $ mkdir -p .git/pack-cache > $ git-rev-list --objects --all | git-pack-objects .git/pack-cache/pack That really doesn't work very well. I push to that tree often several times a day, and you'd have to re-do the cache each time. So it would be much better if git-pack-objects would just always cache its output in .git/pack-cache - along with some logic to just get rid of old ones regularly. Since git-pack-objects has to generate the pack _anyway_, it might as well save it away when it does - so that if you have lots of people doing clones or pulling, you'd only need to run it once for a particular set of objects, and you'd not have to do any extra (or unnecessary) maintenance. Linus ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 19:57 ` Linus Torvalds @ 2005-11-24 21:02 ` Junio C Hamano 0 siblings, 0 replies; 10+ messages in thread From: Junio C Hamano @ 2005-11-24 21:02 UTC (permalink / raw) To: Linus Torvalds Cc: Andreas Ericsson, Ed Tomlinson, git, Linux Kernel Mailing List Linus Torvalds <torvalds@osdl.org> writes: > Since git-pack-objects has to generate the pack _anyway_, it might as well > save it away when it does - so that if you have lots of people doing > clones or pulling, you'd only need to run it once for a particular set of > objects, and you'd not have to do any extra (or unnecessary) maintenance. Caching itself is relatively easy (just implement an equivalent of tee inside pack-objects ourselves). More problematic is pruning. We could do it from cron based on atime _if_ the filesystem is not mounted noatime but without arranging a reasonably way for automated pruning this would become a disk hog and extra maintenance burden, which is why I did not implement the dynamic caching part in the initial round. Since git-daemon would be the primary user of pack-cache/, this implies a repository writable by git-daemon user on public machine (not master), which is an extra thing to note. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 12:37 ` Linux 2.6.15-rc2 Ed Tomlinson 2005-11-24 13:07 ` Andreas Ericsson @ 2005-11-24 18:37 ` Linus Torvalds 2005-11-24 19:52 ` Nick Hengeveld 1 sibling, 1 reply; 10+ messages in thread From: Linus Torvalds @ 2005-11-24 18:37 UTC (permalink / raw) To: Ed Tomlinson; +Cc: Junio C Hamano, git, Linux Kernel Mailing List On Thu, 24 Nov 2005, Ed Tomlinson wrote: > > What is happening? The http transport isn't very good for git, so git adds various special files to make it work at all. They need to be specially updated, and I hadn't done that. Using the native git protocol through git://git.kernel.org/.. gets around it, as does using rsync. I just repacked and updated it now, so how http should work too, although inefficiently (because it will get a whole new pack - just one of the disadvantages of the non-native protocols). Linus ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 18:37 ` Linus Torvalds @ 2005-11-24 19:52 ` Nick Hengeveld 2005-11-25 2:50 ` Ed Tomlinson 0 siblings, 1 reply; 10+ messages in thread From: Nick Hengeveld @ 2005-11-24 19:52 UTC (permalink / raw) To: Linus Torvalds Cc: Ed Tomlinson, Junio C Hamano, git, Linux Kernel Mailing List On Thu, Nov 24, 2005 at 10:37:15AM -0800, Linus Torvalds wrote: > I just repacked and updated it now, so how http should work too, although > inefficiently (because it will get a whole new pack - just one of the > disadvantages of the non-native protocols). There's room to improve on that particular inefficiency. The http commit walker could use Range: headers to fetch loose objects directly from inside a pack if it didn't make sense to fetch the entire pack. For this to work, pack fetches would need to be deferred until the entire tree had been walked, and the commit walker could decide whether to fetch the pack or loose objects based on the percentage of packed objects it needed to fetch. It would also need to fetch all tag/commit/tree objects using ranges to be able to fully walk the tree. -- For a successful technology, reality must take precedence over public relations, for nature cannot be fooled. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-24 19:52 ` Nick Hengeveld @ 2005-11-25 2:50 ` Ed Tomlinson 2005-11-25 8:42 ` Andreas Ericsson 0 siblings, 1 reply; 10+ messages in thread From: Ed Tomlinson @ 2005-11-25 2:50 UTC (permalink / raw) To: Nick Hengeveld Cc: Linus Torvalds, Junio C Hamano, git, Linux Kernel Mailing List On Thursday 24 November 2005 14:52, Nick Hengeveld wrote: > On Thu, Nov 24, 2005 at 10:37:15AM -0800, Linus Torvalds wrote: > > > I just repacked and updated it now, so how http should work too, although > > inefficiently (because it will get a whole new pack - just one of the > > disadvantages of the non-native protocols). > > There's room to improve on that particular inefficiency. The http > commit walker could use Range: headers to fetch loose objects directly > from inside a pack if it didn't make sense to fetch the entire pack. > For this to work, pack fetches would need to be deferred until the > entire tree had been walked, and the commit walker could decide whether > to fetch the pack or loose objects based on the percentage of packed > objects it needed to fetch. It would also need to fetch all > tag/commit/tree objects using ranges to be able to fully walk the tree. Alternately, when creating a new archive the client could ask the server what protocols are active. It could then use the best one for the clone and update the .git/origin files with the optimal one for incremental pulls. Thoughts? Ed Tomlinson ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: Linux 2.6.15-rc2 2005-11-25 2:50 ` Ed Tomlinson @ 2005-11-25 8:42 ` Andreas Ericsson 0 siblings, 0 replies; 10+ messages in thread From: Andreas Ericsson @ 2005-11-25 8:42 UTC (permalink / raw) To: Ed Tomlinson Cc: Nick Hengeveld, Linus Torvalds, Junio C Hamano, git, Linux Kernel Mailing List Ed Tomlinson wrote: > On Thursday 24 November 2005 14:52, Nick Hengeveld wrote: > >>On Thu, Nov 24, 2005 at 10:37:15AM -0800, Linus Torvalds wrote: >> >> >>>I just repacked and updated it now, so how http should work too, although >>>inefficiently (because it will get a whole new pack - just one of the >>>disadvantages of the non-native protocols). >> >>There's room to improve on that particular inefficiency. The http >>commit walker could use Range: headers to fetch loose objects directly >>from inside a pack if it didn't make sense to fetch the entire pack. >>For this to work, pack fetches would need to be deferred until the >>entire tree had been walked, and the commit walker could decide whether >>to fetch the pack or loose objects based on the percentage of packed >>objects it needed to fetch. It would also need to fetch all >>tag/commit/tree objects using ranges to be able to fully walk the tree. > > > Alternately, when creating a new archive the client could ask the server > what protocols are active. It could then use the best one for the clone and > update the .git/origin files with the optimal one for incremental pulls. > This would only work with the git protocol, and since that's the fastest protocol (theoretically that is, Pasky seems to have gotten other figures but I'm not sure I believe those) it should really only ever return itself which wouldn't make much sense. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231 ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2005-11-25 8:42 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <Pine.LNX.4.64.0511191934210.8552@g5.osdl.org>
2005-11-24 12:37 ` Linux 2.6.15-rc2 Ed Tomlinson
2005-11-24 13:07 ` Andreas Ericsson
2005-11-24 18:44 ` Linus Torvalds
2005-11-24 19:42 ` Junio C Hamano
2005-11-24 19:57 ` Linus Torvalds
2005-11-24 21:02 ` Junio C Hamano
2005-11-24 18:37 ` Linus Torvalds
2005-11-24 19:52 ` Nick Hengeveld
2005-11-25 2:50 ` Ed Tomlinson
2005-11-25 8:42 ` Andreas Ericsson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).