3232#define  DELAY_PAGER_CONFIG 	(1<<4)
3333#define  NO_PARSEOPT 		(1<<5) /* parse-options is not used */ 
3434#define  BLOCK_ON_GVFS_REPO 	(1<<6) /* command not allowed in GVFS repos */ 
35+ #define  BLOCK_ON_VFS_ENABLED 	(1<<7) /* command not allowed when virtual file system is used */ 
3536
3637struct  cmd_struct  {
3738	const  char  * cmd ;
@@ -542,6 +543,9 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv, struct
542543	if  (!help  &&  p -> option  &  BLOCK_ON_GVFS_REPO  &&  gvfs_config_is_set (GVFS_BLOCK_COMMANDS ))
543544		die ("'git %s' is not supported on a GVFS repo" , p -> cmd );
544545
546+ 	if  (!help  &&  p -> option  &  BLOCK_ON_VFS_ENABLED  &&  gvfs_config_is_set (GVFS_USE_VIRTUAL_FILESYSTEM ))
547+ 		die ("'git %s' is not supported when using the virtual file system" , p -> cmd );
548+ 
545549	if  (run_pre_command_hook (the_repository , argv ))
546550		die ("pre-command hook aborted command" );
547551
@@ -626,7 +630,7 @@ static struct cmd_struct commands[] = {
626630	{ "for-each-ref" , cmd_for_each_ref , RUN_SETUP  },
627631	{ "for-each-repo" , cmd_for_each_repo , RUN_SETUP_GENTLY  },
628632	{ "format-patch" , cmd_format_patch , RUN_SETUP  },
629- 	{ "fsck" , cmd_fsck , RUN_SETUP  | BLOCK_ON_GVFS_REPO },
633+ 	{ "fsck" , cmd_fsck , RUN_SETUP  | BLOCK_ON_VFS_ENABLED   },
630634	{ "fsck-objects" , cmd_fsck , RUN_SETUP  },
631635	{ "fsmonitor--daemon" , cmd_fsmonitor__daemon , RUN_SETUP  },
632636	{ "gc" , cmd_gc , RUN_SETUP  },
@@ -669,7 +673,7 @@ static struct cmd_struct commands[] = {
669673	{ "pack-refs" , cmd_pack_refs , RUN_SETUP  },
670674	{ "patch-id" , cmd_patch_id , RUN_SETUP_GENTLY  | NO_PARSEOPT  },
671675	{ "pickaxe" , cmd_blame , RUN_SETUP  },
672- 	{ "prune" , cmd_prune , RUN_SETUP  | BLOCK_ON_GVFS_REPO },
676+ 	{ "prune" , cmd_prune , RUN_SETUP  | BLOCK_ON_VFS_ENABLED   },
673677	{ "prune-packed" , cmd_prune_packed , RUN_SETUP  },
674678	{ "pull" , cmd_pull , RUN_SETUP  | NEED_WORK_TREE  },
675679	{ "push" , cmd_push , RUN_SETUP  },
@@ -682,7 +686,7 @@ static struct cmd_struct commands[] = {
682686	{ "remote" , cmd_remote , RUN_SETUP  },
683687	{ "remote-ext" , cmd_remote_ext , NO_PARSEOPT  },
684688	{ "remote-fd" , cmd_remote_fd , NO_PARSEOPT  },
685- 	{ "repack" , cmd_repack , RUN_SETUP  | BLOCK_ON_GVFS_REPO  },
689+ 	{ "repack" , cmd_repack , RUN_SETUP  | BLOCK_ON_VFS_ENABLED  },
686690	{ "replace" , cmd_replace , RUN_SETUP  },
687691	{ "replay" , cmd_replay , RUN_SETUP  },
688692	{ "rerere" , cmd_rerere , RUN_SETUP  },
@@ -723,7 +727,7 @@ static struct cmd_struct commands[] = {
723727	{ "verify-tag" , cmd_verify_tag , RUN_SETUP  },
724728	{ "version" , cmd_version  },
725729	{ "whatchanged" , cmd_whatchanged , RUN_SETUP  },
726- 	{ "worktree" , cmd_worktree , RUN_SETUP  },
730+ 	{ "worktree" , cmd_worktree , RUN_SETUP  |  BLOCK_ON_VFS_ENABLED   },
727731	{ "write-tree" , cmd_write_tree , RUN_SETUP  },
728732};
729733
0 commit comments