diff mbox series

doc branch: provide examples for listing remote tracking branches

Message ID 20190528121315.2604-1-philipoakley@iee.org (mailing list archive)
State New, archived
Headers show
Series doc branch: provide examples for listing remote tracking branches | expand

Commit Message

Philip Oakley May 28, 2019, 12:13 p.m. UTC
The availability of these pattern selections is not obvious from
the man pages, as per mail thread <87lfz3vcbt.fsf@evledraar.gmail.com>.

Provide examples.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
---

in response to 
<CACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S+hiXBoUGQ@mail.gmail.com>
https://public-inbox.org/git/?q=%3CCACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S%2BhiXBoUGQ%40mail.gmail.com%3E

to: "Git Mailing List <git@vger.kernel.org>"
cc: "Duy Nguyen <pclouds@gmail.com>"
cc: "Ævar Arnfjörð Bjarmason <avarab@gmail.com>"

 Documentation/git-branch.txt | 12 ++++++++++++
 1 file changed, 12 insertions(+)

Comments

Junio C Hamano May 28, 2019, 1:58 p.m. UTC | #1
Philip Oakley <philipoakley@iee.org> writes:

> The availability of these pattern selections is not obvious from
> the man pages, as per mail thread <87lfz3vcbt.fsf@evledraar.gmail.com>.
>
> Provide examples.
>
> Signed-off-by: Philip Oakley <philipoakley@iee.org>
> ---

Please try again, perhaps after reading
<CACsJy8B_3ZytR+5HvOax=ngw7ECse8_5ajkOvUEcOj3MuNxQvQ@mail.gmail.com>

Thanks.

>
> in response to 
> <CACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S+hiXBoUGQ@mail.gmail.com>
> https://public-inbox.org/git/?q=%3CCACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S%2BhiXBoUGQ%40mail.gmail.com%3E
>
> to: "Git Mailing List <git@vger.kernel.org>"
> cc: "Duy Nguyen <pclouds@gmail.com>"
> cc: "Ævar Arnfjörð Bjarmason <avarab@gmail.com>"
>
>  Documentation/git-branch.txt | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
> index 3bd83a7cbd..7ed91f1be3 100644
> --- a/Documentation/git-branch.txt
> +++ b/Documentation/git-branch.txt
> @@ -314,6 +314,18 @@ $ git branch -D test                                    <2>
>  <2> Delete the "test" branch even if the "master" branch (or whichever branch
>      is currently checked out) does not have all commits from the test branch.
>  
> +Listing branches from a specific remote::
> ++
> +------------
> +$ git branch -a -l '<remote>/<pattern>'                 <1>
> +$ git for-each-ref 'refs/remotes/<remote>/<pattern>'    <2>
> +------------
> ++
> +<1> This can conflate <remote> with any local branches you happen to
> +    have been prefixed with the same <remote> pattern.
> +<2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]
> +
> +Patterns will normally need quoting.
>  
>  NOTES
>  -----
Philip Oakley May 28, 2019, 2:17 p.m. UTC | #2
On 28/05/2019 14:58, Junio C Hamano wrote:
> Philip Oakley <philipoakley@iee.org> writes:
>
>> The availability of these pattern selections is not obvious from
>> the man pages, as per mail thread <87lfz3vcbt.fsf@evledraar.gmail.com>.
>>
>> Provide examples.
>>
>> Signed-off-by: Philip Oakley <philipoakley@iee.org>
>> ---
> Please try again, perhaps after reading
> <CACsJy8B_3ZytR+5HvOax=ngw7ECse8_5ajkOvUEcOj3MuNxQvQ@mail.gmail.com>
Hi Junio
Sorry, I'm not understanding the comment, even having re-read the thread.
Philip
>
> Thanks.
>
>> in response to
>> <CACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S+hiXBoUGQ@mail.gmail.com>
>> https://public-inbox.org/git/?q=%3CCACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S%2BhiXBoUGQ%40mail.gmail.com%3E
>>
>> to: "Git Mailing List <git@vger.kernel.org>"
>> cc: "Duy Nguyen <pclouds@gmail.com>"
>> cc: "Ævar Arnfjörð Bjarmason <avarab@gmail.com>"
>>
>>   Documentation/git-branch.txt | 12 ++++++++++++
>>   1 file changed, 12 insertions(+)
>>
>> diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
>> index 3bd83a7cbd..7ed91f1be3 100644
>> --- a/Documentation/git-branch.txt
>> +++ b/Documentation/git-branch.txt
>> @@ -314,6 +314,18 @@ $ git branch -D test                                    <2>
>>   <2> Delete the "test" branch even if the "master" branch (or whichever branch
>>       is currently checked out) does not have all commits from the test branch.
>>   
>> +Listing branches from a specific remote::
>> ++
>> +------------
>> +$ git branch -a -l '<remote>/<pattern>'                 <1>
>> +$ git for-each-ref 'refs/remotes/<remote>/<pattern>'    <2>
>> +------------
>> ++
>> +<1> This can conflate <remote> with any local branches you happen to
>> +    have been prefixed with the same <remote> pattern.
>> +<2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]
>> +
>> +Patterns will normally need quoting.
>>   
>>   NOTES
>>   -----
Philip Oakley May 28, 2019, 2:51 p.m. UTC | #3
Hi Junio,

On 28/05/2019 15:17, Philip Oakley wrote:
> On 28/05/2019 14:58, Junio C Hamano wrote:
>> Philip Oakley <philipoakley@iee.org> writes:
>>
>>> The availability of these pattern selections is not obvious from
>>> the man pages, as per mail thread <87lfz3vcbt.fsf@evledraar.gmail.com>.
>>>
>>> Provide examples.
>>>
>>> Signed-off-by: Philip Oakley <philipoakley@iee.org>
>>> ---
>> Please try again, perhaps after reading
>> <CACsJy8B_3ZytR+5HvOax=ngw7ECse8_5ajkOvUEcOj3MuNxQvQ@mail.gmail.com>
> Hi Junio
> Sorry, I'm not understanding the comment, even having re-read the thread.
> Philip
I guess you were referring to you more recent reply to Ævar.

However, isn't `-r <pattern>` broken?

phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git (branch-patterns)
$ git branch -a -l 'junio/*'
   remotes/junio/maint
   remotes/junio/master
   remotes/junio/next
   remotes/junio/pu
   remotes/junio/todo

phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git (branch-patterns)
$ git branch -a -r 'junio/*'
fatal: -a and -r options to 'git branch' do not make sense with a branch 
name

phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git (branch-patterns)
$ git branch -r 'junio/*'
fatal: -a and -r options to 'git branch' do not make sense with a branch 
name

phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git (branch-patterns)
$ git branch -r
   dscho-git/add-i-fixes
   dscho-git/add-i-in-c-all-except-patch
   dscho-git/add-i-in-c-status-and-help
...


The docs for the branch -r and -a option could do with mentioning that 
they are meant to accept a pattern, as all the other mentions are hidden 
mid paragraph.

I'll prepare a v2 for the docs, but haven't the time at the moment to 
investigate the code fail (missing a test?).

Philip

>>
>> Thanks.
>>
>>> in response to
>>> <CACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S+hiXBoUGQ@mail.gmail.com>
>>> https://public-inbox.org/git/?q=%3CCACsJy8CwY8gzeWa9kNRX3ecez1JGiQiaOknbAoU7S%2BhiXBoUGQ%40mail.gmail.com%3E 
>>>
>>>
>>> to: "Git Mailing List <git@vger.kernel.org>"
>>> cc: "Duy Nguyen <pclouds@gmail.com>"
>>> cc: "Ævar Arnfjörð Bjarmason <avarab@gmail.com>"
>>>
>>>   Documentation/git-branch.txt | 12 ++++++++++++
>>>   1 file changed, 12 insertions(+)
>>>
>>> diff --git a/Documentation/git-branch.txt 
>>> b/Documentation/git-branch.txt
>>> index 3bd83a7cbd..7ed91f1be3 100644
>>> --- a/Documentation/git-branch.txt
>>> +++ b/Documentation/git-branch.txt
>>> @@ -314,6 +314,18 @@ $ git branch -D 
>>> test                                    <2>
>>>   <2> Delete the "test" branch even if the "master" branch (or 
>>> whichever branch
>>>       is currently checked out) does not have all commits from the 
>>> test branch.
>>>   +Listing branches from a specific remote::
>>> ++
>>> +------------
>>> +$ git branch -a -l '<remote>/<pattern>'                 <1>
>>> +$ git for-each-ref 'refs/remotes/<remote>/<pattern>'    <2>
>>> +------------
>>> ++
>>> +<1> This can conflate <remote> with any local branches you happen to
>>> +    have been prefixed with the same <remote> pattern.
>>> +<2> `for-each-ref` can take a wide range of options. See 
>>> linkgit:git-for-each-ref[1]
>>> +
>>> +Patterns will normally need quoting.
>>>     NOTES
>>>   -----
>
Junio C Hamano May 28, 2019, 3:51 p.m. UTC | #4
Philip Oakley <philipoakley@iee.org> writes:

> However, isn't `-r <pattern>` broken?

No.

> phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git (branch-patterns)
> $ git branch -a -l 'junio/*'

You are asking "branch --all --list" here.

> $ git branch -a -r 'junio/*'
> fatal: -a and -r options to 'git branch' do not make sense with a
> branch name

You wanted to ask "branch --remote --list" instead of "branch --all
--remote", no?
Philip Oakley May 28, 2019, 4:17 p.m. UTC | #5
On 28/05/2019 16:51, Junio C Hamano wrote:
> Philip Oakley <philipoakley@iee.org> writes:
>
>> However, isn't `-r <pattern>` broken?
> No.
Then why does it say:
     fatal: -a and -r options to 'git branch' do not make sense with a 
branch name

when there is no `-a` given?
>
>> phili@Philip-Win10 MINGW64 /c/git-sdk-64/usr/src/git (branch-patterns)
>> $ git branch -a -l 'junio/*'
> You are asking "branch --all --list" here.
>
>> $ git branch -a -r 'junio/*'
>> fatal: -a and -r options to 'git branch' do not make sense with a
>> branch name
> You wanted to ask "branch --remote --list" instead of "branch --all
> --remote", no?
>
The initial expectation was that a simple "--remote <pattern>" would be 
all that was required to list the rtbs with the sub-pattern (see fatal 
above, which is maybe how Ævar got his -a formulation). But it now 
appears that we/I need the --list, to allow a pattern, and either -a, or 
-r, to include the rtbs in the list.

So ultimately, yes, to just get the rtbs of a specific remote one needs 
your "branch --remote --list `<remote>/*' "formulation.

Philip
diff mbox series

Patch

diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index 3bd83a7cbd..7ed91f1be3 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -314,6 +314,18 @@  $ git branch -D test                                    <2>
 <2> Delete the "test" branch even if the "master" branch (or whichever branch
     is currently checked out) does not have all commits from the test branch.
 
+Listing branches from a specific remote::
++
+------------
+$ git branch -a -l '<remote>/<pattern>'                 <1>
+$ git for-each-ref 'refs/remotes/<remote>/<pattern>'    <2>
+------------
++
+<1> This can conflate <remote> with any local branches you happen to
+    have been prefixed with the same <remote> pattern.
+<2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]
+
+Patterns will normally need quoting.
 
 NOTES
 -----