SUMMARY OF MY PROJECT: Git submodule subcommands are currently implemented by using shell script 'git-submodule.sh'. There are several reasons why we'll prefer not to use the shell script. My project intends to convert the subcommands into C code, thus making them builtins. This will increase Git's portability and hence the efficiency of working with the git-submodule commands. Link to the complete proposal: [1] Mentors: Stefan Beller <sbeller@xxxxxxxxxx> Christian Couder <christian.couder@xxxxxxxxx> UPDATES: Following are the updates about my ongoing project: * Following patches were updated after the previous reviews: submodule subcommands: - deinit - summary - foreach * summary: the function print_submodule_summary() is split-up into two separate functions: generate_submodule_summary() and print_summary(). * porting of submodule subcommand 'add' is completed and I have started with debugging ported function. Currently, the entire function cmd_add() is ported to the function module_add() in C. Soon, its first patch will be floated here as well once debugging is completed. Its progress can be viewed at [2]. * displaypath: Last week, there was some confusion produced with the way, the value of displaypath is being generated, which led to some discussion, which is available at: [3]. PLAN FOR WEEK-13 (8 August 2017 to 14 August 2017): * patches: IMO, the patches till deinit are reviewed many times, and hence will try to get at least these patches merged. * add: As this subcommand is widely used in the test suite, there are many tests this ported function is failing at. Hence, debugging the subcommand would be another task for the next week. * deinit: A bug was identified by Stefan in the last patch-series. its details are available at: [4] Currenlty, the bug was handled by adding a NEEDSWORK tagged comment as suggest. If possible, I will also start working on debugging the issue asap. A complete build report of these series of patches is available at: [5]. Build #151 Branch: week-12 The work is pushed on Github and is available at: [6]. [1]: https://docs.google.com/document/d/1krxVLooWl--75Pot3dazhfygR3wCUUWZWzTXtK1L-xU/ [2]: https://github.com/pratham-pc/git/commits/sub-add [3]: https://public-inbox.org/git/CAME+mvXsh53kLJ4se4uKY=SJcvSbHtEZQ6K2CgAPs=1wxUxk1A@xxxxxxxxxxxxxx/ [4]: https://public-inbox.org/git/CAGZ79kbyyR54me_+wQDZRrikqKTp_a98yozVfr8P85QHfyyy=Q@xxxxxxxxxxxxxx/ [5]: https://travis-ci.org/pratham-pc/git/builds/ [6]: https://github.com/pratham-pc/git/commits/week-12 Prathamesh Chavan (13): submodule--helper: introduce get_submodule_displaypath() submodule--helper: introduce for_each_submodule_list() submodule: port set_name_rev() from shell to C submodule: port submodule subcommand 'status' from shell to C submodule: port submodule subcommand 'sync' from shell to C submodule: port submodule subcommand 'deinit' from shell to C diff: change scope of the function count_lines() submodule: port submodule subcommand 'summary' from shell to C submodule foreach: correct '$path' in nested submodules from a subdirectory submodule foreach: document '$sm_path' instead of '$path' submodule foreach: clarify the '$toplevel' variable documentation submodule foreach: document variable '$displaypath' submodule: port submodule subcommand 'foreach' from shell to C Documentation/git-submodule.txt | 15 +- builtin/submodule--helper.c | 1190 ++++++++++++++++++++++++++++++++++++++- diff.c | 2 +- diff.h | 1 + git-submodule.sh | 396 +------------ t/t7407-submodule-foreach.sh | 38 +- 6 files changed, 1222 insertions(+), 420 deletions(-) -- 2.13.0