I understand your frustration, but the average workflow couldn’t possibly result in changes to files that you don’t intend unless you’re being reckless and making massive commits, which at that time it would be time consuming to find out what you want to omit.
When using source control, I’ll leave all assets checked in unless I wish to edit them. When they are edited and I’m ready to save my changes, I’ll use save all and let all of those changes save and checkout anything else that I may have missed if I believe it may be relevant. When going to do my checkin, I’ll look through the list of assets that are about to be submitted. This is the point at which you would cull the assets that are not relevant to the change and leave them out of the commit.
To answer your specific concerns:
- The specific save buttons, as previously stated, are for direct and forced saving, so that even if something hasn’t been changed in the editor, you can save it. This causing the asset to be updated according to source control isn’t something specific to the Unreal Editor as this is how Windows works. The asset’s date modified will be updated and the Source Control program will pick up on that.
- If you would like to save a specific asset, you can right-click said asset in the Content Browser and select Save. Please keep in mind that this is also a forced save option and will require checkout despite any changes.
- The assets that are being submitted will be shown in a list when the commit is made, during the point where you enter your comment (assuming you’re selecting Submit to Source Control from inside of the engine). This will allow you to check/uncheck any files you wish to include/exclude from this particular commit. You can revert any changes afterwards.
- I’m assuming you’re talking about assets that reference one another; If you edit asset A which is being referenced by asset B, both will need to be saved and submitted.
- If the correct assets were selected as mentioned in #3 and an appropriate comment has been added for the commit, this shouldn’t be a concern.
- I can’t speak for your server space, but there shouldn’t be any unnecessary duplicates if there are no unnecessary changes submitted.