@@ -1860,6 +1860,29 @@ static int check_name(int argc, const char **argv, const char *prefix)
1860
1860
return 0 ;
1861
1861
}
1862
1862
1863
+ static int connect_gitdir_workingtree (int argc , const char * * argv , const char * prefix )
1864
+ {
1865
+ struct strbuf sb = STRBUF_INIT ;
1866
+ const char * name , * path ;
1867
+ char * sm_gitdir ;
1868
+
1869
+ if (argc != 3 )
1870
+ BUG ("submodule--helper connect-gitdir-workingtree <name> <path>" );
1871
+
1872
+ name = argv [1 ];
1873
+ path = argv [2 ];
1874
+
1875
+ strbuf_addf (& sb , "%s/modules/%s" , get_git_dir (), name );
1876
+ sm_gitdir = absolute_pathdup (sb .buf );
1877
+
1878
+ connect_work_tree_and_git_dir (path , sm_gitdir , 0 );
1879
+
1880
+ strbuf_release (& sb );
1881
+ free (sm_gitdir );
1882
+
1883
+ return 0 ;
1884
+ }
1885
+
1863
1886
#define SUPPORT_SUPER_PREFIX (1<<0)
1864
1887
1865
1888
struct cmd_struct {
@@ -1873,6 +1896,7 @@ static struct cmd_struct commands[] = {
1873
1896
{"name" , module_name , 0 },
1874
1897
{"clone" , module_clone , 0 },
1875
1898
{"update-clone" , update_clone , 0 },
1899
+ {"connect-gitdir-workingtree" , connect_gitdir_workingtree , 0 },
1876
1900
{"relative-path" , resolve_relative_path , 0 },
1877
1901
{"resolve-relative-url" , resolve_relative_url , 0 },
1878
1902
{"resolve-relative-url-test" , resolve_relative_url_test , 0 },
0 commit comments