Git-LFS
SmartGit provides the common Git-LFS operations, provided that Git-LFS has been installed on your system and it’s configured in your Git config files, so it will work from command line.
Implementing low-level commands
SmartGit implements low-level Git-LFS commands and provides them in the Local|LFS menu. There is almost a 1-1 correspondence between SmartGit commands and Git-LFS command line.
Example: setting up and adding files to Git-LFS
We are following the Git-LFS tutorial to add a file to Git-LFS:
git lfs install: invoke Local|LFS|Installgit lfs track <file>: select an untracked file in SmartGit’s Files view and invoke Local|LFS|Track; SmartGit suggests a matching pattern for the selected file which you can adjust if necessarygit add .gitattributes: right click.gitattributesand invoke Addgit add <file>: right click the file and invoke Addgit commit: invoke Commit
Note
If you are encountering unexpected errors when invoking Lock or Unlock on Window, this may be caused by a strange behavior of current Git-LFS versions (2.5) which will fail when invoked with a working directory with wrong case. To workaround the problem, make sure that the path in
repositories.xmlhas correct case, especially the drive letter must be uppercase, for example:<obj type="@Repository" id="..."> <prop key="name" type="String" value="smartgit"/> <prop key="favorite" type="boolean" value="true"/> <prop key="git" type="boolean" value="true"/> <prop key="path" type="String" value="D:\\smartgit"/> <prop key="expanded" type="boolean" value="false"/> </obj>
Displaying locks
To see Git-LFS lock states in the Files views (both Log and Working
tree window), Git-LFS locks verification must be enabled for your
repositories. A corresponding .git/config might look like:
[lfs "https://server/repo.git/info/lfs"]
...
locksVerify = true
Furthermore, you have to enable property status.lfs.locks in
the Preferences, section Low-level Properties. This will make
SmartGit invoke additional commands:
git lfs locks --localgit lfs locks --remote
after every fetch for which the output will be written to:
./git/smartgit/lfs-locks-local./git/smartgit/lfs-locks-remote
Once these files are present, the Name column icon will start denoting the locking state for LFS files.
To make SmartGit also display which files are lockable, set low-level
property status.evaluateLfsLockableState. This will evaluate the
Git-LFS lockable attribute for every file during the refresh.
Example
The following screenshot shows how this display will look like:
fileis normal file to which no LFS lock information applieshugeis locked by someone elsehuge2is locked by yourselfhuge3is lockable (configured in.gitattributes)

Note
In the Log window, lock states will only be displayed for the Working Tree node.