From: Christian Couder <christian.couder@gmail.com> To: "Оля Тележная" <olyatelezhnaya@gmail.com> Cc: Jeff King <peff@peff.net>, git <git@vger.kernel.org> Subject: Re: [PATCH v2 03/18] ref-filter: make valid_atom as function parameter Date: Fri, 19 Jan 2018 18:14:56 +0100 [thread overview] Message-ID: <CAP8UFD1dcwEA9z+oQKFV=aFoKn73mtP4qkLGovW2XTu6N=N4dA@mail.gmail.com> (raw) In-Reply-To: <CAL21BmnKd0qamJWJbrAzg_ZX1GkhCTPO_5zOiFNMBeF-xjDTiQ@mail.gmail.com> On Thu, Jan 18, 2018 at 7:20 AM, Оля Тележная <olyatelezhnaya@gmail.com> wrote: > 2018-01-18 1:39 GMT+03:00 Christian Couder <christian.couder@gmail.com>: >> On Wed, Jan 17, 2018 at 10:43 PM, Jeff King <peff@peff.net> wrote: >>> On Tue, Jan 16, 2018 at 09:55:22AM +0300, Оля Тележная wrote: >>> >>>> > IOW, the progression I'd expect in a series like this is: >>>> > >>>> > 1. Teach ref-filter.c to support everything that cat-file can do. >>>> > >>>> > 2. Convert cat-file to use ref-filter.c. >>>> >>>> I agree, I even made this and it's working fine: >>>> https://github.com/git/git/pull/450/commits/1b74f1047f07434dccb207534d1ad45a143e3f2b >> >> (Nit: it looks like the above link does not work any more, but it >> seems that you are talking about the last patch on the catfile >> branch.) >> >>>> But I decided not to add that to patch because I expand the >>>> functionality of several commands (not only cat-file and >>>> for-each-ref), and I need to support all new functionality in a proper >>>> way, make these error messages, test everything and - the hardest one >>>> - support many new commands for cat-file. As I understand, it is not >>>> possible unless we finally move to ref-filter and print results also >>>> there. Oh, and I also need to rewrite docs in that case. And I decided >>>> to apply this in another patch. But, please, say your opinion, maybe >>>> we could do that here in some way. >>> >>> Yeah, I agree that it will cause changes to other users of ref-filter, >>> and you'd need to deal with documentation and tests there. But I think >>> we're going to have to do those things eventually (since supporting >>> those extra fields everywhere is part of the point of the project). And >>> by doing them now, I think it can make the transition for cat-file a lot >>> simpler, because we never have to puzzle over this intermediate state >>> where only some of the atoms are valid for cat-file. >> >> I agree that you will have to deal with documentation and tests at one >> point and that it could be a good idea to do that now. >> >> I wonder if it is possible to add atoms one by one into ref-filter and >> to add tests and documentation at the same time, instead of merging >> cat-file atoms with ref-filter atoms in one big step. >> >> When all the cat-file atoms have been added to ref-filter's >> valid_atom, maybe you could add ref-filter's atoms to cat-file's >> valid_cat_file_atom one by one and add tests and documentation at the >> same time. >> >> And then when ref-filter's valid_atom and cat-file's >> valid_cat_file_atom are identical you can remove cat-file's >> valid_cat_file_atom and maybe after that rename "ref-filter" to >> "format". > > I think it's important to finish migrating process at first. I mean, > now we are preparing and collecting everything in ref-filter, but we > make resulting string and print still in cat-file. And I am not sure, > but maybe it will not be possible to start using new atoms in cat-file > while some part of logic still differs. Ok, you can finish the migration process then. > And another thoughts here - we were thinking about creating format.h > but decided not to move forward with it, and now we are suffering > because of it. Can I create it right now or the history of commits > would be too dirty because of it? It would also make it difficult to refactor your patch series if there is a big move or renaming in the middle. > Also, do you mean just renaming of > ref-filter? I was thinking that I need to put formatting-related logic > to another file and leave all other stuff in ref-filter. Yeah, you can do both a move and a renaming. > Anyway, your suggested steps looks good, and I am planning to > implement them later. Ok. > Let's discuss, what behavior we are waiting for > when atom seems useless for the command. Die or ignore? We could alternatively just emit a warning, but it looks like there are a lot of die() calls already in ref-filter.c, so I would suggest die(). > And, which > atoms are useless (as I understand, "rest" and "deltabase" from > cat-file are useless for all ref-filter users, so the question is > about - am I right in it, and about ref-filter atoms for cat-file). For now and I think until the migration process is finished, you could just die() in case of any atom not already supported by the command. > I have never written any tests and docs for Git, I will try to explore > by myself how to do that, but if you have any special links/materials > about it - please send them to me :) I think that looking at the existing documentation and tests is probably the best way to learn about it.
next prev parent reply other threads:[~2018-01-19 17:15 UTC|newest] Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-01-09 13:05 [PATCH 01/20] cat-file: split expand_atom into 2 functions Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 14/20] cat-file: make populate_value global Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 15/20] cat-file: start reusing populate_value Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 20/20] cat-file: make cat_file_info variable independent Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 04/20] cat-file: make valid_atoms as a function parameter Olga Telezhnaya 2018-01-09 22:16 ` Junio C Hamano 2018-01-09 13:05 ` [PATCH 10/20] cat-file: simplify expand_atom function Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 18/20] cat-file: add split_on_whitespace flag Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 13/20] cat-file: start use ref_array_item struct Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 07/20] cat-file: reuse parse_ref_filter_atom Olga Telezhnaya 2018-01-09 23:32 ` Junio C Hamano 2018-01-09 13:05 ` [PATCH 17/20] cat-file: add is_cat flag in ref-filter Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 02/20] cat-file: reuse struct ref_format Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 08/20] cat-file: remove unused code Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 16/20] cat-file: get rid of expand_atom_into_fields Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 19/20] cat-file: move skip_object_info into ref-filter Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 05/20] cat-file: move struct expand_data " Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 09/20] cat-file: get rid of goto in ref-filter Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 12/20] cat-file: rename variable " Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 11/20] cat-file: get rid of duplicate checking Olga Telezhnaya 2018-01-09 13:05 ` [PATCH 03/20] cat-file: rename variables in ref-filter Olga Telezhnaya 2018-01-09 22:04 ` Junio C Hamano 2018-01-10 7:07 ` Оля Тележная 2018-01-09 13:05 ` [PATCH 06/20] cat-file: start migrating to ref-filter Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 01/18] cat-file: split expand_atom into 2 functions Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 08/18] ref-filter: get rid of goto Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 06/18] ref-filter: reuse parse_ref_filter_atom Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 13/18] cat-file: start reusing populate_value Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 10/18] cat-file: get rid of duplicate checking Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 05/18] cat-file: start migrating to ref-filter Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 14/18] ref-filter: get rid of expand_atom_into_fields Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 09/18] cat-file: simplify expand_atom function Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 03/18] ref-filter: make valid_atom as function parameter Olga Telezhnaya 2018-01-15 21:42 ` Jeff King 2018-01-16 6:55 ` Оля Тележная 2018-01-17 21:43 ` Jeff King 2018-01-17 22:39 ` Christian Couder 2018-01-18 6:20 ` Оля Тележная 2018-01-18 11:49 ` Оля Тележная 2018-01-18 14:23 ` Christian Couder 2018-01-19 12:24 ` Оля Тележная 2018-01-19 15:48 ` Christian Couder 2018-01-19 17:14 ` Christian Couder [this message] 2018-01-19 17:22 ` Оля Тележная 2018-01-19 17:57 ` Christian Couder 2018-01-19 17:23 ` Jeff King 2018-01-19 17:31 ` Christian Couder 2018-01-19 18:47 ` Junio C Hamano 2018-01-19 20:12 ` Jeff King 2018-01-10 9:36 ` [PATCH v2 11/18] cat-file: start use ref_array_item struct Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 17/18] cat-file: move skip_object_info into ref-filter Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 07/18] cat-file: remove unused code Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 02/18] cat-file: reuse struct ref_format Olga Telezhnaya 2018-01-15 21:37 ` Jeff King 2018-01-16 9:45 ` Оля Тележная 2018-01-10 9:36 ` [PATCH v2 16/18] ref_format: add split_on_whitespace flag Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 18/18] ref-filter: make cat_file_info independent Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 15/18] ref-filter: add is_cat flag Olga Telezhnaya 2018-01-10 9:36 ` [PATCH v2 04/18] cat-file: move struct expand_data into ref-filter Olga Telezhnaya 2018-01-15 21:44 ` Jeff King 2018-01-16 7:00 ` Оля Тележная 2018-01-17 21:45 ` Jeff King 2018-01-18 5:56 ` Оля Тележная 2018-01-10 9:36 ` [PATCH v2 12/18] ref-filter: make populate_value global Olga Telezhnaya 2018-01-15 21:33 ` [PATCH v2 01/18] cat-file: split expand_atom into 2 functions Jeff King 2018-01-15 22:09 ` Jeff King 2018-01-16 7:22 ` Оля Тележная 2018-01-17 21:49 ` Jeff King 2018-01-17 23:04 ` Christian Couder 2018-01-18 6:22 ` Оля Тележная 2018-01-18 8:45 ` Christian Couder
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CAP8UFD1dcwEA9z+oQKFV=aFoKn73mtP4qkLGovW2XTu6N=N4dA@mail.gmail.com' \ --to=christian.couder@gmail.com \ --cc=git@vger.kernel.org \ --cc=olyatelezhnaya@gmail.com \ --cc=peff@peff.net \ --subject='Re: [PATCH v2 03/18] ref-filter: make valid_atom as function parameter' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git 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 read-only IMAP folder(s) and NNTP newsgroup(s).