[darcs-users] Getting a full diff for pulled patches

Alexander Staubo alex at purefiction.net
Thu Jul 26 02:17:25 UTC 2007


On 7/26/07, David Roundy <droundy at darcs.net> wrote:
> On Thu, Jul 26, 2007 at 02:32:22AM +0200, Alexander Staubo wrote:
> > I didn't know this. All right, good point, though there's the
> > additional snag: You cannot "get" from a partial repo -- you get this
> > obscure error ("openBinaryFile: does not exist"), and you have to add
> > --partial. So while performance on full repos might be fine, partial
> > repos would be horrible.
>
> Hmmm.  This should be fixed.  There shouldn't be (in the sense that there's
> no fundamental problem with the idea) any trouble with fast local gets from
> a partial repository (which would result in a second partial repo).

I agree. (The worst part really is the error message.) The bug entry
for this issue has been open since January:
http://bugs.darcs.net/issue392.

> > What would have really helped is if "annotate" could support the
> > --repo argument for remote repos. Then I could trivially reconstruct
> > the ancestor file for both pulls and pushes, and it would all be using
> > Darcs itself instead of my home-brewed patch reconstruction logic,
> > improving future compatibility and reducing the possibility of
> > unforeseen edge cases.
>
> Indeed, and this would be nice to add, but could be disastrously less
> efficient on remote repositories, since we quite likely don't have access
> to the pristine cache.  On the other hand, we already support operation in
> the absence of a pristine cache, it's just slow.

By pristine cache, do you mean _darcs/pristine? Why can't Darcs access
the remote repo's pristine files -- is it not a case of scping/catting
it?

Sounds like the absence of the pristine cache means it would be slow
to reconstruct the file from scratch, but not terribly so -- mostly
gunzipping the history of patches and applying them in-memory, which
can all be done server-side, or does Darcs transfer all remote files
locally to operate on them?

> And I'd like to have a "darcs query cat" subcommand that just dumps the
> contents of a file, much like annotate, but a more focussed command, and
> that doesn't add the annotations (which would make it faster).

That would be great. Do you think any of this would be implemented in
the immediate future, or are we talking 6+ months down the road?
(Personally I have no time to crack open the Haskell tutorials -- too
busy getting Objective-C under my skin.)

Alexander.



More information about the darcs-users mailing list