Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Discuss usage of 'U'-character for untracked git items #36912

Closed
jrieken opened this issue Oct 25, 2017 · 18 comments
Closed

Discuss usage of 'U'-character for untracked git items #36912

jrieken opened this issue Oct 25, 2017 · 18 comments
Assignees
Labels
file-decorations git GIT issues under-discussion Issue is under discussion for relevance, priority, approach

Comments

@jrieken
Copy link
Member

jrieken commented Oct 25, 2017

Let's use this issue to discussion what letter/icon to use for added/untracked git resources. This is a continuation from #178 (comment) and an effort to keep the original, already huge, item a little more focused.

@jrieken jrieken assigned jrieken and unassigned joaomoreno Oct 25, 2017
@vscodebot vscodebot bot added the git GIT issues label Oct 25, 2017
@jrieken jrieken added file-decorations under-discussion Issue is under discussion for relevance, priority, approach labels Oct 25, 2017
@jrieken
Copy link
Member Author

jrieken commented Oct 25, 2017

/cc @WadeShuler, @jayjun, @dseipp, @petkahl

@jayjun
Copy link
Contributor

jayjun commented Oct 25, 2017

Thanks @jrieken. I’m in favour of three colours only (excluding greyed ignored files), and each colour should have one letter associated only.

My preference is,

Untracked/Added Files
Green
A

Modified Files
Yellow
M

Deleted Files
Red
D

It’s the exact same scheme used by Atom and Xcode too (less context switching).

@CyberPunkCodes
Copy link

CyberPunkCodes commented Oct 25, 2017

Thanks @jrieken Fair enough to give it its own attention :) I know my position has been stated in the other thread, I’ll post it here for clarity.

Untracked: These technically are new to add files. They are not in the Git tree at this point. You have added them to your project, but not in version control. Thy also are not staged at this point. Since U can be interpreted as updated, I vote we do not use it. I believe A is the most appropriate. - I feel we should put ourselves in the shoes of a newbie, who probably doesn’t understand anything more than copy-n-paste Git commands. They would not understand that U means untracked. They also wouldn’t understand what ?? represents. Which is why, I recommend A.

Modified: Fine as it is from what I recall from my last test run of Insiders. Yellow and M.

Deleted: Fine as it is from what I recall from my last test run of Insiders. I think the D was a dark brownish/red and the file names in Source Control tab had a line through them.

Ignored: I don't think the ignored colors were dark enough. It was hard to distinguish ignored files/folders from the others around it. Maybe it is my theme, but I think I saw someone else say the same thing? This is why Atom uses opacity instead of a color, so it's always x% darker than the regular font color, and not dependent on your theme. I think it was opacity: 0.4 in CSS terms if I recall correctly.

Bug in Ignored: I (and others) have had the parent directory lose it's darker ignored status, while the files inside are darker and ignored as they should be. So for some reason, it was (as of my last v1.18 insiders test) glitching and dropping the parent directories ignored status (at least the visual darkening of the font)

Staged: A darker red color or maybe a darker blue. We don't need this coloring on the Source Control tab, since it already groups the staged files. So the staged coloring is only for the File Tree, so we can see what is staged to ensure we got everything in the commit. Staged support should be optional with a setting to enable/disable it. I don’t care if it is enabled by default, I am fine with manually turning it on. If more people love it, an issue could be opened later to change it to be enabled by default in newer versions. Maybe even let people vote.

Badges: The new way without the background color bubble, just the colored letter. The file tree and Source Control tab had different sized bubbles, they looked squished, and using just the letters fits Code better and looks cleaner.


What to do when both added and modified files are within the same directory

Atom makes the status of the parent directories (all the way up to project root) modified (yellow) when there is A) modified file(s) - B) both modified and added files.

When there is only an added file, the parent directories (all the way up to project root) are added (green).

So in short, the parent dirs take the status color when there is only 1 type. In the event there is both, added and modified, it considers it modified.

The directory colors go all the way up to the project root. In this project path, /project/src/backend/controllers if you add a new file into controllers, then these folders will all turn green: controllers, backend, src. Same for if you modify a file, only they would turn yellow. If you add a file in controllers and also modify a file in controllers, then the mentioned folders would turn yellow as modified. Modified over-rules added.

For staged, I think it should turn the staged color, ie red up the dirs. Staged would override both modified and added.. This is good for cherry picking and ensuring all your files are included in your commit. Since staged is only temporary, they would only be red for a few seconds or minutes, until you get them staged. So it shouldn’t be an issue to do this. Plus, staged support would be optional, so they could disabled it if they didn't like it.. or they would never see if, if Code shipped with the feature disabled.

