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

Reply via email to