Better visual representation of "dirty" (differing from pristine VCS copy) files/folders?

I consider switching from Eclipse+Pydev to PyCharm and one thing bugs me a lot: the VCS integration lacks a clear visual representation of the current amount of changes which are to be commited:

1) By default, PyCharm displays "dirty" files (the ones which differ from their pristine VCS copies) with dark blue foreground, as configured under Preferences -> IDE settings -> Editor -> Colors & Fonts -> File Status -> Modified. I'd like to be able to mark modified files with yellow background instead (to make them clearly noticeable in the Project view), but "Background" option is not accessible for some reason?

2)  PyCharm doesn't mark "dirty" folders at all. If a file is modified and then its parent folder is collapsed, I end up with having no clue on where were the changes. The expected behaviour would be is when a file is modified, all its parent folders are marked as "modified" as well. For instance, editing src/app/views/some.py would also mark "views", "app" and "src" folders as modified, so even if they are collapsed in the project view, it's still easily visible that they have uncommitted changes.

I am attaching a screenshot to illustrate both points. Is there anything that I'm missing?



Attachment(s):
pycharm-vs-eclipse.png
5 comments
Comment actions Permalink

Hello Ilya,

You're probably missing the Changes view, which shows you a clear list of

all the modified files in the project, either grouped by folder or as a flat

list. Otherwise, you're describing PyCharm's behavior correctly. :-)

I consider switching from Eclipse+Pydev to PyCharm and one thing bugs

me a lot: the VCS integration lacks a clear visual representation of

the current amount of changes which are to be commited:

1) By default, PyCharm displays "dirty" files (the ones which differ

from their pristine VCS copies) with dark blue foreground, as

configured under Preferences -> IDE settings -> Editor -> Colors &

Fonts -> File Status -> Modified. I'd like to be able to mark modified

files with yellow background instead (to make them clearly noticeable

in the Project view), but "Background" option is not accessible for

some reason?

2)  PyCharm doesn't mark "dirty" folders at all. If a file is modified

and then its parent folder is collapsed, I end up with having no clue

on where were the changes. The expected behaviour would be is when a

file is modified, all its parent folders are marked as "modified" as

well. For instance, editing src/app/views/some.py would also mark

"views", "app" and "src" folders as modified, so even if they are

collapsed in the project view, it's still easily visible that they

have uncommitted changes.

I am attaching a screenshot to illustrate both points. Is there

anything that I'm missing?

--

Dmitry Jemerov

Development Lead

JetBrains, Inc.

http://www.jetbrains.com/

"Develop with Pleasure!"

0
Comment actions Permalink

Hi Dmitry,

Thank you for pointing out the "Changes" view, I was missing it indeed. That doesn't answer neither of my original questions, though:

1) Why Preferences -> IDE settings -> Editor -> Colors &

Fonts -> File Status -> Modified doesn't allow me to change the *background* of modified files? It is specifically disabled, so there either should be some clear rationale behind that, or that is a bug that needs to be fixed?

Should I post this to the bug tracker?

2) Is there any chance that you will consider adding an option to mark "dirty" folders along with dirty files? Should I post this to the bug tracker?

3) Even though there's  beautiful Changes view, don't you agree that my Eclipse screenshot at least *makes sense*?

Thanks.

0
Comment actions Permalink

Hello Ilya,

Thank you for pointing out the "Changes" view, I was missing it

indeed. That doesn't answer neither of my original questions, though:

1) Why Preferences -> IDE settings -> Editor -> Colors &

Fonts -> File Status -> Modified doesn't allow me to change the

background of modified files? It is specifically disabled, so there

either should be some clear rationale behind that, or that is a bug

that needs to be fixed?

No, this is not a bug. When file names are displayed in the UI, their background

color is determined by the scope they're in (Settings | File Colors), and

their foreground color is determined by the file status.

2) Is there any chance that you will consider adding an option to mark

"dirty" folders along with dirty files? Should I post this to the bug

tracker?

Several version control systems (Subversion in particular) support versioning

of directories, so the status of a directory is not the same thing as the

aggregate status of files underneath it.

3) Even though there's  beautiful Changes view, don't you agree that

my Eclipse screenshot at least makes sense?

There are multiple possible models of VCS integration, each of which can

make sense. Trying to combine multiple models in a single product doesn't

necessarily make as much sense.

--

Dmitry Jemerov

Development Lead

JetBrains, Inc.

http://www.jetbrains.com/

"Develop with Pleasure!"

0
Comment actions Permalink
It's been 2 year and I am still missing this feature, so decided to give this discussion a second chance. I discovered that I can set the background color in Settings | File colors | Changed files, which is good. However, this still doesn't allow to see the changes at a glance if a changed file resides in a collapsed directory structure.

Several version control systems (Subversion in particular) support versioning of directories, so the status of a directory is not the same thing as the aggregate status of files underneath it.


So why is that a problem? A specific version control system may override the definition of a "changed directory", if versioning of directories is supported natively. Otherwise, the default logic of "a directory has changed if there is at least one new, deleted, renamed or changed file below" should apply.
0
Comment actions Permalink
Hi Ilya,

Although the directories in Git are not versioned, there are certain cases, when Git shows directories as modified:
1. If a directory is a submodule root, and the submodule changes, `git status` called from the "upper" root will show the directory as modified.
2. Same for symlinks.

We don't have special support for submodules yet, so I can't say anything about the UI in that case, but I think folders which are submodules might get icons different from usual folder icons. As for symlinks, they already have special icons.
But in both cases marking a directory as modified if it contains modified files may confuse users.

That said, I tend to vote against this feature.
As Dmitry already said, you always have the Changes toolwindow to overview the files you've changes along with folders containing those files.
0

Please sign in to leave a comment.