+1

Indicate LFS status before upload

Per Holmes 1 month ago updated 1 month ago 4

SmartGit should show an LFS indicator next to each file that *will be* committed with LFS, *before* the commit is done.


Ever so often, you bring in a new file type that should be handled with LFS. But without an indicator, it's not immediately obvious that you're committing such a file. Over and over, I accidentally put some 30 MB file into the normal repository, because it's some new executable or data file with a new extension, and I don't realize that this extension isn't already in .gitattributes. Then I realize the error, update .gitattributes, and going forward, this file type is now handled.

But the damage is done. I have half a dozen repositories that now have very large files on the normal Git side, which will never, ever leave the repositories.

SmartGit is hiding the LFS status too much. There should either be an indicator next to files that will be upload with LFS, or a column with the LFS status, that can be enabled.

The feature simply indicates whether the file name matches a mask in .gitattributes.

Please please please.

Thanks,

Per


Here's an example of what GitKraken does, which provides the exact feedback you need to not accidentally do something stupid, expensive, and irreversible. For all of GitKraken's many flaws, this is one thing it does right.

By comparison, in SmartGit you're basically flying blind. You have no idea that you're about to make a huge mistake if this file-type isn't already tracked. All you can do is look at the Size column, and then double-triple-quadruple check .gitattributes that this file type is tracked. This is incredibly manual, and you still make mistakes all the time when you're doing this at scale. So there's really an opportunity for SmartGit to help here.

Actually, this is a deal-breaker. I'm currently subscribed to both SmartGit and GitKraken, but I realize that for my LFS projects, I'm forced to use GitKraken. So I'm going to have to suck it up and do GitKraken for the next year (will cancel SmartGit), and it's only over this feature.

Moving into LFS is relatively new to me, and accidentally not tracking giant files is a huge problem. I have 5 repositories that I'm seriously considering resetting all the history just to get huge files into LFS that were accidentally committed without updating .gitattributes.

So I have to use GitKraken. I'll continue to monitor this thread, and will come back to SmartGit the second it gets this feature, if it ever does. It's just too dangerous to not have it.

To be more specific: you are requesting an additional "will be handled by LFS" indicator for untracked files in the Files view? Note that there is already a similar request for tracked files:

https://smartgit.userecho.com/en/communities/1/topics/966-

It's the same, except that I profusely disagree with the idea of being only "for untracked files". This is just as dangerous as not having it.

If it's only for untracked files, then you can't tell the difference between a file that's modified and a file-type that's misconfigured. So then you can only understand the LFS indicator by also looking at the tracking status column and reasoning that "if there's no indicator and no tracking status then it's misconfigured but if there's an indicator and no tracking status, then it's fine". Every single time, for hundreds of files, which is what game engine commits look like.

The LFS indicator has to be shown for all files that are handled by LFS, regardless of tracking status.


I don't know if you're LFS users. I used PlasticSCM until a month ago, and I promise you that not having this for LFS results big mistakes. This request completely overshadows any request an LFS user could otherwise have with SmartGit. I don't have a #2 feature request.


I'll take any minimum implementation. A column would be fine, then non-LFS users don't have to look at it. I only want to implore you to make it easy to distinguish between the states. Don't just have an LFS column with "Yes" or "No" in it, because it has to jump out at you. Have a column with either "LFS" or nothing, so that it's glaringly obvious if you've messed up the tracking status.


The reality is that LFS needs constant babysitting or you make wrong and permanent commits that cannot be recovered from without wiping your commit history and making a new repository. The time to catch this is before the commit, and without an indicator, it's impossible.