Grant Husbands wrote:
Max Battcher <[email protected]> wrote:
Certainly one possible solution here would be to simply carry over the Hash:
lines from the darcs-2 inventory format as (optional) hints for file paths
in context files.
Indeed, this would work, as long as Darcs would also then check the
local repo for parent-inventories and patches corresponding to a
context-with-hashes that it is given. It's something that could be
done, but is an odd and unintuitive behaviour, which is the kind of
thing I'm arguing to avoid.
It wouldn't need to look up "parent-inventories" because the Hash: line
is the file/patch object name. Given a Hash: in a context darcs should
be able to quickly check _darcs/patches and then run through
_darcs/prefs/sources as it would for any other "lazy" patch, and if it
still doesn't find what is looking for it can fail much more gracefully
than it does today. I don't see anything odd or unintuitive about it,
again because this is exactly the way darcs already works in lazy repos.
In fact, this is apparently the _existing_ behavior, because the error
provided ("Can't find patch x in get_extra") is *precisely* the same
that you see in any other lazy patch lookup; I'm only suggesting
"fixing" the currently "broken" implementation to provide darcs a "last
chance" to find the patches it is looking for.
This is also a behavior that is generally useful in semi-offline
scenarios where a context file is used and the remote repository is
offline, but other local/cache repos might yield necessary patches.
My proposal in my response to Eric Lippert I do believe would be a
stronger way forward; do you disagree with it?
I disagree with it. To be perfectly clear: I am *against* branches in
darcs. I am happy with existing branch semantics. That said, I don't see
a need to deny more complex tools to those that want them and thus I
have proposed how such a tool might be built, using both existing
mechanics and otherwise generally useful/applicable changes to darcs
that aren't branch-mechanics specific (such as bringing context files up
to speed with darcs 2 mechanics as suggested above or allowing darcs to
directly use specified inventory files as context files deepening the
inventory/context equivalence as an alternative suggestion).
You have found one small complication in my proposal (that existing
context files wouldn't work for push/pull/...) and have counter-proposed
something that seems to me more complicated, less elegant and eliminates
key portions of my proposal, primarily the key that I don't think darcs
needs to, nor should know anything at all about branching.
--
--Max Battcher--
http://worldmaker.net
_______________________________________________
darcs-users mailing list
[email protected]
http://lists.osuosl.org/mailman/listinfo/darcs-users