2018-04-05 0:41 GMT+03:00 Stefan Beller <sbeller@xxxxxxxxxx>: > On Wed, Apr 4, 2018 at 1:37 PM, Eddy Petrișor <eddy.petrisor@xxxxxxxxx> wrote: > >>> you plan to later submit as one patch including both the change as well as >>> the test. >> >> Yes, I did not forget about having a single patch. Will do it once the details are ironed out. >>>>> + cd ../super5 && >>>>> + echo super_with_2_chained_modules > super5 && >>>>> + git add super5 && >>>>> + test_tick && >>>>> + git commit -m "commit on default branch in super5" && >>>>> + git submodule add ../submodl1b1 submodl1b1 && >>>>> + git config -f .gitmodules submodule."submodl1b1".branch b1 && >>>>> + git add .gitmodules && >>>>> + test_tick && >>>>> + git commit -m "add l1 module with branch b1 in super5" && >>> >>> now we do this again without the nested submodule, just one repo >>> as a submodule? >> >> My intention was to have super5 -> submodl1b1@b1 -> submodl2b2@b2 on >> the "server" side. >> But are you saying I just implemented super5 -> sbmodl1b1@master due >> to the previous master checkout in submodl1b1? > > No. I was a little confused about the code. Actually you were 100% correct. In order to link to submodl1b1@b1 I had to move the master branch checkout after the submobl2@b2 is added. Otherwise the submodule is added with the last commit on master, not the last one on b1 an b2, respectively. I suspect that in the tests, because the "server side" repos are local, the git fetch-by-sha1/cloning by hash will be done correctly, without the need of a branch hint, but the problem will still exist for servers such as github which do not support fetch-by-sha1. In case I realize that a server-side repo that doesn't support fetch-by-sha1 is needed, is there a mechanism to set that up in the test case, or do I have to rethink my approach? >>>>> + git submodule init submodl1b1 && >>>>> + git clone super5 super && >>> >>> does super exist here already? (I did not check, but IIRC >>> super and super{1-4} are there as we count upwards to >>> find a name that is ok. >> >> I created it in the first step of the test with the intention to have >> super5 as the "server" and "super" as the client clone. > > oh, ok. After using test_pause I realized 'super' is left over by some other test cases, so in my v4 (unjustifibly) long series I switch to using super_w because I was getting all sorts of issues and wanted to not interfere with the other tests. >> As a general idea for a test, does it look sane? > > Yes, I think it is a sane approach. Thanks for writing such a test! OK, thanks for the feedback. >> Do you think I should I start with a just one level of submodule with >> a non-default branch (super -> l1@b1), or it this OK? >> In my view, having 2 levels makes sure the recursive part is also >> addressed and verified. > > I totally agree. -- Eddy Petrișor