# Suggestion to Enhance Submodule Initialization Behavior During git clone

2 messages from 2024-09-17 to 2024-09-18. Participants: Ryan Barker, Phillip Wood.
Thread: https://gitlist.dev/t/62130

## Ryan Barker, 2024-09-17 18:14

Subject: Suggestion to Enhance Submodule Initialization Behavior During git clone
Message-ID: <SA1PR06MB80085741B5856945AAED1027BB612@SA1PR06MB8008.namprd06.prod.outlook.com>
URL: https://gitlist.dev/e/SA1PR06MB80085741B5856945AAED1027BB612%40SA1PR06MB8008.namprd06.prod.outlook.com

```
Hello,
I have been working on extending GitHub Classroom's grading workflow by integrating submodules to streamline the grading process. Through this work, I have encountered limitations related to how submodules are handled when a repository is cloned.
Currently, when a user clones a Git repository with submodules, the submodules defined in the .gitmodules file are not automatically initialized in the local .git/config of the cloned repository. While I understand there may be edge cases where this behavior is desirable, it would significantly improve usability if there were an option to automatically initialize submodules during git clone. I believe this could be accomplished by adding a flag, or perhaps enabling auto-initialization by default, with an optional flag to disable it when necessary.
To mitigate this issue in my project, I created defensive scripts to ensure that submodules are initialized before interacting with them, but this was a point of confusion for many users who were unfamiliar with submodules. In my opinion, auto-initializing submodules during the clone process would be a more intuitive default behavior for most users, especially those in educational environments, like students using GitHub Classroom.
I have attached my source code for further context, and my repository can be found here: https://github.com/rcbarke/clemson-ece-2230-grading/, though it is private due to the grading scripts it contains.
I would appreciate your thoughts on this suggestion and whether this behavior could be incorporated into future Git releases.
Thank you for your time!
Best,

Ryan Barker

Graduate Assistant
IS-WiN Laboratory
M.S. Computer Engineering, Intelligent Systems, Class of 2026
B.S. Computer Engineering, Communication Systems & Networks, Class of 2016

[Logos | Clemson University, South Carolina]<https://www.clemson.edu/>



```

## Phillip Wood, 2024-09-18 10:05

Subject: Re: Suggestion to Enhance Submodule Initialization Behavior During git clone
Message-ID: <c7d85f17-d9ad-464b-8cd5-e6d214f2fd06@gmail.com>
URL: https://gitlist.dev/e/c7d85f17-d9ad-464b-8cd5-e6d214f2fd06%40gmail.com
In-Reply-To: <SA1PR06MB80085741B5856945AAED1027BB612@SA1PR06MB8008.namprd06.prod.outlook.com>

```
Hi Ryan

On 17/09/2024 19:14, Ryan Barker wrote:
> Currently, when a user clones a Git repository with submodules, the 
> submodules defined in the |.gitmodules| file are not automatically 
> initialized in the local |.git/config| of the cloned repository.

One can pass '--recurse-submodules' when cloning which will recursively 
clone the submodules used by the repository and sets 'submodule.active'.

Best Wishes

Phillip

> While I 
> understand there may be edge cases where this behavior is desirable, it 
> would significantly improve usability if there were an option to 
> automatically initialize submodules during |git clone|. I believe this 
> could be accomplished by adding a flag, or perhaps enabling 
> auto-initialization by default, with an optional flag to disable it when 
> necessary.
> To mitigate this issue in my project, I created defensive scripts to 
> ensure that submodules are initialized before interacting with them, but 
> this was a point of confusion for many users who were unfamiliar with 
> submodules. In my opinion, auto-initializing submodules during the clone 
> process would be a more intuitive default behavior for most users, 
> especially those in educational environments, like students using GitHub 
> Classroom.
> I have attached my source code for further context, and my repository 
> can be found here: https://github.com/rcbarke/clemson-ece-2230-grading/ 
> <https://github.com/rcbarke/clemson-ece-2230-grading/>, though it is 
> private due to the grading scripts it contains.
> I would appreciate your thoughts on this suggestion and whether this 
> behavior could be incorporated into future Git releases.
> Thank you for your time!
> Best,
> *
> *
> *Ryan Barker*
> *
> *
> *Graduate Assistant*
> *IS-WiN Laboratory*
> M.S. Computer Engineering, Intelligent Systems, Class of 2026
> B.S. Computer Engineering, Communication Systems & Networks, Class of 2016
> 
> Logos | Clemson University, South Carolina <https://www.clemson.edu/>
> 
> 

```
