From: "René Scharfe" <l.s.r@web.de>
To: Stefan Beller <stefanbeller@googlemail.com>
Cc: Johannes Sixt <j6t@kdbg.org>,
git@vger.kernel.org, mfick@codeaurora.org, apelisse@gmail.com,
Matthieu.Moy@grenoble-inp.fr, pclouds@gmail.com, iveqy@iveqy.com,
gitster@pobox.com, mackyle@gmail.com
Subject: Re: [RFC PATCHv4] repack: rewrite the shell script in C.
Date: Tue, 20 Aug 2013 20:57:16 +0200 [thread overview]
Message-ID: <5213BC0C.6090901@web.de> (raw)
In-Reply-To: <52138686.1070304@googlemail.com>
Am 20.08.2013 17:08, schrieb Stefan Beller:
> On 08/20/2013 03:31 PM, Johannes Sixt wrote:
>>
>> Are the long forms of options your invention?
>
> I tried to keep strong similarity with the shell script for
> ease of review. In the shellscript the options where
> put in variables having these names, so for example there was:
>
> -f) no_reuse=--no-reuse-delta ;;
> -F) no_reuse=--no-reuse-object ;;
>
> So I used these variable names as well in here. And as I assumed
> the variables are meaningful in itself.
>
> In the shell script they may be meaningful, but with the option
> parser in the C version, I overlooked the possibility for
> --no-<option> being possible as you noted below.
>
> Maybe we should inverse the logic and have the variables and options
> called reuse-delta and being enabled by default.
That's what git repack-objects does, which gets it passed to eventually.
But I think Johannes also wanted to point out that the git-repack.sh
doesn't recognize --no-reuse-delta, --all etc.. I think it's better to
introduce new long options in a separate patch. Switching the
programming language is big enough of a change already. :)
>>> + OPT_BOOL('f', "no-reuse-delta", &no_reuse_delta,
>>> + N_("pass --no-reuse-delta to git-pack-objects")),
>>> + OPT_BOOL('F', "no-reuse-object", &no_reuse_object,
>>> + N_("pass --no-reuse-object to git-pack-objects")),
>>
>> Do we want to allow --no-no-reuse-delta and --no-no-reuse-object?
>
> see above, I'd try not to.
The declaration above allows --reuse-delta, --no-reuse-delta and
--no-no-reuse-delta to be used. The latter looks funny, but I don't
think we need to forbid it. That said, dropping the no- and thus
declaring them the same way as repack-objects is a good idea.
>>
>>> + OPT_BOOL('n', NULL, &no_update_server_info,
>>> + N_("do not run git-update-server-info")),
>>
>> No long option name?
>
> This is also a negated option, so as above, maybe
> we could have --update_server_info and --no-update_server_info
> respectively. Talking about the shortform then: Is it possible to
> negate the shortform?
Words in long options are separated by dashes, so --update-server-info.
The no- prefix is provided for free by parseopt, unless the flag
PARSE_OPT_NONEG is given.
There is no automatic way to provide a short option that negates another
short option. You can build such a pair explicitly using OPTION_BIT and
OPTION_NEGBIT or with OPTION_SET_INT and different values.
>>> + if (pack_everything + pack_everything_but_loose == 0) {
>>> + argv_array_push(&cmd_args, "--unpacked");
>>> + argv_array_push(&cmd_args, "--incremental");
>>> + } else {
>>> + struct string_list fname_list = STRING_LIST_INIT_DUP;
>>> + get_pack_filenames(packdir, &fname_list);
>>> + for_each_string_list_item(item, &fname_list) {
>>> + char *fname;
>>> + fname = mkpathdup("%s/%s.keep", packdir, item->string);
>>> + if (stat(fname, &statbuffer) && S_ISREG(statbuffer.st_mode)) {
"t7700-repack.sh --valgrind" fails and flags that line...
>>
>> if (!stat(fname, &statbuffer) && ...
... but with this fix it runs fine. I suspect that explains you
sporadic test failures.
>>
>> But you are using file_exists() later. That should be good enough here
>> as well, no?
>
> will do.
next prev parent reply other threads:[~2013-08-20 18:57 UTC|newest]
Thread overview: 72+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-13 19:23 [PATCH] Rewriting git-repack in C Stefan Beller
2013-08-13 19:23 ` [PATCH] repack: rewrite the shell script " Stefan Beller
2013-08-14 7:26 ` Matthieu Moy
2013-08-14 16:26 ` Stefan Beller
2013-08-14 16:27 ` [RFC PATCH] " Stefan Beller
2013-08-14 16:49 ` Antoine Pelisse
2013-08-14 17:04 ` Stefan Beller
2013-08-14 17:19 ` Jeff King
2013-08-14 17:25 ` Martin Fick
2013-08-14 22:16 ` Stefan Beller
2013-08-14 22:28 ` Martin Fick
2013-08-14 22:53 ` Junio C Hamano
2013-08-14 23:28 ` Martin Fick
2013-08-15 17:15 ` Junio C Hamano
2013-08-16 0:12 ` [RFC PATCHv2] " Stefan Beller
2013-08-17 13:34 ` René Scharfe
2013-08-17 19:18 ` Kyle J. McKay
2013-08-18 14:34 ` Stefan Beller
2013-08-18 14:36 ` [RFC PATCHv3] " Stefan Beller
2013-08-18 15:41 ` Kyle J. McKay
2013-08-18 16:44 ` René Scharfe
2013-08-18 22:26 ` [RFC PATCHv4] " Stefan Beller
2013-08-19 23:23 ` Stefan Beller
2013-08-20 13:31 ` Johannes Sixt
2013-08-20 15:08 ` Stefan Beller
2013-08-20 18:38 ` Johannes Sixt
2013-08-20 18:57 ` René Scharfe [this message]
2013-08-20 22:36 ` Stefan Beller
2013-08-20 22:38 ` [PATCH] " Stefan Beller
2013-08-21 8:25 ` Jonathan Nieder
2013-08-21 10:37 ` Stefan Beller
2013-08-21 17:25 ` Stefan Beller
2013-08-21 17:28 ` [RFC PATCHv6 1/2] " Stefan Beller
2013-08-21 17:28 ` [RFC PATCHv6 2/2] repack: retain the return value of pack-objects Stefan Beller
2013-08-21 20:56 ` [RFC PATCHv6 1/2] repack: rewrite the shell script in C Junio C Hamano
2013-08-21 21:52 ` Matthieu Moy
2013-08-21 22:15 ` Stefan Beller
2013-08-21 22:50 ` Junio C Hamano
2013-08-21 22:57 ` Stefan Beller
2013-08-22 10:46 ` Johannes Sixt
2013-08-22 21:03 ` Jonathan Nieder
2013-08-21 8:49 ` [PATCH] " Matthieu Moy
2013-08-21 12:47 ` Stefan Beller
2013-08-21 13:05 ` Matthieu Moy
2013-08-21 12:53 ` Stefan Beller
2013-08-21 13:07 ` Matthieu Moy
2013-08-22 10:46 ` Johannes Sixt
2013-08-22 10:46 ` Johannes Sixt
2013-08-22 20:06 ` [PATCH] repack: rewrite the shell script in C (squashing proposal) Stefan Beller
2013-08-22 20:31 ` Junio C Hamano
2013-08-20 22:46 ` [RFC PATCHv4] repack: rewrite the shell script in C Jonathan Nieder
2013-08-21 9:20 ` Johannes Sixt
2013-08-20 21:24 ` Stefan Beller
2013-08-20 21:34 ` Jonathan Nieder
2013-08-20 21:40 ` Dokumenting api-paths.txt Stefan Beller
2013-08-20 21:59 ` Jonathan Nieder
2013-08-21 22:43 ` Stefan Beller
2013-08-22 17:29 ` Junio C Hamano
2013-08-14 22:51 ` [RFC PATCH] repack: rewrite the shell script in C Junio C Hamano
2013-08-14 22:59 ` Matthieu Moy
2013-08-15 7:47 ` Stefan Beller
2013-08-15 4:15 ` Duy Nguyen
2013-08-14 17:26 ` Junio C Hamano
2013-08-14 22:51 ` Matthieu Moy
2013-08-14 23:25 ` Martin Fick
2013-08-15 0:26 ` Martin Fick
2013-08-15 7:46 ` Stefan Beller
2013-08-15 15:04 ` Martin Fick
2013-08-15 4:20 ` Duy Nguyen
2013-08-14 17:04 ` Junio C Hamano
2013-08-15 7:53 ` Stefan Beller
2013-08-14 7:12 ` [PATCH] Rewriting git-repack " Matthieu Moy
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5213BC0C.6090901@web.de \
--to=l.s.r@web.de \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=apelisse@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=iveqy@iveqy.com \
--cc=j6t@kdbg.org \
--cc=mackyle@gmail.com \
--cc=mfick@codeaurora.org \
--cc=pclouds@gmail.com \
--cc=stefanbeller@googlemail.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.