0

Show submodules with modified content in the commit files window

Sulfur (Saad) 3 months ago updated 3 months ago 10

When performing a git status . command in CLI, we can see submodules that have new commits and submodules that have modified content and/or untracked content

Image 870

It would be great if SmartGit can show this in the files dialog. As it stands, I only see submodules with new commits which makes it possible for me to miss some submodule commits that I need to make.

Hi,
Are you using the Working Tree Window of SmartGit - this should give you a pretty good overview!

Cheers
Daniel

Thank you Daniel. Did not know about the Worktree.

Although that works (and is very useful), I have to dig through all the folders to find the submodules and then see which ones have modified or untracked content. It would be nice if these submodules showed up in a flat view somewhere so that one can quickly see the status of the repository. As it stands, I am forced to use git status . to see which submodules have modified/untracked content as shown in the screenshot above.

Please describe more precisely where exactly you want to see what? Do you mean something like the Submodule display in the Repositories view of the Log window?

Sure!

Here is the commit window with the files window. It displays the set of files and submodules that have modifications.

Image 871

This is great. Gives me a flat view of what is modified. What it's missing however is this particular submodule that has modified content

Image 872

Now, I can go to the repositories list, un-collapse the repository in the tree view, and inspect to see which submodules have local, uncommited changes. However, that's easy to miss (especially when a project has many submodules) when committing changes. It would be great if the submodule showed up, with the same little green icon, in the Files window so that a dev can be reminded about submodules that cannot be staged even though they have changes because the changes are modified or untracked similar to git status .

Image 873

Edit: In case there is any confusion, the tiny screenshot I took of the submodule with the little green arrow is from the Repositories tree view:

Image 874

That looks like a different issue. In their case, they are looking for a submodule diff. In my case, I am referring to the issue where the submodule does not show up in the Files view at all if it has modified/untracked content (i.e. there are uncommitted files in the submodule and/or untracked files).

IMHO, I don't see a difference.

I made a TestRepo with 2 submodules. You can see that TestSubmodule2 has local changes, but it does not show up in the Files window. TestSubmodule has a new commit and it does show up in the Files window. All I am requesting is that the tree view information (which clearly shows that TestSubmodule2 is 'dirty' in some way) is also reflected in the commit window.

The reason for this request is that it is easy to miss local changes to submodules in the TreeView because people (including me) generally pay attention to the Files window.

SmartGit Submodules that have modified or untracked files

A submodule only can be committed if it points to a different commit. Committable files in a submodule do not change the submodule state of a parent repository. Even if we would show the submodule in the parent repository as "contains changes", you would not be able to commit the submodule in the parent repository, but only in the submodule itself.

> Committable files in a submodule do not change the submodule state of a parent repository

Unless the commit was made in a submodule of the parent repository directly. Then, the submodule state does change.


> Even if we would show the submodule in the parent repository as "contains changes", you would not be able to commit the submodule in the parent repository, but only in the submodule itself.


Right, but it does alert the developer that there are changes in a submodule that they made that may be part of whatever feature they are currently working on. And that they are uncommitted changes (or untracked files) that cannot be committed to the parent repository as part of a submodule change.