There was no real need to delineate between Lock and LockWithImports.
The old Lock had the InputsDigest concept, which was even less feasible
for theoretical implementations of Lock to have, so this can't possibly
be more harmful.
Tests are now almost completely working, after updating all the outputs
to the new lock format. There is also an assortment of other fixes in
here, mostly related to fixing nil pointer panics, that were uncovered
by fixing up these tests.
Add output to all of the information we assemble when checking if the
Lock satisfies the current input set.
Also some refactoring of the ctx.LoadProject() process to have fewer
partial states.
This encompasses the first pass at the new, more abstracted diffing
system, and the DeltaWriter implementation on top of it. Tests are
needed, but cursory testing indicates that we successfully capture all
types of diffs and regenerate only the subset of projects that actually
need to be touched.
This is a start at isolating verification logic into a discrete package.
Not sure how far we'll be able to make this go without creating some
import loops.
This is the first step towards being able to a more expansive type - one
that carries the pruning and digest information - directly within the
existing Lock interface.
This should fix test failures that were being caused by golang/go#24570,
which caused test binaries to be built even when there are no test
files. The poor interaction there arose from the setting of flags in our
init() function, it seems.
All of these results were quite incidental, a product of using test
repositories with dense placement of tags/branches on the same revisions
in a way that is highly unrealistic.
This is potentially useful when working on projects that aren't compiled
by the standard toolchain (e.g., by Bazel), and thus don't need to live
within a GOPATH.
It also comports with the upcoming changes to do away with GOPATH.
This fixes 2 classes of bugs:
- running unit tests as part of a git rebase invocation
- running dep from a repository that has a separate GIT_DIR/GIT_WORK_TREE
This allows integration tests to run during git rebase operations.
Without this, GIT_DIR points to the dep repo itself, which makes git checkout
operations fail miserably.
There is no reason to run go env at variable expansion time, run it at
initialization time instead.
Also remove extra quoting for SHELL, as those are kept verbatim in the $(shell)
calls, which can lead to the attempted execution of a "/bin/bash" process
depending on the system, leading to errors like:
make: "/bin/bash": Command not found