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: * status: some of the optimization changes which were suggested earlier were reverted, as I wasn't sure it fulfilled the purpose. * sync & summary: some changes to the code were suggested after the previous review. Those changes were implemented successfully. * add: the porting of this subcommand is underway. In the function cmd_add(), the value of sm_path undergoes quite a few changes which are taken care by the sed command. I'm currently working on porting them. * foreach: as said in the previous update, the former patch [2] was spilt up into 4 patches, to get a clear picture of different changes made to submodule foreach. All of these patches are attached with this update. Also, the subcommand foreach is ported in accordance with this new changes as well. PLAN FOR WEEK-11 (25 July 2017 to 31 July 2017): * As all the patches prepared so far are posted on the mailing list, I'll focus on getting these patches merged and do the needful improvisions. * Apart from this, as stated before, the porting of submodule subcommand is underway and will try my best to finish its porting and discuss it with the mentors as well in this following week. Also, a complete build report of this work is available at [3]. Branch: week-10 Build #140 And the work has also been pushed on github. It is available at [4]. [1]: https://docs.google.com/document/d/1krxVLooWl--75Pot3dazhfygR3wCUUWZWzTXtK1L-xU/ [2]: https://public-inbox.org/git/20170603003710.5558-1-sbeller@xxxxxxxxxx/ [3]: https://travis-ci.org/pratham-pc/git/builds/ [4]: https://github.com/pratham-pc/git/commits/week-10 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 | 1165 ++++++++++++++++++++++++++++++++++++++- diff.c | 2 +- diff.h | 1 + git-submodule.sh | 394 +------------ t/t7407-submodule-foreach.sh | 38 +- 6 files changed, 1197 insertions(+), 418 deletions(-) -- 2.13.0