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

4 messages from 2014-03-03 to 2014-03-03. Participants: Guanglin Xu, He Sun.
Thread: https://gitlist.dev/t/36027

## Guanglin Xu, 2014-03-03 02:24

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

```
to avoid a magic code of 11.

Helped-by: Eric Sunshine <sunsh...@sunshineco.com>
Helped-by: Jacopo Notarstefano <jaco...@gmail.com>
Signed-off-by: Guanglin Xu <mzguanglin@gmail.com>
---

This is an implementation of the idea#2 of GSoC 2014 microproject.

 branch.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/branch.c b/branch.c
index 723a36b..3e2551e 100644
--- a/branch.c
+++ b/branch.c
@@ -49,7 +49,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;
+	const char *shortname = skip_prefix(remote ,"refs/heads/");
 	int remote_is_branch = starts_with(remote, "refs/heads/");
 	struct strbuf key = STRBUF_INIT;
 	int rebasing = should_setup_rebase(origin);
-- 
1.9.0

```

## He Sun, 2014-03-03 05:30

Subject: Re: [PATCH v3] branch.c: change install_branch_config() to use skip_prefix()
Message-ID: <CAJr59C09sued4KJf+Gfp10yyD8NtXOKAjV0SZGbVw=Pn4hNZ7A@mail.gmail.com>
URL: https://gitlist.dev/e/CAJr59C09sued4KJf%2BGfp10yyD8NtXOKAjV0SZGbVw%3DPn4hNZ7A%40mail.gmail.com
In-Reply-To: <1393813495-9079-1-git-send-email-mzguanglin@gmail.com>

```
2014-03-03 10:24 GMT+08:00 Guanglin Xu <mzguanglin@gmail.com>:
> to avoid a magic code of 11.
>
> Helped-by: Eric Sunshine <sunsh...@sunshineco.com>
> Helped-by: Jacopo Notarstefano <jaco...@gmail.com>
> Signed-off-by: Guanglin Xu <mzguanglin@gmail.com>
> ---
>
> This is an implementation of the idea#2 of GSoC 2014 microproject.
>
>  branch.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/branch.c b/branch.c
> index 723a36b..3e2551e 100644
> --- a/branch.c
> +++ b/branch.c
> @@ -49,7 +49,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;
> +       const char *shortname = skip_prefix(remote ,"refs/heads/");

Maybe it is more proper to avoid the test of remote_is_branch, by
testing shortname instead.
And add the comment "skip_prefix only return NULL when refs/heads/ is
not the prefix of remote"

>         int remote_is_branch = starts_with(remote, "refs/heads/");
>         struct strbuf key = STRBUF_INIT;
>         int rebasing = should_setup_rebase(origin);
> --
> 1.9.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Cheers,
He Sun

```

## He Sun, 2014-03-03 05:39

Subject: Re: [PATCH v3] branch.c: change install_branch_config() to use skip_prefix()
Message-ID: <CAJr59C1hoc6FPrgHLLy8_xBPNEvCkDHurGSETqPM5j51w7zrHg@mail.gmail.com>
URL: https://gitlist.dev/e/CAJr59C1hoc6FPrgHLLy8_xBPNEvCkDHurGSETqPM5j51w7zrHg%40mail.gmail.com
In-Reply-To: <1393813495-9079-1-git-send-email-mzguanglin@gmail.com>

```
2014-03-03 10:24 GMT+08:00 Guanglin Xu <mzguanglin@gmail.com>:
> to avoid a magic code of 11.
>
> Helped-by: Eric Sunshine <sunsh...@sunshineco.com>
> Helped-by: Jacopo Notarstefano <jaco...@gmail.com>
> Signed-off-by: Guanglin Xu <mzguanglin@gmail.com>
> ---
>
> This is an implementation of the idea#2 of GSoC 2014 microproject.
>
>  branch.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/branch.c b/branch.c
> index 723a36b..3e2551e 100644
> --- a/branch.c
> +++ b/branch.c
> @@ -49,7 +49,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;
> +       const char *shortname = skip_prefix(remote ,"refs/heads/");
>         int remote_is_branch = starts_with(remote, "refs/heads/");

Or it may be better to keep remote_is_branch, and replace starts_with
with something
you have just fixed.

>         struct strbuf key = STRBUF_INIT;
>         int rebasing = should_setup_rebase(origin);
> --
> 1.9.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

```

## Guanglin Xu, 2014-03-03 06:20

Subject: Re: [PATCH v3] branch.c: change install_branch_config() to use skip_prefix()
Message-ID: <CAATe9ugFxfcPukBoboGsb6A_cVkEchk4SpG-VHVE+uCrRqj2wg@mail.gmail.com>
URL: https://gitlist.dev/e/CAATe9ugFxfcPukBoboGsb6A_cVkEchk4SpG-VHVE%2BuCrRqj2wg%40mail.gmail.com
In-Reply-To: <CAJr59C1hoc6FPrgHLLy8_xBPNEvCkDHurGSETqPM5j51w7zrHg@mail.gmail.com>

```
2014-03-03 13:39 GMT+08:00 He Sun <sunheehnus@gmail.com>:
> 2014-03-03 10:24 GMT+08:00 Guanglin Xu <mzguanglin@gmail.com>:
>> to avoid a magic code of 11.
>>
>> Helped-by: Eric Sunshine <sunsh...@sunshineco.com>
>> Helped-by: Jacopo Notarstefano <jaco...@gmail.com>
>> Signed-off-by: Guanglin Xu <mzguanglin@gmail.com>
>> ---
>>
>> This is an implementation of the idea#2 of GSoC 2014 microproject.
>>
>>  branch.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/branch.c b/branch.c
>> index 723a36b..3e2551e 100644
>> --- a/branch.c
>> +++ b/branch.c
>> @@ -49,7 +49,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;
>> +       const char *shortname = skip_prefix(remote ,"refs/heads/");
>>         int remote_is_branch = starts_with(remote, "refs/heads/");
>
> Or it may be better to keep remote_is_branch, and replace starts_with
> with something
> you have just fixed.

Hi He,

Thanks for your comments.

This PATCH v3 scans the "remote" twice. It's unnecessary at all. So I
decide to post PATCH v4 like this:

- const char *shortname = remote + 11;
- int remote_is_branch = starts_with(remote, "refs/heads/");
+ const char *shortname = skip_prefix(remote ,"refs/heads/");
+ int remote_is_branch;
+ if (NULL == shortname)
+ remote_is_branch = 0;
+ else
+ remote_is_branch = 1;

Guanglin


>
>>         struct strbuf key = STRBUF_INIT;
>>         int rebasing = should_setup_rebase(origin);
>> --
>> 1.9.0
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe git" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html

```