Just my 2 cents. Coming from Atom, as a lot of people are, this makes the most sense.

@jayjun
Copy link
Contributor

jayjun commented Oct 26, 2017

Often the solution to such diverse views is to allow customisation.

I’d imagine this is easier now that badges are single letter characters. It also allows those who don’t like badges to turn them “off” by setting "" (selectively as well).

{
  "git.badge.untracked": "A",
  "git.badge.modified": "M"
}

@dseipp
Copy link

dseipp commented Oct 26, 2017

Agreed with @jayjun regarding customization. For those that like the 'U', they will be able to change it to their liking. :) Defaulting to 'A' for added (untracked) seems more logical to me as well.

edited removing mis-reference to Atom

@CyberPunkCodes
Copy link

CyberPunkCodes commented Oct 26, 2017 via email

@dseipp
Copy link

dseipp commented Oct 26, 2017

@WadeShuler , sorry, I was going based off of what others were saying regarding liking the 'U'. May have misunderstood. I will amend my comment.

@saada
Copy link

saada commented Oct 26, 2017

I feel differently about this. I think we shouldn't be using alphabetical letters at all.
I'm more on the symbol opinion.
Something along the lines of

+: added
-: removed
*: modified
?: untracked

This could also be a setting? a plugin/extension? emojis?
What do you guys think?

@CyberPunkCodes
Copy link

CyberPunkCodes commented Oct 26, 2017

@saada No, I don't think so. Nobody will know what it means, they will have to look it up online, and it would result in un-necessary issues/questions all over for something very very basic.

When creating things like this, it's always best to look at the "barrier to entry". Take a new programmer, opens up Code, and doesn't know what much of anything is.. Your adding 1 more thing to the list that they have to look up and learn...

You want to try your best to make it where the first time they see it, they understand what it is.

@joaomoreno
Copy link
Member

joaomoreno commented Oct 27, 2017

Personally, I don't think the current approach is problematic and I would just keep it.

@joaomoreno joaomoreno reopened this Oct 27, 2017
@joaomoreno joaomoreno removed their assignment Oct 27, 2017
@dseipp
Copy link

dseipp commented Nov 2, 2017

Now that we've been using for a while, what do people think? Personally, every time I see the 'U' I still think 'Updated' and need to continue to remind myself that it's 'Untracked'.

@CyberPunkCodes
Copy link

Yeah. I went back to Atom for a bit tbh. My 2 issues with VSCode are that the Git status coloring isn’t finished yet, and every time I paste code, it messes up the indenting. Once this gets finished, even if in Insiders, I will probably come back to Code and see if I can straighten out the indenting on pasting.

I agree, the ‘U’ has got to go as it’s counterintuitive.

@gulshan
Copy link

gulshan commented Nov 3, 2017

How about an U with strikethrough- U ?

@CyberPunkCodes
Copy link

It's still a U... The problem we are having, is that at first glance, not thinking about Git and it's underlying statuses, the U immediately makes (some of) us think Updated.

From the perspective of using an editor and choosing "File > New File", you are "adding" a new file to your file tree. It has been "added" since your last state.

Only somebody who is comfortable with Git would know the various git statuses. Beginners would be opening GitHub issues, Stack Overflow questions, Quora Questions, probably even Microsoft issues, every few weeks asking what the U means.

I know when the badges had a rounded background "bubble", they were SVG files. Which meant the letter used, ie: U, can't be changed (at least easily). Since that has been done away with and it is just a letter, it shouldn't be using an SVG file anymore.

I don't care what it is by default, so long as I can change it with a config setting, like this for example: git.status.untracked.letter: "A"

@faustotnc
Copy link

I don't know if I should be writing this on here, but I hate that all my files are Yellow or Green. I really don't care about the icons, but the color green is really uncomfortable to the eyes.

@petkahl
Copy link

petkahl commented Nov 13, 2017

@faustotnc you can turn the colors off by setting explorer.decorations.colors to false in the settings.

@faustotnc
Copy link

Thanks @petkahl That really did help! Looks a lot better now.

@jrieken
Copy link
Member Author

jrieken commented Sep 10, 2018

Closing because no code change is planned

@jrieken jrieken closed this as completed Sep 10, 2018
@vscodebot vscodebot bot locked and limited conversation to collaborators Oct 25, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
file-decorations git GIT issues under-discussion Issue is under discussion for relevance, priority, approach
Projects
None yet
Development

No branches or pull requests

9 participants