Vscode-git-graph: Italic style for remote branches

Created on 1 Aug 2019  路  15Comments  路  Source: mhutchie/vscode-git-graph

Currently when a local and its remote branch is at the same commit, the branch name will be first followed be a | and the remote's name. The remote is italic in this case like
feature/feature123 | origin

But when they are at different commits, remote will be shown as origin/feature/feature123 without italic style.

In my opinion one can make differences much more easily between local and remote branches if remotes would be italic in cases when they points somewhere else as their local branches.

So instead of origin/feature/feature123 it should be origin/feature/feature123 if it is in refs/remotes/.

discussion improvement

All 15 comments

Thanks for this suggestion!

The current rule used by extension is that local branch, remote branch and tag names are normal, and only the remote name (shown to the right of a combined local and remote branch name) is in italics. The key detail here is that the remote branch name is not in italics, only remote name is.

My thoughts on your suggestions are:

  • I did try making the remote branch names in italics when I first implemented combining local and remote branch names, so all remote / remote branch names were in italics. I found this to be harder to interpret, and ultimately decided not to keep it, as it made local branches and tags look the same (as they were both not in italics).

    • I also didn鈥檛 want to introduce another font style to differentiate tags (e.g. underlines), as underlines are too cluttered with the label border.

    • Having three different font / colour / border styles for local branch, remote branch and tag names made the UI look inconsistent. Because there were so many different styles mixed in together, it made it hard to see which labels were like other labels.

  • The reason why the remote name is currently in italics is because when on a combined label, it would be confusing to differentiate which component of the label is the branch name, and which is the remote name. There must be a font style change to differentiate them.
  • Most users find it easy to differentiate remote branches as they all start with a common prefix (e.g. origin).
  • The current behaviour of non-italic local branch, remote branch and tag names is consistent with almost every other Git UI, making it familiar for users.

If you have an alternative suggestion that would not negatively affect the ease of interpreting other labels, please let me know and I鈥檇 be happy to try it out. If not, please close this improvement request.

Thank you for your reply!

I mostly agree with you, although in my interpretation currently the local branch is what shown in the graph, and those remotes whose branch is at the same commit as the local. So that is the current branch and remotes with italic.

  • Tags can be aligned right. I actually enabled this options, very like it! So one can set tags to align on the right side, local branches can be normal and remotes can be italic if someone wish.

  • It is not so hard to determine that a branch is local or remote but it can be more easy if remotes are italic.

I suggest to add this feature as an options defaulting to false. So the user can decide if he/she wants remote branches italic just like he/she can decide about the alignment of tags.

After trying it out, putting the remote branches in italics was definitely harder to interpret and cluttered the UI, so I don鈥檛 even want to add it as an extension setting. I definitely understand the motivation for this improvement, and am open to better differentiating remote branches, but I believe that putting them in italics is not the right solution.

The reference label alignment setting, along with all other UI related settings, give the user alternatives to suit their workflow & repositories. No option enables / disables something that is inherently negative for the majority of users experience (even if it is disabled by default).

I鈥檒l leave this improvement request open for the next week or so, so if any other users have an alternative solution they can reply with it, and I can then try it out.

Can you post a screenshot with the italic style remotes?

@ADIX7 I implemented combining local and remote branches seven releases ago (two and a half months ago on 20/05/2019), and deleted the unreleased italics and alternatives tests after it was released in v1.6.0. Considering it was clear to me it was not worth continuing to explore, I never thought it would be worth keeping. Unfortunately I can鈥檛 provide screenshots without mocking it up / reimplementing it.

I see, thank you.

I've created a fork and made the changes: https://github.com/ADIX7/vscode-git-graph. I guess you don't want a PR, do you? If you change your mind I can create a PR in the future.
Are you okay with the readme changes? Should I give you credits somewhere else (this is my first time forking and publishing a vscode extension)?
I'll publish this to vscode marketplace.

@ADIX7 The licence that Git Graph (and its codebase) is released under does not permit you to publish or distribute your fork.

Permission is NOT GRANTED to publish, distribute, sublicense, and/or sell derivative works of the Software.

You are welcome to modify your fork for your own personal use, but not publish or distribute it.

Eh... I use Settings Sync for VSCode (https://marketplace.visualstudio.com/items?itemName=Shan.code-settings-sync). If I can not upload to marketplace, I can not sync it with Settings Sync...
I guess I will make a PR for Settings Sync to sync vsix too. Until then, can you make an exception and allow me to publish the fork?

@ADIX7 I can see that you have already published your fork of Git Graph to the Visual Studio Code Marketplace, breaching the license agreement of Git Graph (the extension and codebase). This is a serious offence, and I require that you to take it down immediately. If you don鈥檛 take it down, I鈥檒l get it taken down via Microsoft鈥檚 channels for breaching the licence of the software.

@ADIX7 Instructions of how to un-publish an extension are provided here.

Breaching a licence agreement is an extremely serious matter, I definitely do not give you any exception to allow you to publish your fork.

As stated above, I require you to immediately take it down.

I'm not here to fight or steal or so... Of course I've just unpublished the extension. By the way, I don't see a real open source mentality here, shame... Such a good project otherwise.

@ADIX7 Instructions of how to un-publish an extension are provided here.

Breaching a licence agreement is an extremely serious matter, I definitely do not give you any exception to allow you to publish your fork.

As stated above, I require you to immediately take it down.

I've already unpublished it ;)

Thank you for taking down your fork from the Visual Studio Code Marketplace.

I鈥檓 closing this improvement request for now. If other Git Graph users would like more emphasis on remote branches, and can make a suggestion of how to achieve this, I鈥檇 definitely be happy to explore this further.

I'm not here to fight or steal or so... Of course I've just unpublished the extension. By the way, I don't see a real open source mentality here, shame... Such a good project otherwise.

For this kind of behaviour I decided to remove this plugin from my VS Code installations. It is sad because the plugin is very nice.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

morganlombard picture morganlombard  路  5Comments

kimyvgy picture kimyvgy  路  7Comments

marco-m picture marco-m  路  3Comments

Gurran picture Gurran  路  4Comments

Konsonanz picture Konsonanz  路  4Comments