Skip to content
  • Stefan Beller's avatar
    submodule: rewrite `module_list` shell function in C · 74703a1e
    Stefan Beller authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Most of the submodule operations work on a set of submodules.
    Calculating and using this set is usually done via:
    
           module_list "$@" | {
               while read mode sha1 stage sm_path
               do
                    # the actual operation
               done
           }
    
    Currently the function `module_list` is implemented in the
    git-submodule.sh as a shell script wrapping a perl script.
    The rewrite is in C, such that it is faster and can later be
    easily adapted when other functions are rewritten in C.
    
    git-submodule.sh, similar to the builtin commands, will navigate
    to the top-most directory of the repository and keep the
    subdirectory as a variable. As the helper is called from
    within the git-submodule.sh script, we are already navigated
    to the root level, but the path arguments are still relative
    to the subdirectory we were in when calling git-submodule.sh.
    That's why there is a `--prefix` option pointing to an alternative
    path which to anchor relative path arguments.
    
    Signed-off-by: default avatarStefan Beller <sbeller@google.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    74703a1e