* Summary of core GIT while you are away. @ 2005-05-14 10:51 Junio C Hamano 2005-05-16 16:10 ` Linus Torvalds 0 siblings, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-14 10:51 UTC (permalink / raw) To: torvalds; +Cc: pasky, braddr, nico, david, git Hoping that you had a good time during your vacation, and at the same time also hoping to help you catch up with GIT traffic, here is my version of the summary of things that happened in the GIT community around core GIT [*1*]. - Just when I was forced to discontinue git-jc tree because my ISP webspace was running out, Petr Baudis started git-pb tree hosted at kernel.org next to his cogito repository, promising to pick up and keep good bits from the mailing list traffic. He's been doing quite a good job at it and if you pull from his tree, you will not miss anything worth keeping. I can personally vouch for the crap-free-ness of his tree up to commit 95649d6cf9ec68f05d1dc57ec1b989b8d263a7ae (not that I suspect Petr will put crap in the tree after that, but that is the head as of this writing). They consist of half bugfixes and half enhancements; all of them help Porcelain layers and end users. Old git-jc tree has all been sucked into git-pb before being shut down, so we did not lose anything from there either. - A notable change you need to adjust your scripts and .profile to is that GIT environment variable names have changed. All of them now have GIT_ as prefix. Old names continue to work for now, though. - Nicolas Pitre's deltification patch is still cooking and in its latest incarnation it looked quite promising to me (the impact to the core is kept reasonably small and cleanly isolated). Once fsck is made aware of it in the next round, I expect it to be ready to merge. - Brad Roberts has been working on libification to remove the assumption of having a single active_cache array. I have minor qualms about it (I think it should also be tied with the index.lock handling for updates), but other than that, it looked admirably cleanly done. I expect it to be in a mergeable state in the next round if/when he catches up with the tip of git-pb tree. - David Greaves has done all the heavy lifting for core GIT documentation. It now is hosted at kernel.org with a nice web interface. - I have sent out about a dozen patches Petr has not caught up, mostly because we work in different timezones. Other than that I have not seen anything immediately mergeable to the core GIT in the mailing list traffic. - Also you see names of many people in the git-pb log who contributed bugfixes and enhancements. I am not belittling their contributions, but just not going to repeat what you can get from the log yourself. That's about it. Now please start pulling from rsync://rsync.kernel.org/pub/scm/cogito/git-pb.git/ [Footnote] *1* Porcelain layer seems to have had many more interesting discussions, but I am not qualified to comment on them (I was not following most of them). ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-14 10:51 Summary of core GIT while you are away Junio C Hamano @ 2005-05-16 16:10 ` Linus Torvalds 2005-05-16 21:33 ` rev-list/tree committer/author information Junio C Hamano ` (2 more replies) 0 siblings, 3 replies; 28+ messages in thread From: Linus Torvalds @ 2005-05-16 16:10 UTC (permalink / raw) To: Junio C Hamano; +Cc: pasky, braddr, nico, david, Git Mailing List On Sat, 14 May 2005, Junio C Hamano wrote: > > Hoping that you had a good time during your vacation, and at the > same time also hoping to help you catch up with GIT traffic, > here is my version of the summary of things that happened in the > GIT community around core GIT [*1*]. Thanks. I'm back and reading email, but have by no means caught up yet. Anyway, everythign I've read so far makes sense, and it might make sense to continue git development using just git-pb. The only thing I personally think sucks is the author/committer matching of git-rev-list/tree, since it would seem like somebody might well like to match on an arbitrary part of a commit, and special-casing author/committer seems somewhat broken. But that's a fairly minor nit. I personally suspect that both git-rev-list and git-rev-tree should have an alternate output format that could be more easily grepped by subsequent commands. For example, right now git-rev-list just outputs a list of commit ID's, and it might make sense to have a flag to just append the commit message to the output, and zero-terminate it (and if the commit message has a NUL byte in it, just truncate it at that point). Then you could just do git-rev-list -v --header HEAD | grep -z 'author[^\n]*Linus' to tell it to do the "verbose" thing (only showing the header of the commit, not the whole message), and grep for "Linus" in the author line. Or, if you want to see all commits that are signed off by so-and-so, do: git-rev-list -v HEAD | grep -zi 'signed-off-by:[^\n]*so-and-so' and it would still be pretty efficient, and a _lot_ more generic and flexible than the "--author" and "--committer" flags. I also suspect that a lot of uses if git-rev-{tree|list} actually want to see the commit stuff anyway, ie things like gitweb etc currently likely end up doing a separate "git-cat-file commit <sha1>" to get the whole commit information, which the "-v" flag would just give directly. The only question is whether you want to have it be human-readable by default (indent the message lines with a <tab>, and nonheaders with <tab>+4*<space> or something), and then have a "-z" flag to do the machine-readable version described above. Hmm? Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* rev-list/tree committer/author information. 2005-05-16 16:10 ` Linus Torvalds @ 2005-05-16 21:33 ` Junio C Hamano 2005-05-16 22:19 ` Petr Baudis 2005-05-16 22:35 ` Daniel Barkalow 2005-05-16 22:22 ` Summary of core GIT while you are away Petr Baudis 2005-05-26 0:44 ` Kay Sievers 2 siblings, 2 replies; 28+ messages in thread From: Junio C Hamano @ 2005-05-16 21:33 UTC (permalink / raw) To: Linus Torvalds; +Cc: pasky, Daniel Barkalow, Git Mailing List >>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes: LT> Anyway, everything I've read so far makes sense, and it LT> might make sense to continue git development using just LT> git-pb. The only thing I personally think sucks is the LT> author/committer matching of git-rev-list/tree, since it LT> would seem like somebody might well like to match on an LT> arbitrary part of a commit, and special-casing LT> author/committer seems somewhat broken. Well, that author/committer thing is not in git-pb yet, if I am not mistaken [*1]. The only reason why I did it that way was because the strategy taken by "struct object" derivatives seemed to pick up bare absolute minimum to support actual callers that have immediate need for information stored in structural fields, as opposed to designing for helping yet to be written callers by adding fields to hold information of "having this might also help somebody in the future" type. And the author and committer names are in the structured fields while signed-off-by and others are not. Also when author / committer name strings are intern'ed like the way I did, the memory consumption even for a long sequence of commits are kept reasonably low. However,... LT> I personally suspect that both git-rev-list and git-rev-tree LT> should have an alternate output format that could be more LT> easily grepped by subsequent commands. For example, right LT> now git-rev-list just outputs a list of commit ID's, and it LT> might make sense to have a flag to just append the commit LT> message to the output, and zero-terminate it (and if the LT> commit message has a NUL byte in it, just truncate it at LT> that point). I think what you said here makes more sense [*2*]. The above implies to keep the unpacked raw data as a whole to be accessible to the callers for at least commit objects and if we go that route I think it would make more sense to do that uniformly for everything (probably except for pure "blob" objects for size concerns but we might as well do them while we are at it). On the other hand, the current lifetime rules being what it is, that strategy may introduce memory consumption problems when working on a huge project. [Footnote] *1* Petr has been applying quite good judgements. I would have polluted git-jc with that patch already if I were still running it. So far, I have been generally happy with his acceptance criteria for external patches. Anything he places on hold or just outright returns to me, I later find rooms for improvements myself, and the later rounds that eventually get accepted always turn out to be far cleaner, thanks to his comments. *2* At least in principle. I am not quite sure what the output should look like for rev-tree. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rev-list/tree committer/author information. 2005-05-16 21:33 ` rev-list/tree committer/author information Junio C Hamano @ 2005-05-16 22:19 ` Petr Baudis 2005-05-16 22:35 ` Daniel Barkalow 1 sibling, 0 replies; 28+ messages in thread From: Petr Baudis @ 2005-05-16 22:19 UTC (permalink / raw) To: Junio C Hamano; +Cc: Linus Torvalds, Daniel Barkalow, Git Mailing List Dear diary, on Mon, May 16, 2005 at 11:33:11PM CEST, I got a letter where Junio C Hamano <junkio@cox.net> told me that... > >>>>> "LT" == Linus Torvalds <torvalds@osdl.org> writes: > > LT> Anyway, everything I've read so far makes sense, and it > LT> might make sense to continue git development using just > LT> git-pb. The only thing I personally think sucks is the > LT> author/committer matching of git-rev-list/tree, since it > LT> would seem like somebody might well like to match on an > LT> arbitrary part of a commit, and special-casing > LT> author/committer seems somewhat broken. > > Well, that author/committer thing is not in git-pb yet, if I am > not mistaken [*1]. > > The only reason why I did it that way was because the strategy > taken by "struct object" derivatives seemed to pick up bare > absolute minimum to support actual callers that have immediate > need for information stored in structural fields, as opposed to > designing for helping yet to be written callers by adding fields > to hold information of "having this might also help somebody in > the future" type. And the author and committer names are in the > structured fields while signed-off-by and others are not. Also > when author / committer name strings are intern'ed like the way > I did, the memory consumption even for a long sequence of > commits are kept reasonably low. However,... I like Linus' suggestion. At the very least, what about making the matching generic for the header? Something like --match-header or whatever. > *1* Petr has been applying quite good judgements. I would have > polluted git-jc with that patch already if I were still running > it. So far, I have been generally happy with his acceptance > criteria for external patches. Anything he places on hold or > just outright returns to me, I later find rooms for improvements > myself, and the later rounds that eventually get accepted always > turn out to be far cleaner, thanks to his comments. Thanks for the praise :-), but I'm actually quite unhappy with putting patches "on hold" and it's not intentional. It's just that I don't feel right about the patch enough to apply it immediately, and I either don't have time to voice my concerns if they are non-trivial, or I just want some time to think about it. -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rev-list/tree committer/author information. 2005-05-16 21:33 ` rev-list/tree committer/author information Junio C Hamano 2005-05-16 22:19 ` Petr Baudis @ 2005-05-16 22:35 ` Daniel Barkalow 2005-05-16 23:17 ` Junio C Hamano 1 sibling, 1 reply; 28+ messages in thread From: Daniel Barkalow @ 2005-05-16 22:35 UTC (permalink / raw) To: Junio C Hamano; +Cc: Linus Torvalds, pasky, Git Mailing List On Mon, 16 May 2005, Junio C Hamano wrote: > The only reason why I did it that way was because the strategy > taken by "struct object" derivatives seemed to pick up bare > absolute minimum to support actual callers that have immediate > need for information stored in structural fields, as opposed to > designing for helping yet to be written callers by adding fields > to hold information of "having this might also help somebody in > the future" type. And the author and committer names are in the > structured fields while signed-off-by and others are not. Also > when author / committer name strings are intern'ed like the way > I did, the memory consumption even for a long sequence of > commits are kept reasonably low. However,... I think if we had a good reason to make author and committer structured, there must be some reason we'll want them parsed out eventually, although we may not have reached the point at which it makes sense to do it. > The above implies to keep the unpacked raw data as a whole to be > accessible to the callers for at least commit objects and if we > go that route I think it would make more sense to do that > uniformly for everything (probably except for pure "blob" > objects for size concerns but we might as well do them while we > are at it). On the other hand, the current lifetime rules being > what it is, that strategy may introduce memory consumption > problems when working on a huge project. Perhaps have a struct object field for the unpacked data, have it filled by a unpack_object(struct object *) function, have the parse functions use it if it's filled, and have a function to free it (and NULL the field). So, if you want the actual contents, you'd call unpack_object(&commit->obj) before parse_commit(commit), and close_object(&commit_obj) when you're done, and the parse wouldn't duplicate the work. The lifetime rules only really care that the return value from lookup_*() stays the same for the duration of the program, not that the fields in it don't get cleared (aside from the flags and the hash). This could be useful even for blobs; I'm working on a program to do diff/merge on commits and everything under them (taking advantage of all available information if the fast path leads to a conflict); it would be nice not to have to go through the filesystem with the blob data. -Daniel *This .sig left intentionally blank* ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: rev-list/tree committer/author information. 2005-05-16 22:35 ` Daniel Barkalow @ 2005-05-16 23:17 ` Junio C Hamano 0 siblings, 0 replies; 28+ messages in thread From: Junio C Hamano @ 2005-05-16 23:17 UTC (permalink / raw) To: Daniel Barkalow; +Cc: Linus Torvalds, pasky, Git Mailing List >>>>> "DB" == Daniel Barkalow <barkalow@iabervon.org> writes: DB> Perhaps have a struct object field for the unpacked data,... DB> ..., and the parse wouldn't duplicate the work. Absolutely. That is what I wanted to see ever since I started looking at "struct object" derivatives. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-16 16:10 ` Linus Torvalds 2005-05-16 21:33 ` rev-list/tree committer/author information Junio C Hamano @ 2005-05-16 22:22 ` Petr Baudis 2005-05-26 0:44 ` Kay Sievers 2 siblings, 0 replies; 28+ messages in thread From: Petr Baudis @ 2005-05-16 22:22 UTC (permalink / raw) To: Linus Torvalds; +Cc: Junio C Hamano, braddr, nico, david, Git Mailing List Dear diary, on Mon, May 16, 2005 at 06:10:10PM CEST, I got a letter where Linus Torvalds <torvalds@osdl.org> told me that... > The only question is whether you want to have it be human-readable by > default (indent the message lines with a <tab>, and nonheaders with > <tab>+4*<space> or something), and then have a "-z" flag to do the > machine-readable version described above. I'd prefer that, in order to be consistent with the diff tools and such. -- Petr "Pasky" Baudis Stuff: http://pasky.or.cz/ C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-16 16:10 ` Linus Torvalds 2005-05-16 21:33 ` rev-list/tree committer/author information Junio C Hamano 2005-05-16 22:22 ` Summary of core GIT while you are away Petr Baudis @ 2005-05-26 0:44 ` Kay Sievers 2005-05-26 1:13 ` Junio C Hamano 2005-05-26 1:45 ` Linus Torvalds 2 siblings, 2 replies; 28+ messages in thread From: Kay Sievers @ 2005-05-26 0:44 UTC (permalink / raw) To: Linus Torvalds Cc: Junio C Hamano, pasky, braddr, nico, david, Git Mailing List On Mon, May 16, 2005 at 09:10:10AM -0700, Linus Torvalds wrote: > > The only thing I personally > think sucks is the author/committer matching of git-rev-list/tree, since > it would seem like somebody might well like to match on an arbitrary part > of a commit, and special-casing author/committer seems somewhat broken. > I personally suspect that both git-rev-list and git-rev-tree should have > an alternate output format that could be more easily grepped by subsequent > commands. For example, right now git-rev-list just outputs a list of > commit ID's, and it might make sense to have a flag to just append the > commit message to the output, and zero-terminate it (and if the commit > message has a NUL byte in it, just truncate it at that point). > > Then you could just do > > git-rev-list -v --header HEAD | grep -z 'author[^\n]*Linus' > > to tell it to do the "verbose" thing (only showing the header of the > commit, not the whole message), and grep for "Linus" in the author line. What happened to that idea? That's not already working in some other way I missed, right? The pickaxe stuff is nice and was easy to call from the cgi, but searching in commit messages would be nice too. If it's not going to happen in the git-binaries, I may do it just in the cgi itself. Kay ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 0:44 ` Kay Sievers @ 2005-05-26 1:13 ` Junio C Hamano 2005-05-26 1:53 ` Linus Torvalds 2005-05-26 1:45 ` Linus Torvalds 1 sibling, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-26 1:13 UTC (permalink / raw) To: Kay Sievers; +Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: KS> What happened to that idea? That's not already working in some other way I KS> missed, right? The pickaxe stuff is nice and was easy to call from the cgi, KS> but searching in commit messages would be nice too. KS> If it's not going to happen in the git-binaries, I may do it just in the KS> cgi itself. I haven't done anything about this yet. I was kind of waiting for the blob retention API for "struct object" derivatives to come to the conclusion. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 1:13 ` Junio C Hamano @ 2005-05-26 1:53 ` Linus Torvalds 0 siblings, 0 replies; 28+ messages in thread From: Linus Torvalds @ 2005-05-26 1:53 UTC (permalink / raw) To: Junio C Hamano; +Cc: Kay Sievers, pasky, braddr, nico, david, Git Mailing List On Wed, 25 May 2005, Junio C Hamano wrote: > > I haven't done anything about this yet. I was kind of waiting > for the blob retention API for "struct object" derivatives to > come to the conclusion. I decided on it, and it's a hacky (but reasonable) decision. "parse_commit()" always retains the buffer for the commit. It's very commit-specific, since (a) that's the main data structure that you'd actually want to retain and (b) of all the core objects (ignoring tags) commits tend to be the smallest and fewest, so this fixed policy has the least impact memory-usage-wise. If you want to free it, you can do free(commit->buffer); commit->buffer = NULL; and you should be all good (but the only user I thought migh want to is "fsck", and that one doesn't need to, since it never calls "parse_commit()" at all - it calls "parse_commit_buffer()" which does _not_ do this, since the caller already knows the buffer and can choose to do it if it wants to. Oh, thinking about that actually brings up a bug: mixing parse_commit() and parse_commit_buffer() is unsafe, since the state of the buffer is unclear. Normally that's ok, _except_ when we use just "parse_object()" (like we do in "lookup_commit_reference()"), when we really don't know. Hmm. Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 0:44 ` Kay Sievers 2005-05-26 1:13 ` Junio C Hamano @ 2005-05-26 1:45 ` Linus Torvalds 2005-05-26 20:27 ` Kay Sievers 1 sibling, 1 reply; 28+ messages in thread From: Linus Torvalds @ 2005-05-26 1:45 UTC (permalink / raw) To: Kay Sievers; +Cc: Junio C Hamano, pasky, braddr, nico, david, Git Mailing List On Thu, 26 May 2005, Kay Sievers wrote: > > On Mon, May 16, 2005 at 09:10:10AM -0700, Linus Torvalds wrote: > > > > Then you could just do > > > > git-rev-list -v --header HEAD | grep -z 'author[^\n]*Linus' > > > > to tell it to do the "verbose" thing (only showing the header of the > > commit, not the whole message), and grep for "Linus" in the author line. > > What happened to that idea? That's not already working in some other way I > missed, right? The pickaxe stuff is nice and was easy to call from the cgi, > but searching in commit messages would be nice too. > If it's not going to happen in the git-binaries, I may do it just in the > cgi itself. Ok, you twisted my arm. Checked in. git-rev-list --header HEAD | grep -z 'author[\n]*Linus' and you will get output that is a series of commits by me (strictly speaking, that's not true, since the "author" thing might be in the non-header part). The format is: <commit-id> '\n' <commit-msg> '\0' and if the full commit message is binary and contains NUL bytes in itself (only crazy people do that, but let's keep in mind that crazy people exist), we naturally truncate it at the first NUL. This makes it easy to parse, and is what makes "grep -z" work, for example. It also has a rudimentary "stop at commit x" function, but I'm not doing any reachability analysis, so it's purely based on the commit date, and is thus _not_ equivalent to "git-rev-tree START ^END". I reserve the right to try to change that behaviour, though, if I decide I (or sombody else ;) can do a nice incremental reacability thing. So you can do git-rev-list --header HEAD v2.6.12-rc5 and it will print out all the commits in date order until it hits v2.6.12-rc5 (which it won't print out). The output format is really optimized for something like "git log" or "gitweb". I suspect it's pretty much perfect for doing the "last 10" things, without having to do "git-cat-file" for each commit. Oh, and I considered adding a "--header-lines=c" which limits the header printout to 'c' lines (probably starting at where the free-form thing starts, so that "--header-lines=0" would print out just the fixed-format header of the commit messages. (This is slightly different from what I initially envisioned, which had "-v" and "--header", and I'm not sure it's better but it ended up being what I did. If you think my first idea was better, send me a (by now trivial) patch). Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 1:45 ` Linus Torvalds @ 2005-05-26 20:27 ` Kay Sievers 2005-05-26 20:51 ` Junio C Hamano ` (2 more replies) 0 siblings, 3 replies; 28+ messages in thread From: Kay Sievers @ 2005-05-26 20:27 UTC (permalink / raw) To: Linus Torvalds Cc: Junio C Hamano, pasky, braddr, nico, david, Git Mailing List On Wed, May 25, 2005 at 06:45:14PM -0700, Linus Torvalds wrote: > > > On Thu, 26 May 2005, Kay Sievers wrote: > > > > On Mon, May 16, 2005 at 09:10:10AM -0700, Linus Torvalds wrote: > > > > > > Then you could just do > > > > > > git-rev-list -v --header HEAD | grep -z 'author[^\n]*Linus' > > > > > > to tell it to do the "verbose" thing (only showing the header of the > > > commit, not the whole message), and grep for "Linus" in the author line. > > > > What happened to that idea? That's not already working in some other way I > > missed, right? The pickaxe stuff is nice and was easy to call from the cgi, > > but searching in commit messages would be nice too. > > If it's not going to happen in the git-binaries, I may do it just in the > > cgi itself. > > Ok, you twisted my arm. Checked in. > > git-rev-list --header HEAD | grep -z 'author[\n]*Linus' Nice, thanks. Here is a very first try. It searches the commit messages and uses pickaxe to search in the file content: http://ehlo.org/~kay/gitweb.cgi?p=git/git.git;a=search;s=symlink Before someone asks: kernel.org needs to wait until cogito has catched up and released a new version and it is installed on the machines. Kay ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 20:27 ` Kay Sievers @ 2005-05-26 20:51 ` Junio C Hamano 2005-05-26 23:29 ` Kay Sievers 2005-05-26 22:11 ` H. Peter Anvin 2005-05-26 22:25 ` Junio C Hamano 2 siblings, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-26 20:51 UTC (permalink / raw) To: Kay Sievers; +Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: KS> Before someone asks: kernel.org needs to wait until cogito has catched up and KS> released a new version and it is installed on the machines. Just from curiosity, does anybody runs (need to run) Cogito on kernel.org machine(s)? Or is it that gitweb depends on Cogito, not running directly on top of Plumbing? ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 20:51 ` Junio C Hamano @ 2005-05-26 23:29 ` Kay Sievers 2005-05-26 23:59 ` Junio C Hamano 0 siblings, 1 reply; 28+ messages in thread From: Kay Sievers @ 2005-05-26 23:29 UTC (permalink / raw) To: Junio C Hamano Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List On Thu, May 26, 2005 at 01:51:36PM -0700, Junio C Hamano wrote: > >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: > > KS> Before someone asks: kernel.org needs to wait until cogito has catched up and > KS> released a new version and it is installed on the machines. > > Just from curiosity, does anybody runs (need to run) Cogito on > kernel.org machine(s)? Or is it that gitweb depends on Cogito, > not running directly on top of Plumbing? The cgi doesn't need it. Cogito has the spec file and the Mekefile with support for it - that was the reason the RPM made it on the machines there. Splitting the git-core stuff completely out of Cogito and install Cogito with a dependency on the git package is the only sane option I think. Kay ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 23:29 ` Kay Sievers @ 2005-05-26 23:59 ` Junio C Hamano 2005-05-27 1:50 ` H. Peter Anvin 0 siblings, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-26 23:59 UTC (permalink / raw) To: Kay Sievers; +Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: KS> The cgi doesn't need it. Cogito has the spec file and the KS> Mekefile with support for it - that was the reason the RPM KS> made it on the machines there. Ah, just installation convenience. I see. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 23:59 ` Junio C Hamano @ 2005-05-27 1:50 ` H. Peter Anvin 2005-05-27 3:36 ` Junio C Hamano 0 siblings, 1 reply; 28+ messages in thread From: H. Peter Anvin @ 2005-05-27 1:50 UTC (permalink / raw) To: Junio C Hamano Cc: Kay Sievers, Linus Torvalds, pasky, braddr, nico, david, Git Mailing List Junio C Hamano wrote: > > KS> The cgi doesn't need it. Cogito has the spec file and the > KS> Mekefile with support for it - that was the reason the RPM > KS> made it on the machines there. > > Ah, just installation convenience. I see. > Not "just" an installation convenience. Right now cogito and git-core *conflict*. That's why cogito really needs to be broken out from git-core, so git-core can be updated independently. -hpa ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-27 1:50 ` H. Peter Anvin @ 2005-05-27 3:36 ` Junio C Hamano 2005-05-27 4:01 ` H. Peter Anvin 0 siblings, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-27 3:36 UTC (permalink / raw) To: H. Peter Anvin Cc: Kay Sievers, Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "HPA" == H Peter Anvin <hpa@zytor.com> writes: HPA> Junio C Hamano wrote: KS> The cgi doesn't need it. Cogito has the spec file and the KS> Mekefile with support for it - that was the reason the RPM KS> made it on the machines there. >> Ah, just installation convenience. I see. HPA> Not "just" an installation convenience. Right now cogito and git-core HPA> *conflict*. That's why cogito really needs to be broken out from HPA> git-core, so git-core can be updated independently. What I learned from this thread are these: (1) CGI does not need Cogito but just needs core GIT. (2) Nobody said he uses Cogito on kernel.org machines. (3) But Cogito is installed nevertheless. (4) Installation of Cogito is done via RPM "with Makefiles and spec files" and both Cogito and core GIT comes bundled in. (5) I gather that there is no core GIT only RPM (nobody said this explicitly in this thread, though, so I may be mistaken about this point). And that was where my comment about "just an installation convenience" came from. If somebody said Cogito _is_ used on kernel.org machines, then I would not have said "just" nor "convenience". That would mean there is a real need to have Cogito and having just core GIT would not be enough. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-27 3:36 ` Junio C Hamano @ 2005-05-27 4:01 ` H. Peter Anvin 2005-05-27 4:12 ` Junio C Hamano 0 siblings, 1 reply; 28+ messages in thread From: H. Peter Anvin @ 2005-05-27 4:01 UTC (permalink / raw) To: Junio C Hamano Cc: Kay Sievers, Linus Torvalds, pasky, braddr, nico, david, Git Mailing List Junio C Hamano wrote: > > HPA> Not "just" an installation convenience. Right now cogito and git-core > HPA> *conflict*. That's why cogito really needs to be broken out from > HPA> git-core, so git-core can be updated independently. > > What I learned from this thread are these: > > (1) CGI does not need Cogito but just needs core GIT. > (2) Nobody said he uses Cogito on kernel.org machines. > (3) But Cogito is installed nevertheless. > (4) Installation of Cogito is done via RPM "with Makefiles and > spec files" and both Cogito and core GIT comes bundled in. > (5) I gather that there is no core GIT only RPM (nobody said > this explicitly in this thread, though, so I may be > mistaken about this point). > > And that was where my comment about "just an installation > convenience" came from. > > If somebody said Cogito _is_ used on kernel.org machines, then I > would not have said "just" nor "convenience". That would mean > there is a real need to have Cogito and having just core GIT > would not be enough. I, for one, use Cogito on the kernel.org machines. -hpa ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-27 4:01 ` H. Peter Anvin @ 2005-05-27 4:12 ` Junio C Hamano 2005-05-27 4:13 ` H. Peter Anvin 0 siblings, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-27 4:12 UTC (permalink / raw) To: H. Peter Anvin Cc: Kay Sievers, Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "HPA" == H Peter Anvin <hpa@zytor.com> writes: HPA> I, for one, use Cogito on the kernel.org machines. I see. I see cogito.git catching up to the Linus core, so this would not be much of a problem anymore. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-27 4:12 ` Junio C Hamano @ 2005-05-27 4:13 ` H. Peter Anvin 2005-05-27 4:31 ` Junio C Hamano 2005-05-27 5:21 ` Linus Torvalds 0 siblings, 2 replies; 28+ messages in thread From: H. Peter Anvin @ 2005-05-27 4:13 UTC (permalink / raw) To: Junio C Hamano Cc: Kay Sievers, Linus Torvalds, pasky, braddr, nico, david, Git Mailing List Junio C Hamano wrote: >>>>>>"HPA" == H Peter Anvin <hpa@zytor.com> writes: > > > HPA> I, for one, use Cogito on the kernel.org machines. > > I see. I see cogito.git catching up to the Linus core, so this > would not be much of a problem anymore. > It would still be a lot nicer to have them decoupled. -hpa ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-27 4:13 ` H. Peter Anvin @ 2005-05-27 4:31 ` Junio C Hamano 2005-05-27 5:21 ` Linus Torvalds 1 sibling, 0 replies; 28+ messages in thread From: Junio C Hamano @ 2005-05-27 4:31 UTC (permalink / raw) To: H. Peter Anvin Cc: Kay Sievers, Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "HPA" == H Peter Anvin <hpa@zytor.com> writes: HPA> Junio C Hamano wrote: >>>>>>> "HPA" == H Peter Anvin <hpa@zytor.com> writes: HPA> I, for one, use Cogito on the kernel.org machines. >> I see. I see cogito.git catching up to the Linus core, so this >> would not be much of a problem anymore. HPA> It would still be a lot nicer to have them decoupled. No question about it. Let's give Petr some time. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-27 4:13 ` H. Peter Anvin 2005-05-27 4:31 ` Junio C Hamano @ 2005-05-27 5:21 ` Linus Torvalds 1 sibling, 0 replies; 28+ messages in thread From: Linus Torvalds @ 2005-05-27 5:21 UTC (permalink / raw) To: H. Peter Anvin Cc: Junio C Hamano, Kay Sievers, pasky, braddr, nico, david, Git Mailing List On Thu, 26 May 2005, H. Peter Anvin wrote: > > It would still be a lot nicer to have them decoupled. Yes, but git has been changing so much that I think it has made sense to have it together with cogito, so that you don't have version skew. Have we gotten to the point where git is calming down? Judging by the raw diff etc changes, I'd say no, but on the other hand, those are largely over, and maybe we don't have any serious real incompatibilities pending any mroe... The object data structures have been pretty stable (thank the Gods!), but command line switches and some data output formats certainly have not. The one big change I see coming is that I really want to make "git-rev-list HEAD TAIL" work right (ie do a real reachabilty thing rather than the date-based thing), at which point you'd _usually_ not need to use the full logic of git-rev-tree that can do multiple parents etc. But that change should be compatible, I hope (ie old scripts will continue to use git-rev-tree and play games with the output, because they'd not know any better). Linus ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 20:27 ` Kay Sievers 2005-05-26 20:51 ` Junio C Hamano @ 2005-05-26 22:11 ` H. Peter Anvin 2005-05-26 22:25 ` Junio C Hamano 2 siblings, 0 replies; 28+ messages in thread From: H. Peter Anvin @ 2005-05-26 22:11 UTC (permalink / raw) To: Kay Sievers Cc: Linus Torvalds, Junio C Hamano, pasky, braddr, nico, david, Git Mailing List Kay Sievers wrote: > > Nice, thanks. Here is a very first try. It searches the commit messages > and uses pickaxe to search in the file content: > http://ehlo.org/~kay/gitweb.cgi?p=git/git.git;a=search;s=symlink > > Before someone asks: kernel.org needs to wait until cogito has catched up and > released a new version and it is installed on the machines. > Petr, it seems we need a new Cogito release soon. 0.10 really has fallen behind a lot. Also, separating out Cogito from git-core would be nice. -hpa ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 20:27 ` Kay Sievers 2005-05-26 20:51 ` Junio C Hamano 2005-05-26 22:11 ` H. Peter Anvin @ 2005-05-26 22:25 ` Junio C Hamano 2005-05-26 23:59 ` Kay Sievers 2 siblings, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-26 22:25 UTC (permalink / raw) To: Kay Sievers; +Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: KS> Nice, thanks. Here is a very first try. It searches the commit messages KS> and uses pickaxe to search in the file content: KS> http://ehlo.org/~kay/gitweb.cgi?p=git/git.git;a=search;s=symlink Nice, thanks for using pickaxe ;-). One request, knowing well that what you have on ehlo is your first cut. The pickaxe really shines when you can paste a couple of lines of code in the version you are having trouble with (or just you are curious about) in order to see where they came from. For example, I did an equivalent of the following command back to figure out which patch and author to give credit to when I stole the tagged output format for git-ls-files from Cogito branch: git-rev-list pasky | git-diff-tree -v -p --stdin \ -S'static const char *tag_cached = ""; static const char *tag_unmerged = ""; static const char *tag_removed = "";' Since this is primarily about program code, forbidding '*' is rather nasty, and not being able to do multiple lines makes it quite less useful than it could be. ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 22:25 ` Junio C Hamano @ 2005-05-26 23:59 ` Kay Sievers 2005-05-27 0:16 ` Junio C Hamano 2005-05-27 0:40 ` Junio C Hamano 0 siblings, 2 replies; 28+ messages in thread From: Kay Sievers @ 2005-05-26 23:59 UTC (permalink / raw) To: Junio C Hamano Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List On Thu, May 26, 2005 at 03:25:17PM -0700, Junio C Hamano wrote: > >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: > > KS> Nice, thanks. Here is a very first try. It searches the commit messages > KS> and uses pickaxe to search in the file content: > KS> http://ehlo.org/~kay/gitweb.cgi?p=git/git.git;a=search;s=symlink > > Nice, thanks for using pickaxe ;-). One request, knowing well > that what you have on ehlo is your first cut. Yeah, I like it a lot. Nice work. Any idea, what's the reason, it doesn't find anything here in the kernel tree: git-rev-list HEAD | git-diff-tree -S'TIMEOUT' --stdin while: git-rev-list --header HEAD | grep -z TIMEOUT prints the commit: 6897089c5f7989603ccb9c696050470ba1dbd262 with the following change: git-diff-tree -p 6897089c5f7989603ccb9c696050470ba1dbd262 6f31e42221c7deae4527136ce0dd73990d8bc1d1 diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c --- a/drivers/base/firmware_class.c +++ b/drivers/base/firmware_class.c @@ -102,9 +102,6 @@ firmware_class_hotplug(struct class_devi if (add_hotplug_env_var(envp, num_envp, &i, buffer, buffer_size, &len, "FIRMWARE=%s", fw_priv->fw_id)) return -ENOMEM; - if (add_hotplug_env_var(envp, num_envp, &i, buffer, buffer_size, &len, - "TIMEOUT=%i", loading_timeout)) - return -ENOMEM; envp[i] = NULL; > The pickaxe really shines when you can paste a couple of lines > of code in the version you are having trouble with (or just you > are curious about) in order to see where they came from. For > example, I did an equivalent of the following command back to > figure out which patch and author to give credit to when I stole > the tagged output format for git-ls-files from Cogito branch: > > git-rev-list pasky | > git-diff-tree -v -p --stdin \ > -S'static const char *tag_cached = ""; > static const char *tag_unmerged = ""; > static const char *tag_removed = "";' Nice feature, maybe we can add it later (see next). > Since this is primarily about program code, forbidding '*' is > rather nasty, and not being able to do multiple lines makes it > quite less useful than it could be. I see what you mean, but allow to pass any charater through a cgi to a invoked shell as a command-line option is a nightmare without being very carful. That's why only a few character allowed now. I'm not sure how to do that without creating possibly a big hole in the webserver. :) Kay ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 23:59 ` Kay Sievers @ 2005-05-27 0:16 ` Junio C Hamano 2005-05-27 0:22 ` Kay Sievers 2005-05-27 0:40 ` Junio C Hamano 1 sibling, 1 reply; 28+ messages in thread From: Junio C Hamano @ 2005-05-27 0:16 UTC (permalink / raw) To: Kay Sievers; +Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: KS> On Thu, May 26, 2005 at 03:25:17PM -0700, Junio C Hamano wrote: >> >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: >> KS> Nice, thanks. Here is a very first try. It searches the commit messages KS> and uses pickaxe to search in the file content: KS> http://ehlo.org/~kay/gitweb.cgi?p=git/git.git;a=search;s=symlink >> >> Nice, thanks for using pickaxe ;-). One request, knowing well >> that what you have on ehlo is your first cut. KS> Yeah, I like it a lot. Nice work. KS> Any idea, what's the reason, it doesn't find anything here in the KS> kernel tree: KS> git-rev-list HEAD | git-diff-tree -S'TIMEOUT' --stdin Dies this work for you? Notice "-r". git-rev-list HEAD | git-diff-tree -r -S'TIMEOUT' --stdin ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-27 0:16 ` Junio C Hamano @ 2005-05-27 0:22 ` Kay Sievers 0 siblings, 0 replies; 28+ messages in thread From: Kay Sievers @ 2005-05-27 0:22 UTC (permalink / raw) To: Junio C Hamano Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List On Thu, May 26, 2005 at 05:16:42PM -0700, Junio C Hamano wrote: > >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: > > KS> On Thu, May 26, 2005 at 03:25:17PM -0700, Junio C Hamano wrote: > >> >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: > >> > KS> Nice, thanks. Here is a very first try. It searches the commit messages > KS> and uses pickaxe to search in the file content: > KS> http://ehlo.org/~kay/gitweb.cgi?p=git/git.git;a=search;s=symlink > >> > >> Nice, thanks for using pickaxe ;-). One request, knowing well > >> that what you have on ehlo is your first cut. > > KS> Yeah, I like it a lot. Nice work. > > KS> Any idea, what's the reason, it doesn't find anything here in the > KS> kernel tree: > KS> git-rev-list HEAD | git-diff-tree -S'TIMEOUT' --stdin > > Dies this work for you? Notice "-r". > > git-rev-list HEAD | git-diff-tree -r -S'TIMEOUT' --stdin Yes, works perfect! Sorry, I need to get used to repositories with subdirectories. :) Thanks, Kay ^ permalink raw reply [flat|nested] 28+ messages in thread
* Re: Summary of core GIT while you are away. 2005-05-26 23:59 ` Kay Sievers 2005-05-27 0:16 ` Junio C Hamano @ 2005-05-27 0:40 ` Junio C Hamano 1 sibling, 0 replies; 28+ messages in thread From: Junio C Hamano @ 2005-05-27 0:40 UTC (permalink / raw) To: Kay Sievers; +Cc: Linus Torvalds, pasky, braddr, nico, david, Git Mailing List >>>>> "KS" == Kay Sievers <kay.sievers@vrfy.org> writes: KS> I see what you mean, but allow to pass any charater through a cgi to a KS> invoked shell as a command-line option is a nightmare without being very KS> carful. You are absolutely right that you must be careful. But being careful is not that hard. I do not know what you are using to parse the data coming from the browser (presumably application/x-www-form-urlencoded or somesuch), but once you got the raw data out of it in a variable in your host language (sorry I do not know what language you are writing in, either), quoting that value safely for shell command line is very simple and easy. You can emulate what sq_expand() in diff.c does. Essentially you take advantage of single quote quoting which lets you pass anything other than single quotes as literals, and deal with single quotes by stepping out temporarily of the single quote environment every time you see a single quote, quote that single quote with a backslash, and immediately after that you go back into single quote environment again and continue. original sq_expand result name ==> name ==> 'name' a b ==> a b ==> 'a b' a'b ==> a'\''b ==> 'a'\''b' So in shell, using sed, you would do something like this: ------------ #!/bin/sh orig="foo '"'\bar b az' script="s/'/'\\\\\\''/g" ;# change (') to ('\'') sq_inside=`echo "$orig" | sed "$script"` echo "'$sq_inside'" ;# and enclose the whole thing in sq pair ------------ ^ permalink raw reply [flat|nested] 28+ messages in thread
end of thread, other threads:[~2005-05-27 5:17 UTC | newest] Thread overview: 28+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2005-05-14 10:51 Summary of core GIT while you are away Junio C Hamano 2005-05-16 16:10 ` Linus Torvalds 2005-05-16 21:33 ` rev-list/tree committer/author information Junio C Hamano 2005-05-16 22:19 ` Petr Baudis 2005-05-16 22:35 ` Daniel Barkalow 2005-05-16 23:17 ` Junio C Hamano 2005-05-16 22:22 ` Summary of core GIT while you are away Petr Baudis 2005-05-26 0:44 ` Kay Sievers 2005-05-26 1:13 ` Junio C Hamano 2005-05-26 1:53 ` Linus Torvalds 2005-05-26 1:45 ` Linus Torvalds 2005-05-26 20:27 ` Kay Sievers 2005-05-26 20:51 ` Junio C Hamano 2005-05-26 23:29 ` Kay Sievers 2005-05-26 23:59 ` Junio C Hamano 2005-05-27 1:50 ` H. Peter Anvin 2005-05-27 3:36 ` Junio C Hamano 2005-05-27 4:01 ` H. Peter Anvin 2005-05-27 4:12 ` Junio C Hamano 2005-05-27 4:13 ` H. Peter Anvin 2005-05-27 4:31 ` Junio C Hamano 2005-05-27 5:21 ` Linus Torvalds 2005-05-26 22:11 ` H. Peter Anvin 2005-05-26 22:25 ` Junio C Hamano 2005-05-26 23:59 ` Kay Sievers 2005-05-27 0:16 ` Junio C Hamano 2005-05-27 0:22 ` Kay Sievers 2005-05-27 0:40 ` Junio C Hamano
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).