| Index: gclient_scm.py | 
| =================================================================== | 
| --- gclient_scm.py	(revision 188768) | 
| +++ gclient_scm.py	(working copy) | 
| @@ -202,6 +202,7 @@ | 
| cmd = ['git', 'submodule', '--quiet', 'foreach', ' '.join(submod_cmd)] | 
| cmd2 = ['git', 'config', 'diff.ignoreSubmodules', 'all'] | 
| cmd3 = ['git', 'config', 'branch.autosetupmerge'] | 
| +    cmd4 = ['git', 'config', 'fetch.recurseSubmodules', 'true'] | 
| kwargs = {'cwd': self.checkout_path, | 
| 'print_stdout': False, | 
| 'filter_fn': lambda x: None} | 
| @@ -217,6 +218,8 @@ | 
| except subprocess2.CalledProcessError: | 
| gclient_utils.CheckCallAndFilter(cmd3 + ['always'], **kwargs) | 
|  | 
| +    gclient_utils.CheckCallAndFilter(cmd4, **kwargs) | 
| + | 
| def update(self, options, args, file_list): | 
| """Runs git to update or transparently checkout the working copy. | 
|  | 
| @@ -656,6 +659,7 @@ | 
| if options.verbose: | 
| clone_cmd.append('--verbose') | 
| clone_cmd.extend([url, self.checkout_path]) | 
| +    clone_cmd.append('--recursive') | 
|  | 
| # If the parent directory does not exist, Git clone on Windows will not | 
| # create it, so we need to do it manually. | 
|  |