Search code examples
githistorygit-submodulesgit-subtree

What came first: git subtree merge strategy or git submodule?


What is more recent invention — git subtree merge strategy (not the new git-subtree command) or git submodule command (or maybe underlying mechanism if there was a separate one symmetrical to git subtree command vs. merge strategy).

What was included in Git distribution release first?

Bonus points for links to relevant Git ML posts.

I tried do dig that info from Git commit history, but got lost somewhere in 2007-2008 for both features.


Solution

  • Subtree merge seems to be a tad older:

    Introduced by Junio Hamano in Feb 2007 68faf68938ee943fc251c702f2027e4dfda354db »Add new merge stragety [sic] 'subtree'« (file git-merge.sh)

    Git submodule was introduced in May 2007 by Lars Hjemli in commit 70c7ac22de681a83621bda03e676348170c8d8a2 »Add git-submodule command« (file git-submodule.sh)

    To get the releases that first contained a certain feature, run git describe --contains on its commit. For the above commits this means v1.5.2-rc0 and v1.5.3-rc0, respectively.