> When a greedy library wasn't the first
> library, find_or_make_local_copy ignored it.
> With my changes, all greedy libraries are considered, and the
> greedy to be used is chosen by the criteria library_add_choice
> uses: greedies that contain the same version are preferred over
> greedies that contain the same branch, which are preferred over
> treedies that contain the same archive, but if there aren't any
> we use the first-listed greedy.
> So if you have one or more greedies, no matter where they appear
> in the path, tla changes, undo, and others will no longer
> produce pristines.
In other words, this inverts "precedence" and "greediness" in making
the library choice. It used to be that the same-version-or-branch-or
... library was picked first and then, among the qualifying libraries,
the first listed greedy one or if none of those is greedy then the
first listed. As a result, if tla wanted to auto add a revision but
the rule picked a non-greedy library, even if there was a greedy
library available, the auto-add wouldn't happen.
Now you're saying: "if _any_ greedy library is on the path then a
greedy library will be used --- then the first one listed with best
precedence".
Your proposed change makes better sense then the rule that's there.
> The practical upshot of this is that you can use your greedy to
> track head revisions, while keeping a milestone revisions
> (e.g. branch points) in a non-greedy that you can manipulate
> with library-add/remove (and no need to specify which library on
> the commandline).
Except that I don't understand that last parenthetical. If I want to
add a revision to the non-greedy milestone library I need to name that
library explicitly on the library-add command line, right?