Re: [PATCH v2 2/5] log: honor log.merges= option

2015-04-12 Thread Junio C Hamano
Koosha Khajehmoogahi  writes:

> On 04/08/2015 04:28 AM, Junio C Hamano wrote:
>
>> It is strange that you have to ask me to give you the reason why you
>> chose it that way, isn't it?
>
> AFAIK, the only other command that supports --merges and --no-merges options 
> is
> rev-list. This new feature aims to make a default behavior for the commands
> that have these options. The command-line option is supported by the two 
> commands.
> However, the config var is only used by git-log and rev-list ignores it. I 
> didn't
> exclude rev-list for any particular reason. If we need, I could also handle 
> it in
> rev-list.

As rev-list is plumbing, it shouldn't be affected by the UI level
customization knobs like this one; otherwise you will break people's
scripts when end users choose to use the new knobs.

Historically, "whatchanged" has been the way to ask for "log", with
different default output format (but not different commit selection
logic).  I would think people who are used to "whatchanged" would
expect that the command would pay attention to what "log" would.

As I already mentioned with the reason why, I do not think "show"
and "format-patch" should pay attention to it.

There may be other commands from the "log" family (i.e. what is
defined in builtin/log.c and/or uses get_revision() API to walk the
commit graph), for which similar reasoning should be done to decide
if each of them should or should not pay attention to it.

Thanks.





--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/5] log: honor log.merges= option

2015-04-08 Thread Koosha Khajehmoogahi


On 04/08/2015 04:28 AM, Junio C Hamano wrote:
> Koosha Khajehmoogahi  writes:
> 
>> On 04/04/2015 10:00 PM, Junio C Hamano wrote:
>>> Koosha Khajehmoogahi  writes:
>>>
 From: Junio C Hamano 

 [kk: wrote commit message]
>>>
>>> Ehh, what exactly did you write ;-)?
>>>
>>> I think the most important thing that needs to be explained by the
>>> log message for this change is that the variable is honored only by
>>> log and it needs to explain why other Porcelain commands in the same
>>> "log" family, like "whatchanged", should ignore the variable.
>>>
>> So, what would be the reason? 
> 
> It is strange that you have to ask me to give you the reason why you
> chose it that way, isn't it?

AFAIK, the only other command that supports --merges and --no-merges options is
rev-list. This new feature aims to make a default behavior for the commands
that have these options. The command-line option is supported by the two 
commands.
However, the config var is only used by git-log and rev-list ignores it. I 
didn't
exclude rev-list for any particular reason. If we need, I could also handle it 
in
rev-list.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/5] log: honor log.merges= option

2015-04-07 Thread Junio C Hamano
Koosha Khajehmoogahi  writes:

> On 04/04/2015 10:00 PM, Junio C Hamano wrote:
>> Koosha Khajehmoogahi  writes:
>> 
>>> From: Junio C Hamano 
>>>
>>> [kk: wrote commit message]
>> 
>> Ehh, what exactly did you write ;-)?
>> 
>> I think the most important thing that needs to be explained by the
>> log message for this change is that the variable is honored only by
>> log and it needs to explain why other Porcelain commands in the same
>> "log" family, like "whatchanged", should ignore the variable.
>>
> So, what would be the reason? 

It is strange that you have to ask me to give you the reason why you
chose it that way, isn't it?

>> I think that we must not to allow format-patch and show to be
>> affected by this variable, because it is silly if log.merges=only
>> broke format-patch output or made "git show" silent.  But I didn't
>> think about others.  Whoever is doing this change needs to explain
>> in the log message the reason why it was decided that only "git log"
>> should pay attention to it.
>> 
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/5] log: honor log.merges= option

2015-04-07 Thread Koosha Khajehmoogahi


On 04/04/2015 10:00 PM, Junio C Hamano wrote:
> Koosha Khajehmoogahi  writes:
> 
>> From: Junio C Hamano 
>>
>> [kk: wrote commit message]
> 
> Ehh, what exactly did you write ;-)?
> 
> I think the most important thing that needs to be explained by the
> log message for this change is that the variable is honored only by
> log and it needs to explain why other Porcelain commands in the same
> "log" family, like "whatchanged", should ignore the variable.
>
So, what would be the reason? 
 
> I think that we must not to allow format-patch and show to be
> affected by this variable, because it is silly if log.merges=only
> broke format-patch output or made "git show" silent.  But I didn't
> think about others.  Whoever is doing this change needs to explain
> in the log message the reason why it was decided that only "git log"
> should pay attention to it.
> 




signature.asc
Description: OpenPGP digital signature


Re: [PATCH v2 2/5] log: honor log.merges= option

2015-04-06 Thread Eric Sunshine
On Fri, Apr 3, 2015 at 9:21 PM, Koosha Khajehmoogahi  wrote:
> From: Junio C Hamano 
>
> [kk: wrote commit message]
>
> Helped-by: Eris Sunshine 

s/Eris/Eric/

