git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [usability bug] git branch -a does not disambiguate remote and local branches
@ 2008-12-15 18:15 Constantine Plotnikov
  2008-12-15 19:09 ` Johannes Schindelin
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Constantine Plotnikov @ 2008-12-15 18:15 UTC (permalink / raw)
  To: git

Let's consider the following scenario:

mkdir bare.git
mkdir local
cd bare.git
git --bare init
cd ../local
git init
echo test > test.txt
git add test.txt
git commit -m test
git remote add origin `pwd`/../bare.git
git push --all
git checkout -b origin/master master
echo updated > test.txt
git add test.txt
git commit -m updated

Note that that in this scenario, the user has created local branch in
the folder with the same name as a remote branch. While the supposed
user here is apparently shooting itself in the foot, the scenario is
still supported by git, and might happen as a result of more logical
git operations (like git fetch).

After this scenario is executed, git branch -a will give the following output:
  master
* origin/master
  origin/master

Note that there is two origin/master entries, but it is not clear
which is remote is and which is the local. I think that "git branch
-a" should print unambiguous names, qualifying them if needed.

Constantine

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [usability bug] git branch -a does not disambiguate remote and local branches
  2008-12-15 18:15 [usability bug] git branch -a does not disambiguate remote and local branches Constantine Plotnikov
@ 2008-12-15 19:09 ` Johannes Schindelin
  2008-12-15 19:15   ` Constantine Plotnikov
  2008-12-15 19:21   ` Boyd Stephen Smith Jr.
  2008-12-15 19:24 ` Lars Hjemli
  2008-12-16  6:26 ` Björn Steinbrink
  2 siblings, 2 replies; 6+ messages in thread
From: Johannes Schindelin @ 2008-12-15 19:09 UTC (permalink / raw)
  To: Constantine Plotnikov; +Cc: git

Hi,

On Mon, 15 Dec 2008, Constantine Plotnikov wrote:

> Let's consider the following scenario:
> 
> mkdir bare.git
> mkdir local
> cd bare.git
> git --bare init
> cd ../local
> git init
> echo test > test.txt
> git add test.txt
> git commit -m test
> git remote add origin `pwd`/../bare.git
> git push --all
> git checkout -b origin/master master
> echo updated > test.txt
> git add test.txt
> git commit -m updated
> 
> Note that that in this scenario, the user has created local branch in
> the folder with the same name as a remote branch. While the supposed
> user here is apparently shooting itself in the foot, the scenario is
> still supported by git, and might happen as a result of more logical
> git operations (like git fetch).

It is only half-supported, and Git will complain, saying that there are 
ambiguous branches.

IMHO it is better to be nice to the many users who do not try to shoot 
themselves in the foot, by showing them the nice short names that will 
work.

The others are warned when they use the ambiguous short names anyway.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [usability bug] git branch -a does not disambiguate remote and local branches
  2008-12-15 19:09 ` Johannes Schindelin
@ 2008-12-15 19:15   ` Constantine Plotnikov
  2008-12-15 19:21   ` Boyd Stephen Smith Jr.
  1 sibling, 0 replies; 6+ messages in thread
From: Constantine Plotnikov @ 2008-12-15 19:15 UTC (permalink / raw)
  To: Johannes Schindelin, git

On Mon, Dec 15, 2008 at 10:09 PM, Johannes Schindelin
<Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Mon, 15 Dec 2008, Constantine Plotnikov wrote:
>
>> Let's consider the following scenario:
>>
>> mkdir bare.git
>> mkdir local
>> cd bare.git
>> git --bare init
>> cd ../local
>> git init
>> echo test > test.txt
>> git add test.txt
>> git commit -m test
>> git remote add origin `pwd`/../bare.git
>> git push --all
>> git checkout -b origin/master master
>> echo updated > test.txt
>> git add test.txt
>> git commit -m updated
>>
>> Note that that in this scenario, the user has created local branch in
>> the folder with the same name as a remote branch. While the supposed
>> user here is apparently shooting itself in the foot, the scenario is
>> still supported by git, and might happen as a result of more logical
>> git operations (like git fetch).
>
> It is only half-supported, and Git will complain, saying that there are
> ambiguous branches.
>
> IMHO it is better to be nice to the many users who do not try to shoot
> themselves in the foot, by showing them the nice short names that will
> work.
>
> The others are warned when they use the ambiguous short names anyway.
>
It is possible to be nice to to both categories showing shortest
disambiguated output like:

  master
* heads/origin/master
  remotes/origin/master

Constantine

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [usability bug] git branch -a does not disambiguate remote and local branches
  2008-12-15 19:09 ` Johannes Schindelin
  2008-12-15 19:15   ` Constantine Plotnikov
@ 2008-12-15 19:21   ` Boyd Stephen Smith Jr.
  1 sibling, 0 replies; 6+ messages in thread
