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
Please sign in to leave a comment.
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. :-)
--
Dmitry Jemerov
Development Lead
JetBrains, Inc.
http://www.jetbrains.com/
"Develop with Pleasure!"
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.
Hello Ilya,
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.
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.
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!"
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.
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.