Skip to content
  • Craig Scott's avatar
    ExternalProject: Improve robustness of update step · ac6a4d48
    Craig Scott authored and Brad King's avatar Brad King committed
    Refactor the update logic to make it easier to follow. The following
    fixes/improvements are some consequences of this change:
    
    * Absorb a confusing git checkout failure message when the failure
      is allowed and we act on that failure appropriately.
    * Fix an unnecessary fetch in some scenarios when checking out a
      git hash we already have locally.
    * Stash and restore any local changes even when not rebasing.
    * Avoid unsafe rebasing where we are not on a branch that is
      already tracking the requested branch.
    * When fetching, use --tags --force to ensure we get all the tags
      and commits leading up to them regardless of whether the tags
      are on branches or not. Also update our local tags if they move
      on the remote.
    
    Fixes: #20677
    ac6a4d48