Opened 6 years ago

Closed 2 years ago

#2155 closed enhancement (fixed)

Change git submodule handling in incremental builds

Reported by: Tobi Owned by:
Priority: major Milestone: 0.9.+
Version: master Keywords: git, sprint
Cc:

Description (last modified by dustin)

Currently, master-side git source step does only "git submodule update --recursive" if submodules=True.

Thus:

  • If upstream adds a new submodule, it won't be visible to the slaves before they perform a full/clobber build. As far as I know, there is no way to trigger a full/clobber build in an incremental builder remotely: someone needs to go on the slave machine and remove the build directory.
  • If the fetch URL of a submodule changes, the slave won't be able to update it anymore. This is uncommon, but may happen nevertheless (e.g., if someone who's submodule you have added changes his github username ;-)).

So I suggest to add always the "--init" argument to "git submodule update", so that new submodules get picked up. This will solve the first point.

The second point can be fixed by running "git submodule sync" before "git submodule update".

Change History (7)

comment:1 Changed 6 years ago by Tobi

  • Version changed from 0.8.5 to master

comment:2 Changed 6 years ago by dustin

  • Keywords submodules removed
  • Milestone changed from undecided to 0.8.6

These bugs are great points about master-side git. Do you think you'll have a chance to fix/implement any of them?

comment:3 Changed 4 years ago by dustin

  • Keywords sprint added

comment:4 Changed 3 years ago by dustin

  • Milestone changed from 0.8.+ to 0.9.+

Ticket retargeted after milestone closed

comment:5 Changed 3 years ago by debben

The --init option looks to have been added in commit fdeaae1. There's a note of it in the v0.8.9 release notes, but it doesn't link to this ticket. Is the submodule sync all that's needed then to close this out?

comment:7 Changed 2 years ago by dustin

  • Description modified (diff)
  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.