Christian Couder <christian.couder@xxxxxxxxx> 于2021年5月18日周二 下午10:32写道: > > Hi ZheNing, > > On Tue, May 18, 2021 at 8:40 AM ZheNing Hu <adlternative@xxxxxxxxx> wrote: > > > > Hello,Git! > > > > ### Self introduction > > > > I'm ZheNing Hu, I am very lucky to participate in the GSoC > > git project this year. Many people in the git community already > > have given me a lot of help in the past few months. > > Junio, Christian, Peff, Eric, Denton..., it's great to get along with > > you guys! Your review and guidance have greatly benefited > > my growth. > > We are very happy with your application to the GSoC with us, and with > your work so far! > Thanks! > > But for now, > > It seems that the parsing of full-named atoms in `pretty.c` is not very elegant. > > E.g. > > > > if (skip_prefix(placeholder, "(describe", &arg)) { > > ... > > } > > > > if (skip_prefix(placeholder, "(trailers", &arg)) { > > ... > > } > > > > We should have an atom table like `valid_atom` in `ref-filter.c`, > > but this is missing in `pretty.c`. So how do we complete the > > unification of the two types of atoms now? > > Yeah, unifying pretty.c and ref-filter.c was the purpose of Hariom's > GSoC last year, and there is still work to do on this, but you might > want to focus on the format code used by git cat-file first, as that's > what your project is about. > Oh, what you said makes sense. The refactoring of `cat-file --batch` using `ref-filter` logic seems to have little to do with the task of letting `ref-filter` learn short-name atoms at the time. I will shift the focus of my work > > 2. "50cfe1f([GSOC] ref-filter: introduce enum atom_type)" has > > been merged into the `next` branch, should we focus on the > > performance optimization of `ref-filter.c`? Finally, we can build a > > `format_cat_file_item()` similar to `format_ref_array_item()`, > > which should not be difficult. And we have to make sure that the > > performance of `cat-file --batch` is not lower than before. > > I wonder if format_ref_array_item() could not just be used by > batch_object_write() like Olga did it in: > > https://github.com/git/git/pull/568/commits/f911b342ae6503dc9f6f8e3c7df316aa45d97bdf > Thanks for the tip! Olga uses `format_cat_file_item()` in batch_object_write() , which may be the correct approach. Before that, we have to make ref-filter support "%(contents:raw)" (similar to Olga's "%(raw)") and "%(rest)". > > ### The connection between Git and the file system > > > > I am currently studying operating system course, git as a > > file system on top of the file system. > > There are many differences and similarities with ordinary > > file systems. I am very curious about this knowledge, do > > not know if there are any relevant reading materials? > > You might be interested in https://ostreedev.github.io/ostree/ > > Best, > Christian. Thanks! -- ZheNing Hu