threads / patch / 36027

v3branch.c: change install_branch_config() to use skip_prefix()

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

## tl;dr

4 messages between Mar 3, 2014 and Mar 3, 2014. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Guanglin Xu· Mar 3, 2014, 02:24 UTC · lore
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(-)
Show changes to branch.c +1 −1
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· Mar 3, 2014, 05:30 UTC · re: Guanglin Xu · lore

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

2014-03-03 10:24 GMT+08:00 Guanglin Xu <mzguanglin@gmail.com>:
Show 22 quoted lines
> 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"

Show 10 quoted lines
>         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· Mar 3, 2014, 05:39 UTC · re: Guanglin Xu · lore

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

2014-03-03 10:24 GMT+08:00 Guanglin Xu <mzguanglin@gmail.com>:
Show 23 quoted lines
> 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.

Show 9 quoted lines
>         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· Mar 3, 2014, 06:20 UTC · re: He Sun · lore

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

2014-03-03 13:39 GMT+08:00 He Sun <sunheehnus@gmail.com>:
Show 28 quoted lines
> 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
Show 10 quoted lines
>
>>         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

← back to recent threads