* Partial checkouts / submodules
@ 2007-11-20 15:59 Finn Arne Gangstad
2007-11-20 17:33 ` Sven Verdoolaege
2007-11-20 18:03 ` Daniel Barkalow
0 siblings, 2 replies; 13+ messages in thread
From: Finn Arne Gangstad @ 2007-11-20 15:59 UTC (permalink / raw)
To: git
My use case it this: We have some huge projects (let's call them
supermodules) that are the only products we really release. Any change
going into any of the submodules go in solely to modify the
superproject, the submodules are not released on their own.
We cannot keep the supermodule with all its submodules in one git
repository for two reasons: Size & sharing. A 6GB+ repository is too
big to handle gracefully, and there are multiple superprojects sharing
some of the submodules. Our supermodules typically contains 50-250
submodules. Usually it is sufficient to look at just a few of these
submodules at the same time.
I looked into the current git submodules to see if they support what I
think we need, but it seems like they do not really cut it (If I'm
wrong about this, please educate me).
What I want is this:
Somewhere the following modules all exist:
supermodule/
submodule1
submodule2
submodule3
...
submodule200
You pull the supermodule, and initialize random collection of
submodules, e.g. locally you have:
supermodule/
submodule13
submodule71
submodule102
Now I want this to behave as if it was a partial checkout of
"supermodule" - i.e. I want _all_ operations in any of the submodules
to act as if they happened in all the submodules (as if supermodule
was a single repository containing all the submodules directly).
If I do a change in submodule13, another change in submodule71 and yet
another change in submodule102, I want to be able to commit them all
as ONE commit (obviously it will be 4 commits, 1 in each submodule and
one in the supermodule, but anyone looking at this in the context of
this supermodule should see it as one commit).
If I pull supermodule, I get updates to supermodule, submodule13,
submodule71 and submodule102, but nothing else.
If I make a branch on submodule71, the branch is made in all submodules &
the supermodule.
With this setup it should be possible to handle supermodule as a
normal module with branches for each feature/topic/bugfix, and those
features being merged into other branches in a reasonable way. Does
something like this look doable?
- Finn Arne
^ permalink raw reply [flat|nested] 13+ messages in thread* Re: Partial checkouts / submodules 2007-11-20 15:59 Partial checkouts / submodules Finn Arne Gangstad @ 2007-11-20 17:33 ` Sven Verdoolaege 2007-11-20 18:19 ` Finn Arne Gangstad 2007-11-20 18:03 ` Daniel Barkalow 1 sibling, 1 reply; 13+ messages in thread From: Sven Verdoolaege @ 2007-11-20 17:33 UTC (permalink / raw) To: Finn Arne Gangstad; +Cc: git On Tue, Nov 20, 2007 at 04:59:22PM +0100, Finn Arne Gangstad wrote: > I looked into the current git submodules to see if they support what I > think we need, but it seems like they do not really cut it (If I'm > wrong about this, please educate me). Maybe you could explain why you think they don't cut it. > You pull the supermodule, and initialize random collection of > submodules, e.g. locally you have: > > supermodule/ > submodule13 > submodule71 > submodule102 Just "submodule init" and "submodule update" these submodules and it looks like you would get what you want... > If I make a branch on submodule71, the branch is made in all submodules & > the supermodule. ... except this one. It's not clear why you would even want this. skimo ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 17:33 ` Sven Verdoolaege @ 2007-11-20 18:19 ` Finn Arne Gangstad 2007-11-20 18:42 ` Sven Verdoolaege ` (2 more replies) 0 siblings, 3 replies; 13+ messages in thread From: Finn Arne Gangstad @ 2007-11-20 18:19 UTC (permalink / raw) To: skimo; +Cc: git On Tue, Nov 20, 2007 at 06:33:50PM +0100, Sven Verdoolaege wrote: > Just "submodule init" and "submodule update" these submodules and > it looks like you would get what you want... > > > If I make a branch on submodule71, the branch is made in all submodules & > > the supermodule. > > ... except this one. > It's not clear why you would even want this. I'll try to boil this down to the simplest case possible. If submodules can do this I'll be really happy :) Developer A makes a change in submodule1 and in submodule2 Developer B makes a change in submodule2 and in submodule3 A and B don't know about eachother. They send their modifications somewhere (push to a shared repository with a well chosen branch name, for example), or send a mail "please pull from my repo" to the patch queue manager. It is absolutely crucial that for each developer, either both their modifications go in, or none of them. Git should make picking only one of their modifications hard. Also - it would be very good if the history in the master repo would match the history in all developers' repositories (as the modifications are merged in by the patch queue manager). I.e. - you should see a "gif support" feature branch, see the commits on it, and finally the merge. - Finn Arne ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:19 ` Finn Arne Gangstad @ 2007-11-20 18:42 ` Sven Verdoolaege 2007-11-20 18:59 ` Daniel Barkalow 2007-11-21 0:04 ` Jakub Narebski 2 siblings, 0 replies; 13+ messages in thread From: Sven Verdoolaege @ 2007-11-20 18:42 UTC (permalink / raw) To: Finn Arne Gangstad; +Cc: git On Tue, Nov 20, 2007 at 07:19:33PM +0100, Finn Arne Gangstad wrote: > On Tue, Nov 20, 2007 at 06:33:50PM +0100, Sven Verdoolaege wrote: > > > Just "submodule init" and "submodule update" these submodules and > > it looks like you would get what you want... > > > > > If I make a branch on submodule71, the branch is made in all submodules & > > > the supermodule. > > > > ... except this one. > > It's not clear why you would even want this. > > I'll try to boil this down to the simplest case possible. If > submodules can do this I'll be really happy :) > > Developer A makes a change in submodule1 and in submodule2 > Developer B makes a change in submodule2 and in submodule3 I'm assuming that A and B also make a commit to the supermodule incorporating their changes to the submodules (as in your original message). > A and B don't know about eachother. They send their modifications > somewhere (push to a shared repository with a well chosen branch name, > for example), or send a mail "please pull from my repo" to the patch > queue manager. The commit A made to the superproject contains his changes to the submodule, so if someone pulls this superproject commit, she'll get the submodule changes too. (Although she may choose not to have some or all of these submodules checked out.) > Also - it would be very good if the history in the master repo would > match the history in all developers' repositories (as the > modifications are merged in by the patch queue manager). I.e. - you > should see a "gif support" feature branch, see the commits on it, and > finally the merge. You can't change the history in git. [*1] It's still not clear why you would want new branches to be created in other modules when you create a new branch in some module. skimo [*1] There are tools that allow you to create a new history based on an old history, but it will be a different history. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:19 ` Finn Arne Gangstad 2007-11-20 18:42 ` Sven Verdoolaege @ 2007-11-20 18:59 ` Daniel Barkalow 2007-11-20 19:22 ` Finn Arne Gangstad 2007-11-21 0:04 ` Jakub Narebski 2 siblings, 1 reply; 13+ messages in thread From: Daniel Barkalow @ 2007-11-20 18:59 UTC (permalink / raw) To: Finn Arne Gangstad; +Cc: skimo, git On Tue, 20 Nov 2007, Finn Arne Gangstad wrote: > On Tue, Nov 20, 2007 at 06:33:50PM +0100, Sven Verdoolaege wrote: > > > Just "submodule init" and "submodule update" these submodules and > > it looks like you would get what you want... > > > > > If I make a branch on submodule71, the branch is made in all submodules & > > > the supermodule. > > > > ... except this one. > > It's not clear why you would even want this. > > I'll try to boil this down to the simplest case possible. If > submodules can do this I'll be really happy :) > > Developer A makes a change in submodule1 and in submodule2 > Developer B makes a change in submodule2 and in submodule3 > > A and B don't know about eachother. They send their modifications > somewhere (push to a shared repository with a well chosen branch name, > for example), or send a mail "please pull from my repo" to the patch > queue manager. > > It is absolutely crucial that for each developer, either both their > modifications go in, or none of them. Git should make picking only > one of their modifications hard. This is the case; if developer A changes 2 from 2-O to 2-A, and developer B changes 2 from 2-O to 2-B, merging both supermodule commits gets a conflict, which requires a merge in submodule 2 before the supermodule merge can be committed. On the other hand, 3-B will sort of enter the history of submodule 3 without the submodule 2 merge getting done; however, there's no way for anybody to find it if it's not referenced by any supermodule commit yet and people don't look at the individual histories of submodules. One thing that might be an issue is that, if developer A of supermodule I makes a commit that changes submodule 1 and submodule 2, and developer B on supermodule II decides to merge supermodule I's submodule 1, and supermodule II also includes submodule 2, but developer B doesn't care about it, supermodule II could end up with only half of developer A's change. > Also - it would be very good if the history in the master repo would > match the history in all developers' repositories (as the > modifications are merged in by the patch queue manager). I.e. - you > should see a "gif support" feature branch, see the commits on it, and > finally the merge. This is independant of submodule support, and depends on the patch queue manager's policy. In some cases, it's desirable to simplify the history of the feature branch when it's being merged into the master repo, so that the master repo gets an idealized version of the feature branch (i.e., bugs introduced early in the development of the branch and fixed later, but never affected the master repo, are not introduced in the first place; also, the historical accident of the work on the topic being started before other features but completed after them can be smoothed over, with the resolution of merge conflicts distributed back to the sites where the second set of changes was made). If the patch queue manager does this sort of thing, the master repo's history will be different from the feature branch's history as it appeared to the developers at the time, but the feature branch also generally goes away at this point anyway, so it doesn't matter too much. -Daniel *This .sig left intentionally blank* ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:59 ` Daniel Barkalow @ 2007-11-20 19:22 ` Finn Arne Gangstad 2007-11-20 20:18 ` Daniel Barkalow 0 siblings, 1 reply; 13+ messages in thread From: Finn Arne Gangstad @ 2007-11-20 19:22 UTC (permalink / raw) To: Daniel Barkalow; +Cc: skimo, git On Tue, Nov 20, 2007 at 01:59:41PM -0500, Daniel Barkalow wrote: > On Tue, 20 Nov 2007, Finn Arne Gangstad wrote: > > > I'll try to boil this down to the simplest case possible. If > > submodules can do this I'll be really happy :) > > > > Developer A makes a change in submodule1 and in submodule2 > > Developer B makes a change in submodule2 and in submodule3 > > > > A and B don't know about eachother. They send their modifications > > somewhere (push to a shared repository with a well chosen branch name, > > for example), or send a mail "please pull from my repo" to the patch > > queue manager. > > > > It is absolutely crucial that for each developer, either both their > > modifications go in, or none of them. Git should make picking only > > one of their modifications hard. > > This is the case; if developer A changes 2 from 2-O to 2-A, and developer > B changes 2 from 2-O to 2-B, merging both supermodule commits gets a > conflict, which requires a merge in submodule 2 before the supermodule > merge can be committed. And this is partly why I wanted to branch all the involved modules: In ~99% of the cases, 2-A and 2-B modify different files, or at least wildly different parts of the same file, so the merge should be trivial/automatic. Therefore, the supermodule merge should also be a trivial/automatic merge - but it isn't, is it? - Finn Arne ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 19:22 ` Finn Arne Gangstad @ 2007-11-20 20:18 ` Daniel Barkalow 0 siblings, 0 replies; 13+ messages in thread From: Daniel Barkalow @ 2007-11-20 20:18 UTC (permalink / raw) To: Finn Arne Gangstad; +Cc: skimo, git On Tue, 20 Nov 2007, Finn Arne Gangstad wrote: > On Tue, Nov 20, 2007 at 01:59:41PM -0500, Daniel Barkalow wrote: > > On Tue, 20 Nov 2007, Finn Arne Gangstad wrote: > > > > > I'll try to boil this down to the simplest case possible. If > > > submodules can do this I'll be really happy :) > > > > > > Developer A makes a change in submodule1 and in submodule2 > > > Developer B makes a change in submodule2 and in submodule3 > > > > > > A and B don't know about eachother. They send their modifications > > > somewhere (push to a shared repository with a well chosen branch name, > > > for example), or send a mail "please pull from my repo" to the patch > > > queue manager. > > > > > > It is absolutely crucial that for each developer, either both their > > > modifications go in, or none of them. Git should make picking only > > > one of their modifications hard. > > > > This is the case; if developer A changes 2 from 2-O to 2-A, and developer > > B changes 2 from 2-O to 2-B, merging both supermodule commits gets a > > conflict, which requires a merge in submodule 2 before the supermodule > > merge can be committed. > > And this is partly why I wanted to branch all the involved modules: In > ~99% of the cases, 2-A and 2-B modify different files, or at least > wildly different parts of the same file, so the merge should be > trivial/automatic. Therefore, the supermodule merge should also be a > trivial/automatic merge - but it isn't, is it? It's an automatic merge if you've got the submodule; if you don't have the submodule, you can't tell that the merge would be trivial, because you can't even see the order of the history in the submodule, let alone which files change and how. This just means that the patch queue manager is going to have to have all of the submodules, which is probably reasonable if the patch queue manager is responsible for making sure that the combination works. -Daniel *This .sig left intentionally blank* ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:19 ` Finn Arne Gangstad 2007-11-20 18:42 ` Sven Verdoolaege 2007-11-20 18:59 ` Daniel Barkalow @ 2007-11-21 0:04 ` Jakub Narebski 2 siblings, 0 replies; 13+ messages in thread From: Jakub Narebski @ 2007-11-21 0:04 UTC (permalink / raw) To: git Finn Arne Gangstad wrote: > I'll try to boil this down to the simplest case possible. If > submodules can do this I'll be really happy :) > > Developer A makes a change in submodule1 and in submodule2 > Developer B makes a change in submodule2 and in submodule3 And committed changes to submodules and supermodule, I guess, so developer A has submodule1 in state 1a, submodule2 in state 2a. sumbodule3 in state 3, and supermodule in state [1a, 2a, 3], while developer B has submodule1 in state 1, submodule2 in state 2b, submodule3 in state 3b, and supermodule in state [1, 2b, 3b]. > A and B don't know about eachother. They send their modifications > somewhere (push to a shared repository with a well chosen branch name, > for example), or send a mail "please pull from my repo" to the patch > queue manager. > > It is absolutely crucial that for each developer, either both their > modifications go in, or none of them. Git should make picking only > one of their modifications hard. Git treats submodules as whole, so merging A and B supermodules will result in [1a, CONFLICT(2a/2b), 3b]. 2a/2b _might_ resolve cleanly to 2ab, but this requires submodule2 to be checked out. I'm not sure what git does in such case, but it is not much different from the case when both sides A and B modified the same file, but it merges on file-level cleanly; here we have subprojects and tree-level in-subproject clean merge. [...] By the way, submodules in supermodule should be thought as on 'detached HEAD'. -- Jakub Narebski Warsaw, Poland ShadeHawk on #git ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 15:59 Partial checkouts / submodules Finn Arne Gangstad 2007-11-20 17:33 ` Sven Verdoolaege @ 2007-11-20 18:03 ` Daniel Barkalow 2007-11-20 18:26 ` Steven Grimm 1 sibling, 1 reply; 13+ messages in thread From: Daniel Barkalow @ 2007-11-20 18:03 UTC (permalink / raw) To: Finn Arne Gangstad; +Cc: git On Tue, 20 Nov 2007, Finn Arne Gangstad wrote: > My use case it this: We have some huge projects (let's call them > supermodules) that are the only products we really release. Any change > going into any of the submodules go in solely to modify the > superproject, the submodules are not released on their own. > > We cannot keep the supermodule with all its submodules in one git > repository for two reasons: Size & sharing. A 6GB+ repository is too > big to handle gracefully, and there are multiple superprojects sharing > some of the submodules. Our supermodules typically contains 50-250 > submodules. Usually it is sufficient to look at just a few of these > submodules at the same time. > > I looked into the current git submodules to see if they support what I > think we need, but it seems like they do not really cut it (If I'm > wrong about this, please educate me). > > What I want is this: > > Somewhere the following modules all exist: > > supermodule/ > submodule1 > submodule2 > submodule3 > ... > submodule200 > > You pull the supermodule, and initialize random collection of > submodules, e.g. locally you have: > > supermodule/ > submodule13 > submodule71 > submodule102 > > Now I want this to behave as if it was a partial checkout of > "supermodule" - i.e. I want _all_ operations in any of the submodules > to act as if they happened in all the submodules (as if supermodule > was a single repository containing all the submodules directly). > > If I do a change in submodule13, another change in submodule71 and yet > another change in submodule102, I want to be able to commit them all > as ONE commit (obviously it will be 4 commits, 1 in each submodule and > one in the supermodule, but anyone looking at this in the context of > this supermodule should see it as one commit). This has theoretical problems: it's going to be practically impossible, in most cases, to write a commit message that describes changes in three submodules (which are sometimes used in the context of a different supermodule) as well as the supermodule. On the other hand, the supermodule commit is the one that's relevant in the context of the supermodule, and that commit's message should describe the set of changes as a whole. I think it should be possible and sufficient to have "git commit" able to recursively start a "git commit" in submodules (where you'd write a separate message suitable for exposure to other supermodules), so you'd have to write 4 messages but only type one command line. > If I pull supermodule, I get updates to supermodule, submodule13, > submodule71 and submodule102, but nothing else. This should work. Of course, if other people have made changes to parts of the supermodule that you haven't checked out, your supermodule index will reflect those changes, so that supermodule commits you make aren't reverting or removing those submodules. But you won't fetch the contents of those submodules, and won't have them checked out. (Note, however, that, if you pull from two places, each of which has changed the same submodule you don't have in a different way, you'll get a conflict you can't resolve without getting the submodule yourself or getting somebody else to merge them; git won't let you make commits which leave the submodule merge for somebody who cares) > If I make a branch on submodule71, the branch is made in all submodules & > the supermodule. I don't think this aspect has been worked out too carefully. I think the branch is made only in the supermodule, but the submodules are attached to the supermodule's index, rather than particularly using branches, and so, when the supermodule switches branches, the submodules should all follow, regardless of whether they have explicit branches. > With this setup it should be possible to handle supermodule as a > normal module with branches for each feature/topic/bugfix, and those > features being merged into other branches in a reasonable way. Does > something like this look doable? AFAIK, supermodules haven't gotten heavy enough use to work out all of the details of what should happen when the user does different things. I think it's all doable, but you may have to convince people to actually do it, and I don't think everything yet works the way you'd want. -Daniel *This .sig left intentionally blank* ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:03 ` Daniel Barkalow @ 2007-11-20 18:26 ` Steven Grimm 2007-11-20 18:36 ` Daniel Barkalow 2007-11-20 18:55 ` Sergei Organov 0 siblings, 2 replies; 13+ messages in thread From: Steven Grimm @ 2007-11-20 18:26 UTC (permalink / raw) To: Daniel Barkalow; +Cc: Finn Arne Gangstad, git On Nov 20, 2007, at 10:03 AM, Daniel Barkalow wrote: > This has theoretical problems: it's going to be practically > impossible, in > most cases, to write a commit message that describes changes in three > submodules (which are sometimes used in the context of a different > supermodule) as well as the supermodule. I got the impression from his email that there *are* no other supermodules. The submodules are submodules purely to reduce the amount of data people have to transfer around, not because they're logically distinct from the parent. Something like "Fix bug #10391 by closing the data file before launching the GUI" or something like that would be just as valid a commit comment in the submodules here as it would be in the supermodules. Sounds like what he wants is actually partial checkout, but since git doesn't (yet) support that, he's emulating it as best he can using submodules. > I think it should be possible and sufficient to have "git commit" > able to > recursively start a "git commit" in submodules (where you'd write a > separate message suitable for exposure to other supermodules), so > you'd > have to write 4 messages but only type one command line. If the message in the submodule defaulted to the one from the supermodule, and there was a way to just accept it without popping up an editor N times, this might solve his problem. -Steve ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:26 ` Steven Grimm @ 2007-11-20 18:36 ` Daniel Barkalow 2007-11-20 18:55 ` Sergei Organov 1 sibling, 0 replies; 13+ messages in thread From: Daniel Barkalow @ 2007-11-20 18:36 UTC (permalink / raw) To: Steven Grimm; +Cc: Finn Arne Gangstad, git On Tue, 20 Nov 2007, Steven Grimm wrote: > On Nov 20, 2007, at 10:03 AM, Daniel Barkalow wrote: > >This has theoretical problems: it's going to be practically impossible, in > >most cases, to write a commit message that describes changes in three > >submodules (which are sometimes used in the context of a different > >supermodule) as well as the supermodule. > > I got the impression from his email that there *are* no other supermodules. > The submodules are submodules purely to reduce the amount of data people have > to transfer around, not because they're logically distinct from the parent. He said: "there are multiple superprojects sharing some of the submodules." Getting the effect of partial checkouts was the first-listed reason, but not the only one. The submodules don't make sense except in the context of some supermodule, but there are multiple contexts they each appear in. -Daniel *This .sig left intentionally blank* ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:26 ` Steven Grimm 2007-11-20 18:36 ` Daniel Barkalow @ 2007-11-20 18:55 ` Sergei Organov 2007-11-20 19:15 ` Daniel Barkalow 1 sibling, 1 reply; 13+ messages in thread From: Sergei Organov @ 2007-11-20 18:55 UTC (permalink / raw) To: Steven Grimm; +Cc: Daniel Barkalow, Finn Arne Gangstad, git Steven Grimm <koreth@midwinter.com> writes: > On Nov 20, 2007, at 10:03 AM, Daniel Barkalow wrote: >> This has theoretical problems: it's going to be practically >> impossible, in >> most cases, to write a commit message that describes changes in three >> submodules (which are sometimes used in the context of a different >> supermodule) as well as the supermodule. > > I got the impression from his email that there *are* no other > supermodules. The submodules are submodules purely to reduce the > amount of data people have to transfer around, not because they're > logically distinct from the parent. I got the same impression, and then I wonder if the next logical thing the OP will need is, say, support for content moves between submodules. Somehow I doubt git will ever support that. -- Sergei. ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Partial checkouts / submodules 2007-11-20 18:55 ` Sergei Organov @ 2007-11-20 19:15 ` Daniel Barkalow 0 siblings, 0 replies; 13+ messages in thread From: Daniel Barkalow @ 2007-11-20 19:15 UTC (permalink / raw) To: Sergei Organov; +Cc: Steven Grimm, Finn Arne Gangstad, git On Tue, 20 Nov 2007, Sergei Organov wrote: > I got the same impression, and then I wonder if the next logical thing > the OP will need is, say, support for content moves between > submodules. Somehow I doubt git will ever support that. I don't see why not. If you tell the diff engine to look for content moves, and you tell it to descend into submodules that you have, and you have both ends of the content move, and you're looking at a supermodule commit where such a content move happened, it should show it. If any of these aren't true (and I don't think we have a "descend into available submodules" option currently), you won't see it as a content move, but you wouldn't expect to; you don't want to get a diff that says: "move from (path you don't have) to (path you have)", with the diff showing changes in the process, when you didn't have the original. -Daniel *This .sig left intentionally blank* ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2007-11-21 0:04 UTC | newest] Thread overview: 13+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2007-11-20 15:59 Partial checkouts / submodules Finn Arne Gangstad 2007-11-20 17:33 ` Sven Verdoolaege 2007-11-20 18:19 ` Finn Arne Gangstad 2007-11-20 18:42 ` Sven Verdoolaege 2007-11-20 18:59 ` Daniel Barkalow 2007-11-20 19:22 ` Finn Arne Gangstad 2007-11-20 20:18 ` Daniel Barkalow 2007-11-21 0:04 ` Jakub Narebski 2007-11-20 18:03 ` Daniel Barkalow 2007-11-20 18:26 ` Steven Grimm 2007-11-20 18:36 ` Daniel Barkalow 2007-11-20 18:55 ` Sergei Organov 2007-11-20 19:15 ` Daniel Barkalow
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox