Skip to contentSkip to conversation

fsmonitor--daemon: on macOS support symlink

PATCH In review srz_zumix via GitGitGadget 3 participants 3 messages Nov 8, 2022 – Nov 15, 2022

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fsmonitor--daemon: on macOS support symlink

From: srz_zumix <[email protected]>

Resolves a problem where symbolic links were not showing up in diff when created or modified.

kFSEventStreamEventFlagItemIsSymlink is also treated as a file update. This is because kFSEventStreamEventFlagItemIsFile is not included in FSEvents when creating or deleting symbolic links. For example:

$ ln -snf t test
  fsevent: '/path/to/dir/test', flags=0x40100 ItemCreated|ItemIsSymlink|
$ ln -snf ci test
  fsevent: '/path/to/dir/test', flags=0x40200 ItemIsSymlink|ItemRemoved|
  fsevent: '/path/to/dir/test', flags=0x40100 ItemCreated|ItemIsSymlink|

---
fsmonitor--daemon: on macOS support symlink

Resolves a problem where symbolic links were not showing up in diff when created or modified. (on macOS with git config core.fsmonitor=true)

Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1406%2Fsrz-zumix%2Ffeature%2Fdarwin_symlink-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1406/srz-zumix/feature/darwin_symlink-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/1406

 compat/fsmonitor/fsm-listen-darwin.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
compat/fsmonitor/fsm-listen-darwin.c +1 -1
index daeee4e465c..cc9af1e3cb3 100644
@@ -336,7 +336,7 @@ static void fsevent_callback(ConstFSEventStreamRef streamRef,
 			 * know how much to invalidate/refresh.
 			 */
 
-			if (event_flags[k] & kFSEventStreamEventFlagItemIsFile) {
+			if (event_flags[k] & (kFSEventStreamEventFlagItemIsFile | kFSEventStreamEventFlagItemIsSymlink)) {
 				const char *rel = path_k +
 					state->path_worktree_watch.len + 1;
 

base-commit: 3b08839926fcc7cc48cf4c759737c1a71af430c1

Signature · 1 line
gitgitgadget
#1 lore raw
Quoted 4 lines · srz_zumix via GitGitGadget

From: srz_zumix <[email protected]>

Resolves a problem where symbolic links were not showing up in diff when created or modified.

Looks reasonable to me. Adding Jeff Hostetler (cc'd) as a possible reviewer.

Thanks,
Taylor

#2 lore raw
Quoted 11 lines · Taylor Blau
Quoted 4 lines · srz_zumix via GitGitGadget

From: srz_zumix <[email protected]>

Resolves a problem where symbolic links were not showing up in diff when created or modified.

Looks reasonable to me. Adding Jeff Hostetler (cc'd) as a possible reviewer.

Thanks,
Taylor

This looks good to me too. Thanks!