# [PATCH v2] branch.c: change install_branch_config() to use skip_prefix()

4 messages from 2014-03-02 to 2014-03-03. Participants: Guanglin Xu, Eric Sunshine, Junio C Hamano.
Thread: https://gitlist.dev/t/36023

## Guanglin Xu, 2014-03-02 15:55

Subject: [PATCH v2] branch.c: change install_branch_config() to use skip_prefix()
Message-ID: <1393775755-15359-1-git-send-email-mzguanglin@gmail.com>
URL: https://gitlist.dev/e/1393775755-15359-1-git-send-email-mzguanglin%40gmail.com

```
Change install_branch_config() to use skip_prefix() and make it conform to the usage of previous starts_with(). This is because the proper usage of skip_prefix() overrides the functionality of starts_with(). Thorough replacements may finally remove the starts_with() function and reduce  code redundency.

Signed-off-by: Guanglin Xu <mzguanglin@gmail.com>
---
 branch.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/branch.c b/branch.c
index 723a36b..ca4e824 100644
--- a/branch.c
+++ b/branch.c
@@ -50,7 +50,7 @@ static int should_setup_rebase(const char *origin)
 void install_branch_config(int flag, const char *local, const char *origin, const char *remote)
 {
 	const char *shortname = remote + 11;
-	int remote_is_branch = starts_with(remote, "refs/heads/");
+	int remote_is_branch = (NULL != skip_prefix(remote ,"refs/heads/"));
 	struct strbuf key = STRBUF_INIT;
 	int rebasing = should_setup_rebase(origin);
 
-- 
1.9.0


Hi,
I am Guanglin Xu. I plan to apply for GSoC 2014.

This patch is in accordance with the idea#2 of GSoC2014 Microproject. Any comments are welcomed.

```

## Eric Sunshine, 2014-03-02 22:56

Subject: Re: [PATCH v2] branch.c: change install_branch_config() to use skip_prefix()
Message-ID: <CAPig+cRy2Jt_3DAS=ARzN-8HT3rdMCSGP5QfU8sJZGwqsJTG3g@mail.gmail.com>
URL: https://gitlist.dev/e/CAPig%2BcRy2Jt_3DAS%3DARzN-8HT3rdMCSGP5QfU8sJZGwqsJTG3g%40mail.gmail.com
In-Reply-To: <1393775755-15359-1-git-send-email-mzguanglin@gmail.com>

```
Thanks for the submission. Comments below to give you a taste of the
Git review process...

On Sun, Mar 2, 2014 at 10:55 AM, Guanglin Xu <mzguanglin@gmail.com> wrote:
> Change install_branch_config() to use skip_prefix() and make it conform to the usage of previous starts_with(). This is because the proper usage of skip_prefix() overrides the functionality of starts_with(). Thorough replacements may finally remove the starts_with() function and reduce  code redundency.

Justifying a change is certainly a good idea, however, the above
reasoning for this particular change is off mark. See below.

Also, wrap commit message lines to 65-70 characters or so.

> Signed-off-by: Guanglin Xu <mzguanglin@gmail.com>
> ---
>  branch.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/branch.c b/branch.c
> index 723a36b..ca4e824 100644
> --- a/branch.c
> +++ b/branch.c
> @@ -50,7 +50,7 @@ static int should_setup_rebase(const char *origin)
>  void install_branch_config(int flag, const char *local, const char *origin, const char *remote)
>  {
>         const char *shortname = remote + 11;
> -       int remote_is_branch = starts_with(remote, "refs/heads/");
> +       int remote_is_branch = (NULL != skip_prefix(remote ,"refs/heads/"));

This actually makes the code more difficult to read and understand.
There's a more fundamental reason to use skip_prefix() here. See if
you can figure it out. (Hint: shortname)

>         struct strbuf key = STRBUF_INIT;
>         int rebasing = should_setup_rebase(origin);
>
> --
> 1.9.0
>
> Hi,
> I am Guanglin Xu. I plan to apply for GSoC 2014.
>
> This patch is in accordance with the idea#2 of GSoC2014 Microproject. Any comments are welcomed.

This sort of commentary, which is appropriate to the email discussion
but not meant for permanent project history, should be placed
immediately below the "---" line following your sign-off.

```

## Guanglin Xu, 2014-03-03 01:41

Subject: Re: [PATCH v2] branch.c: change install_branch_config() to use skip_prefix()
Message-ID: <CAATe9uhK88Gy4_EJTjJ=8ULKY0ADGrBkRArwBiVncf_2exWZEQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAATe9uhK88Gy4_EJTjJ%3D8ULKY0ADGrBkRArwBiVncf_2exWZEQ%40mail.gmail.com
In-Reply-To: <CAPig+cRy2Jt_3DAS=ARzN-8HT3rdMCSGP5QfU8sJZGwqsJTG3g@mail.gmail.com>

```
2014-03-03 6:56 GMT+08:00 Eric Sunshine <sunshine@sunshineco.com>:
> Thanks for the submission. Comments below to give you a taste of the
> Git review process...
>
> On Sun, Mar 2, 2014 at 10:55 AM, Guanglin Xu <mzguanglin@gmail.com> wrote:
>> Change install_branch_config() to use skip_prefix() and make it conform to the usage of previous starts_with(). This is because the proper usage of skip_prefix() overrides the functionality of starts_with(). Thorough replacements may finally remove the starts_with() function and reduce  code redundency.
>
> Justifying a change is certainly a good idea, however, the above
> reasoning for this particular change is off mark. See below.
>
> Also, wrap commit message lines to 65-70 characters or so.
>
>> Signed-off-by: Guanglin Xu <mzguanglin@gmail.com>
>> ---
>>  branch.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/branch.c b/branch.c
>> index 723a36b..ca4e824 100644
>> --- a/branch.c
>> +++ b/branch.c
>> @@ -50,7 +50,7 @@ static int should_setup_rebase(const char *origin)
>>  void install_branch_config(int flag, const char *local, const char *origin, const char *remote)
>>  {
>>         const char *shortname = remote + 11;
>> -       int remote_is_branch = starts_with(remote, "refs/heads/");
>> +       int remote_is_branch = (NULL != skip_prefix(remote ,"refs/heads/"));
>
> This actually makes the code more difficult to read and understand.
> There's a more fundamental reason to use skip_prefix() here. See if
> you can figure it out. (Hint: shortname)

Hi Eric,

Thanks for your hint. Now I wonder this idea is just to remove the
magic code of 11.

So I would like to replace this line:
const char *shortname = remote + 11;
by this line:
const char *shortname = skip_prefix(remote, "refs/heads/");

and keep the next line unchanged.

Am I right?
>
>>         struct strbuf key = STRBUF_INIT;
>>         int rebasing = should_setup_rebase(origin);
>>
>> --
>> 1.9.0
>>
>> Hi,
>> I am Guanglin Xu. I plan to apply for GSoC 2014.
>>
>> This patch is in accordance with the idea#2 of GSoC2014 Microproject. Any comments are welcomed.
>
> This sort of commentary, which is appropriate to the email discussion
> but not meant for permanent project history, should be placed
> immediately below the "---" line following your sign-off.

Apologize for bad format. I am going to fix it by PATCH v3.

Guanglin

```

## Junio C Hamano, 2014-03-03 18:49

Subject: Re: [PATCH v2] branch.c: change install_branch_config() to use skip_prefix()
Message-ID: <xmqq61nvqfrc.fsf@gitster.dls.corp.google.com>
URL: https://gitlist.dev/e/xmqq61nvqfrc.fsf%40gitster.dls.corp.google.com
In-Reply-To: <CAPig+cRy2Jt_3DAS=ARzN-8HT3rdMCSGP5QfU8sJZGwqsJTG3g@mail.gmail.com>

```
Eric Sunshine <sunshine@sunshineco.com> writes:

>> diff --git a/branch.c b/branch.c
>> index 723a36b..ca4e824 100644
>> --- a/branch.c
>> +++ b/branch.c
>> @@ -50,7 +50,7 @@ static int should_setup_rebase(const char *origin)
>>  void install_branch_config(int flag, const char *local, const char *origin, const char *remote)
>>  {
>>         const char *shortname = remote + 11;
>> -       int remote_is_branch = starts_with(remote, "refs/heads/");
>> +       int remote_is_branch = (NULL != skip_prefix(remote ,"refs/heads/"));
>
> This actually makes the code more difficult to read and understand.
> There's a more fundamental reason to use skip_prefix() here. See if
> you can figure it out. (Hint: shortname)

I've already queued 0630aa49 (branch: use skip_prefix() in
install_branch_config(), 2014-02-28) on this topic, by the way.

```
