
You can replace the action and do whatever you want e.g call an external tool Example log file This script monitors a certain folder and writes a logfile.

It can be used since Windows Vista (.NET and PowerShell is preinstalled) without any additional tools. Additionally, you can also check out GitHub's and GitKraken's takes on what is most relevant in the new release.At work we use Powershell to monitor folders. Git 2.37 includes many more changes than can be covered here, so do not miss the official release note for the full details. Interestingly, while apparently a no-brainer, this patch still required some discussion. The latest git version adopts the new C implementation as a default.Īs a final note, many developers will welcome the new git -v and git -h options, which will be interpreted as git -version and git -help respectively. The main benefit this brings in is with graphical diff programs, that may display a nicer output.Īs mentioned, git 2.37 also includes improved performance for select commands, such as git add -i, which was rewritten in C from Perl and been under testing for a while.

This allows the files to have arbitrary names, each in their own separate directory. Instead of using loose files, diffs are now generated inside a temporary directory under the same basename, using mks_tempfile_ts. This can lead to decreased performance and in extreme cases to inode starvation and performance degradation of the whole system.Ĭruft packs eliminate the need to store unreachable objects in loose files and instead consolidate them in a single packfile between successive prune operations along with a timestamp file to track grace periods.Īnother improvement in git 2.37 deals with diff temp files. Unreachable objects that have not left their grace period tend to accumulate and enlarge. Instead, those unreachable objects are stored as loose objects and stay that way until they are older than the expiration window, at which point they are removed by git-prune. Unreachable objects aren’t removed immediately, since doing so could race with an incoming push which may reference an object which is about to be deleted. To improve pruning performance, git 2.37 introduces cruft packs, aimed at reducing the chance of data races when removing unreachable objects. A Linux backend would probably use either inotify or fanotify, Hostetler says, but that work has not started yet. FSEvents on macOS and ReadDirector圜hangesW on Windows. Instead, you can now enable the built-in file monitor by using the following configuration option: git config core.fsmonitor trueĪccording to Jeff Hostetler, the author of the patches for git's new file monitor, the implementation relies mostly on cross-platform code with custom backends leveraging OS-native features, i.e.


This option was not easy to configure, though, and not frequently used. Git has supported the possibility of hooking tools like Watchman since version 2.16. This may reduce the time required to execute git status and other commands. Git's new built-in file monitor aims to improve performance when accessing the file system to detect file changes. Git 2.37 brings many new and improved features, including a built-in file system monitor on Windows and macOS, better unreachable objects management, improved external diff, faster git add, and more.
