Updating the submodule references in a supermodule's tree.
for so in repo.submodules:
sn = git.objects.submodule.base.Submodule(r,rr.head.commit.binsha,name=so.name,path=so.path, mode=0o160000)
repo.index.add([sn])
(A) an explicit "mode" is required. Given that anything that's not 0o160000 is very likely to break the index file this doesn't make much sense.
(B) There really should be a method that returns a new Submodule object, either using an explicit binsha or defaulting to the submodule's current HEAD, instead of forcing the user to create one from scratch.