Skip to content

v1.1.1 bugfix

Compare
Choose a tag to compare
@billsacks billsacks released this 10 Apr 18:50
· 178 commits to main since this release
6923119

Rework two aspects of the logic for git repositories; both of these can
change behavior in some cases when printing status:

  1. Determining whether the local checkout is in-sync with the expected
    reference from the configuration file: Now we always convert the
    expected reference to a hash and compare that with the
    currently-checked-out hash. Previously, we sometimes did the
    comparison using names, e.g., just ensuring that you're on the right
    branch.

  2. Determining the current ref name (e.g., the branch or tag currently
    checked out). Now we use a number of plumbing commands rather than
    relying on regex parsing of 'git branch -vv'. The previous regex
    parsing was fragile and hard to maintain, and was the source of a
    number of bugs. In addition, differences between git v. 1 and git
    v. 2 meant that the result was incorrect in some cases -
    particularly, in the case where we have "detached from foo" (which is
    the text that always appeared for a detached head in v 1, but in v 2
    means we are no longer at foo).

This results in some subtle changes to status output. One particular
change is: If we're on a tracking branch, checkout_externals -S -v
will show the name of the local branch rather than the tracked
branch. (This is more accurate, because we may not actually be at the
head of the tracking branch.)

Also some other minor changes to documentation and running code coverage.