Pull-submodules.py different options behaviour

This is a thread to discuss and define the behaviour of different new options available recently to pull-submodules.py.

This is my present understanding:

  • –clean option: It will bring the local repository to the original “git clone” state with submodules pointing to the official references. This option is the same as executing: source clean-state.sh. It will wash out all local modifications and submodules, but it will not destroy local commits that are not yet at the remote.

  • –force: It is probably the same as clean but it does not affect modifications at the framework. Only places submodules at their official reference.

  • –latest: It places the reference of each submodule to the latest development commit at master.

  • –lfna: It pulls the projects hosted at LFNA.

  • –sjtu: It pulls the projects hosted at SJTU.

Question to @nkx:

  • --latest and --lfna option can be combined? If not, when pulling --lfna or --sjtu projects, they are always at the reference official commit and we need to pull manually the submodule?
  • Or do the latest and force apply to lfna and github submodules if they were initialized previously?

I noticed that when using lfna I pull both, github and lfna repositories. Would not be better to only pull lfna related repositories when I specify --lfna?

yes, they can be combined. If only add --lfna, we pull the official commit.

If there are no local modifications, we don’t need to add --force option.