Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Make damn sure that git submodule sync is going to work.
#! /usr/bin/env ruby
submods =
%x{git config -f .gitmodules --get-regexp '^submodule\..*\.(path|url)$'}.lines.each do |l|
submodule, key, value = l.match(/^submodule\.(.*)\.(path|url)\s+(.*)$/)[1..3]
submods[submodule] = unless submods[submodule].is_a?(Hash)
submods[submodule][key] = value
submods.each_pair do |s,k|
%x{git submodule add #{k['url']} #{k['path']}}
%x{git submodule sync}
Copy link

diegodorado commented Mar 27, 2014

good trick!

Copy link

kdojeteri commented May 14, 2019

Thank you for this. I found myself trying to add over 20 submodules to a repo and doing it one by one would've been a pain.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment