git submodules

Support for running, installing or compiling OpenMW
User avatar
Site Admin
Posts: 1193
Joined: 05 Aug 2011, 22:21
Location: Wroclaw, Poland

git submodules

Post by lgromanowski » 15 Aug 2011, 11:58

athile wrote: I need to make some changes to mangle to get OpenMW building on Windows again. How do I properly set up my own fork of it within the OpenMW branch so that I can push the necessary OpenMW changes + mangle changes together to github?

(I did read but got lost with the added complication of the submodule - mangle in this case - being a read-only reference to a remote module. It's not clear to me how to tell "my" fork of OpenMW to use "my" fork of mangle.)
athile wrote: Ok, I think I've managed to answer my own question:

1. Fork mangle on github
2. cd openmw/libs/mangle
3. git remote add myfork [email protected]:athile/mangle.git

Then push the local changes to myfork.
athile wrote: This is only my humble opinion...

Is it really worth having openengine as a separate submodule rather than just a separate directory + CMakeList.txt within OpenMW? Maybe someday it would be true, but as far as know, openengine is still very much being developed alongside OpenMW. I thought the intended use case of submodules was to reference another repository at a specific label/tag with the expectation it would not be updated often. In this case however, it seems OpenMW wants to always be using the HEAD of it doesn't seem like a good use case for submodules.

The use of a submodule just adds more steps to contributing to this project, that's why I'm suggesting maybe it's not for the best (at this point). Perhaps this seems "lazy" on my part, but I do think we want as few barriers to entry on contributing as possible.

(And again, I am *all for* a separate static lib called "openengine" within the same repository - that makes for a clean, encapsulated architecture. I'm only against the use of a git submodule for openengine at this point.)
amos wrote: I have to agree with athile here, having everything in one repo while still treating it as a separate library. You can always extract to a separate repo later, i believe there are ways to this with filtering if you want to get the history as well.
nicolay wrote: Your arguments make good sense athile (and amos). The reason for the separate repo is simply that I'm already using openengine in another project, and changes are currently coming in from both projects. Otherwise I agree that this rises the bar (slightly) for entry, but hopefully there won't be a need to change the OE and mangle stuff all that often, so I hope we can live with that.

I do agree that new components should not be moved into the separate repositories before it's absolutely necessary though.
amos wrote: In that case I understand why they are placed in submodules. Hopefully there won't be too many changes in them.
best regards,