> Signed-off-by: Koosha Khajehmoogahi 
> ---
>  builtin/log.c | 6 ++
>  1 file changed, 6 insertions(+)
>
> diff --git a/builtin/log.c b/builtin/log.c
> index dd8f3fc..c7a7aad 100644
> --- a/builtin/log.c
> +++ b/builtin/log.c
> @@ -36,6 +36,7 @@ static int decoration_given;
>  static int use_mailmap_config;
>  static const char *fmt_patch_subject_prefix = "PATCH";
>  static const char *fmt_pretty;
> +static const char *log_merges;
>
>  static const char * const builtin_log_usage[] = {
> N_("git log [] [] [[--] ...]"),
> @@ -386,6 +387,9 @@ static int git_log_config(const char *var, const char 
> *value, void *cb)
> decoration_style = 0; /* maybe warn? */
> return 0;
> }
> +   if (!strcmp(var, "log.merges")) {
> +   return git_config_string(&log_merges, var, value);
> +   }
> if (!strcmp(var, "log.showroot")) {
> default_show_root = git_config_bool(var, value);
> return 0;
> @@ -628,6 +632,8 @@ int cmd_log(int argc, const char **argv, const char 
> *prefix)
>
> init_revisions(&rev, prefix);
> rev.always_show_header = 1;
> +   if (log_merges && parse_merges_opt(&rev, log_merges))
> +   die("unknown config value for log.merges: %s", log_merges);
> memset(&opt, 0, sizeof(opt));
> opt.def = "HEAD";
> opt.revarg_opt = REVARG_COMMITTISH;
> --
> 2.3.3.263.g095251d.dirty
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v2 2/5] log: honor log.merges= option

2015-04-04 Thread Junio C Hamano
Koosha Khajehmoogahi  writes:

> From: Junio C Hamano 
>
> [kk: wrote commit message]

Ehh, what exactly did you write ;-)?

I think the most important thing that needs to be explained by the
log message for this change is that the variable is honored only by
log and it needs to explain why other Porcelain commands in the same
"log" family, like "whatchanged", should ignore the variable.

I think that we must not to allow format-patch and show to be
affected by this variable, because it is silly if log.merges=only
broke format-patch output or made "git show" silent.  But I didn't
think about others.  Whoever is doing this change needs to explain
in the log message the reason why it was decided that only "git log"
should pay attention to it.

> Helped-by: Eris Sunshine 
> Signed-off-by: Koosha Khajehmoogahi 
> ---


>  builtin/log.c | 6 ++
>  1 file changed, 6 insertions(+)
>
> diff --git a/builtin/log.c b/builtin/log.c
> index dd8f3fc..c7a7aad 100644
> --- a/builtin/log.c
> +++ b/builtin/log.c
> @@ -36,6 +36,7 @@ static int decoration_given;
>  static int use_mailmap_config;
>  static const char *fmt_patch_subject_prefix = "PATCH";
>  static const char *fmt_pretty;
> +static const char *log_merges;

The variable name may want to be updated to mimic other variables
used in a similar way, e.g. default_show_root is used to store the
value from log.showroot.

Perhaps "default_show_merge" or something?

Thanks.

>  static const char * const builtin_log_usage[] = {
>   N_("git log [] [] [[--] ...]"),
> @@ -386,6 +387,9 @@ static int git_log_config(const char *var, const char 
> *value, void *cb)
>   decoration_style = 0; /* maybe warn? */
>   return 0;
>   }
> + if (!strcmp(var, "log.merges")) {
> + return git_config_string(&log_merges, var, value);
> + }
>   if (!strcmp(var, "log.showroot")) {
>   default_show_root = git_config_bool(var, value);
>   return 0;
> @@ -628,6 +632,8 @@ int cmd_log(int argc, const char **argv, const char 
> *prefix)
>  
>   init_revisions(&rev, prefix);
>   rev.always_show_header = 1;
> + if (log_merges && parse_merges_opt(&rev, log_merges))
> + die("unknown config value for log.merges: %s", log_merges);
>   memset(&opt, 0, sizeof(opt));
>   opt.def = "HEAD";
>   opt.revarg_opt = REVARG_COMMITTISH;
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2 2/5] log: honor log.merges= option

2015-04-03 Thread Koosha Khajehmoogahi
From: Junio C Hamano 

[kk: wrote commit message]

Helped-by: Eris Sunshine 
Signed-off-by: Koosha Khajehmoogahi 
---
 builtin/log.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/builtin/log.c b/builtin/log.c
index dd8f3fc..c7a7aad 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -36,6 +36,7 @@ static int decoration_given;
 static int use_mailmap_config;
 static const char *fmt_patch_subject_prefix = "PATCH";
 static const char *fmt_pretty;
+static const char *log_merges;
 
 static const char * const builtin_log_usage[] = {
N_("git log [] [] [[--] ...]"),
@@ -386,6 +387,9 @@ static int git_log_config(const char *var, const char 
*value, void *cb)
decoration_style = 0; /* maybe warn? */
return 0;
}
+   if (!strcmp(var, "log.merges")) {
+   return git_config_string(&log_merges, var, value);
+   }
if (!strcmp(var, "log.showroot")) {
default_show_root = git_config_bool(var, value);
return 0;
@@ -628,6 +632,8 @@ int cmd_log(int argc, const char **argv, const char *prefix)
 
init_revisions(&rev, prefix);
rev.always_show_header = 1;
+   if (log_merges && parse_merges_opt(&rev, log_merges))
+   die("unknown config value for log.merges: %s", log_merges);
memset(&opt, 0, sizeof(opt));
opt.def = "HEAD";
opt.revarg_opt = REVARG_COMMITTISH;
-- 
2.3.3.263.g095251d.dirty

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html