[git] eol issues and fetchRecurseSubmodules = on-demand
Two things: 1. tools\build\v2\engine\build.bat has LF instead of CRLF for line endings, which causes bootstrap.bat (which has the right endings) to not work properly. It seems like the top level .gitattributes doesn't apply to submodules. 2. After cloning and fetching modular boost each day for a while, I finally figured that waiting an hour or so to sync could probably be improved. So I read the docs and tested adding fetchRecurseSubmodules = on-demand for each submodule in .gitsubmodules and it seems to work much faster with the same result. (It would result in differences once the submodules can change without the super-project changing, but currently, I don't think that is the case.) Perhaps it's with considering?
on Fri Aug 02 2013, Ahmed Charles
Two things:
1. tools\build\v2\engine\build.bat has LF instead of CRLF for line endings, which causes bootstrap.bat (which has the right endings) to not work properly. It seems like the top level .gitattributes doesn't apply to submodules.
No it doesn't, but the .gitattributes file is also written into all the submodules.
2. After cloning and fetching modular boost each day for a while, I finally figured that waiting an hour or so to sync could probably be improved. So I read the docs and tested adding fetchRecurseSubmodules = on-demand for each submodule in .gitsubmodules
I've never heard of .gitsubmodules. I know .gitmodules, but as far as I know that file format doesn't accept syntax like the one you're describing.
and it seems to work much faster with the same result. (It would result in differences once the submodules can change without the super-project changing, but currently, I don't think that is the case.)
Yes, that's right. The super-project gets a commit every time a submodule changes.
Perhaps it's with considering?
How or where would I change it? -- Dave Abrahams
To: boost@lists.boost.org From: dave@boostpro.com Date: Sat, 3 Aug 2013 08:49:50 -0700 Subject: Re: [boost] [git] eol issues and fetchRecurseSubmodules = on-demand
on Fri Aug 02 2013, Ahmed Charles
wrote: Two things:
1. tools\build\v2\engine\build.bat has LF instead of CRLF for line endings, which causes bootstrap.bat (which has the right endings) to not work properly. It seems like the top level .gitattributes doesn't apply to submodules.
No it doesn't, but the .gitattributes file is also written into all the submodules.
Does this file have the right file endings for anyone else? (Is it my config or a general problem.)
2. After cloning and fetching modular boost each day for a while, I finally figured that waiting an hour or so to sync could probably be improved. So I read the docs and tested adding fetchRecurseSubmodules = on-demand for each submodule in .gitsubmodules
I've never heard of .gitsubmodules. I know .gitmodules, but as far as I know that file format doesn't accept syntax like the one you're describing.
I meant .gitmodules (typo on my part). The docs are: http://git-scm.com/docs/gitmodules.html Search for fetchRecurseSubmodules
and it seems to work much faster with the same result. (It would result in differences once the submodules can change without the super-project changing, but currently, I don't think that is the case.)
Yes, that's right. The super-project gets a commit every time a submodule changes.
Perhaps it's with considering?
How or where would I change it?
Each subsection of .gitmodules would look like: [submodule "smart_ptr"] path = libs/smart_ptr url = http://github.com/boostorg/smart_ptr.git fetchRecurseSubmodules = on-demand
-- Dave Abrahams
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
on Sun Aug 04 2013, Ahmed Charles
Each subsection of .gitmodules would look like:
[submodule "smart_ptr"] path = libs/smart_ptr url = http://github.com/boostorg/smart_ptr.git fetchRecurseSubmodules = on-demand
But I don't see why that should make any difference whatsoever. There are no sub-submodules. At least, not yet. What am I missing? -- Dave Abrahams
Each subsection of .gitmodules would look like:
[submodule "smart_ptr"] path = libs/smart_ptr url = http://github.com/boostorg/smart_ptr.git fetchRecurseSubmodules = on-demand
But I don't see why that should make any difference whatsoever. There are no sub-submodules. At least, not yet.
What am I missing?
The docs say: This option can be used to control recursive fetching of this submodule. If this option is also present in the submodules entry in .git/config of the superproject, the setting there will override the one found in .gitmodules. Both settings can be overridden on the command line by using the "--[no-]recurse-submodules" option to "git fetch" and "git pull". The docs for "git fetch --recurse-submodules[=yes|on-demand|no]" says: This option controls if and under what conditions new commits of populated submodules should be fetched too. It can be used as a boolean option to completely disable recursion when set to no or to unconditionally recurse into all populated submodules when set to yes, which is the default when this option is used without any value. Use on-demand to only recurse into a populated submodule when the superproject retrieves a commit that updates the submodule's reference to a commit that isn't already in the local submodule clone. Basically, what you are missing is that the setting applies to the submodule whose section it appears in and not submodules of that submodule.
-- Dave Abrahams
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
on Mon Aug 05 2013, Ahmed Charles
Each subsection of .gitmodules would look like:
[submodule "smart_ptr"] path = libs/smart_ptr url = http://github.com/boostorg/smart_ptr.git fetchRecurseSubmodules = on-demand
But I don't see why that should make any difference whatsoever. There are no sub-submodules. At least, not yet.
What am I missing?
The docs say: This option can be used to control recursive fetching of this submodule. If this option is also present in the submodules entry in .git/config of the superproject, the setting there will override the one found in .gitmodules. Both settings can be overridden on the command line by using the "--[no-]recurse-submodules" option to "git fetch" and "git pull".
The docs for "git fetch --recurse-submodules[=yes|on-demand|no]" says:
This option controls if and under what conditions new commits of populated submodules should be fetched too. It can be used as a boolean option to completely disable recursion when set to no or to unconditionally recurse into all populated submodules when set to yes, which is the default when this option is used without any value. Use on-demand to only recurse into a populated submodule when the superproject retrieves a commit that updates the submodule's reference to a commit that isn't already in the local submodule clone.
Oh, yeah; on-demand is clearly what we want!
Basically, what you are missing is that the setting applies to the submodule whose section it appears in and not submodules of that submodule.
Gotcha. Should be an easy fix. OK, done (https://github.com/ryppl/Boost2Git/commit/2d6fe0505ca54c8931fda7c1c87ee246a6...). -- Dave Abrahams
participants (2)
-
Ahmed Charles
-
Dave Abrahams