Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Make damn sure that git submodule sync is going to work.
#! /usr/bin/env ruby
submods = Hash.new
%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] = Hash.new unless submods[submodule].is_a?(Hash)
submods[submodule][key] = value
end
submods.each_pair do |s,k|
%x{git submodule add #{k['url']} #{k['path']}}
end
%x{git submodule sync}
@diegodorado

This comment has been minimized.

Copy link

commented Mar 27, 2014

good trick!

@Peping

This comment has been minimized.

Copy link

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
You can’t perform that action at this time.