From: Boyd Stephen Smith Jr. @ 2008-12-15 19:21 UTC (permalink / raw)
  To: git; +Cc: Johannes Schindelin, Constantine Plotnikov

[-- Attachment #1: Type: text/plain, Size: 579 bytes --]

On Monday 2008 December 15 13:09:16 Johannes Schindelin wrote:
>IMHO it is better to be nice to the many users who do not try to shoot
>themselves in the foot, by showing them the nice short names that will
>work.

It should be possible to support both.  Short names when they are unique, 
longer names when the short names are ambiguous.
-- 
Boyd Stephen Smith Jr.                     ,= ,-_-. =. 
bss03@volumehost.net                      ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy           `-'(. .)`-' 
http://iguanasuicide.org/                      \_/     

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 197 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [usability bug] git branch -a does not disambiguate remote and local branches
  2008-12-15 18:15 [usability bug] git branch -a does not disambiguate remote and local branches Constantine Plotnikov
  2008-12-15 19:09 ` Johannes Schindelin
@ 2008-12-15 19:24 ` Lars Hjemli
  2008-12-16  6:26 ` Björn Steinbrink
  2 siblings, 0 replies; 6+ messages in thread
From: Lars Hjemli @ 2008-12-15 19:24 UTC (permalink / raw)
  To: Constantine Plotnikov; +Cc: git

On Mon, Dec 15, 2008 at 19:15, Constantine Plotnikov
<constantine.plotnikov@gmail.com> wrote:
> After this scenario is executed, git branch -a will give the following output:
>  master
> * origin/master
>  origin/master
>
> Note that there is two origin/master entries, but it is not clear
> which is remote is and which is the local.

You can use `git branch -a --color` to see the difference (issue `git
config --global color.branch true` to use --color automatically).

--
larsh

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [usability bug] git branch -a does not disambiguate remote and local branches
  2008-12-15 18:15 [usability bug] git branch -a does not disambiguate remote and local branches Constantine Plotnikov
  2008-12-15 19:09 ` Johannes Schindelin
  2008-12-15 19:24 ` Lars Hjemli
@ 2008-12-16  6:26 ` Björn Steinbrink
  2 siblings, 0 replies; 6+ messages in thread
From: Björn Steinbrink @ 2008-12-16  6:26 UTC (permalink / raw)
  To: Constantine Plotnikov; +Cc: git

On 2008.12.15 21:15:15 +0300, Constantine Plotnikov wrote:
> After this scenario is executed, git branch -a will give the following output:
>   master
> * origin/master
>   origin/master
> 
> Note that there is two origin/master entries, but it is not clear
> which is remote is and which is the local. I think that "git branch
> -a" should print unambiguous names, qualifying them if needed.

Actually, it is clear. The one with the * is the local one. The remote
tracking branch will never be marked as checked out, as you would get a
detached HEAD when you do "git checkout remotes/origin/master".

When there are duplicate entries, you can be sure that you have a local
branch head and a remote tracking branch with the same shortname. And
when one of them has been marked as checked out, you can be sure that it
is the local one.

Björn

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-12-16  6:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-15 18:15 [usability bug] git branch -a does not disambiguate remote and local branches Constantine Plotnikov
2008-12-15 19:09 ` Johannes Schindelin
2008-12-15 19:15   ` Constantine Plotnikov
2008-12-15 19:21   ` Boyd Stephen Smith Jr.
2008-12-15 19:24 ` Lars Hjemli
2008-12-16  6:26 ` Björn Steinbrink

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).