I have a Git filter set to do some tidy actions on XML files upon "clean" (meaning when added to the staged list of files to commit). If I do a "git add myfile.xml" from the command line, the "clean" filter fires, and the file that is staged is the tidied version. However, if I stage the file via Sourcetree's UI (in a "split view staging" mode), the file gets added to the staging area without being passed through the "clean" filter's setting.
How can I get the git smudge/clean filters to fire when staging/checking out through the Sourcetree UI?
You mean the script that runs as part of the "clean" filter? The "clean" filter I have currently set to "./myscript.sh", and the script file is in the root folder of the repo itself.
I tried changing the clean filter to "/absolute/path/to/my/repo/myscript.sh", but the same symptom remains; works when doing "git add" from the command line, but not when staging within SourceTree.
Have a look at SRCTREE-3583. Sourcetree is most likely not picking up your script because it is launched as a service and will not pick up your changes to the PATH. You need to extend the PATH that your apps see, checkout http://stackoverflow.com/questions/25385934/setting-environment-variables-via-launchd-conf-no-longer-works-in-os-x-yosemite (mentioned in the issue) or search on how to extend PATH in OS X.
Supported Platforms macOS Windows To make using Sourcetree as simple yet powerful as possible we embed (bundle) dependencies such as Git, Git LFS, and Mercurial. We strive to keep these...
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs