On 11/29/2010 11:45 AM, Ludwig, Michael wrote:

I'd like to be able to see the future too - but
unfortunately, neither subversion nor I can do that.

   From the user's perspective, it's most definitely not the
  future he's asking Subversion to show, but the past.

Yes he is, because he is identifying the peg rev but wants the
log to give the history of HEAD which is in the future as far as
anything that could have been written at the time of that rev,
and in fact is a place where the item doesn't exist.

I can see that from the peg rev point of view, HEAD is the future.
But I think we can also agree that from the SVN user's perspective,
every single existing rev including HEAD is in the past.

Yes, but from the perspective of getting history where you can only go backwards, you have to specify the right starting point, and a rev where the thing doesn't exist isn't the right place.

Yes, there could be several items - several revision ranges - in
the index, pointing to several unrelated objects. But is it a big
problem?

Yes, if you are in the habit of deleting things and adding them back, then wanting one of the deleted versions.

In database speak, we'd indeed have a compound key for *uniquely*
identifying an object, with the first part of that compound key
being the URL, and the second part the revision. But if we don't
know the revision, we simply use the URL alone and receive a list
of all the items ever to have appeared at that URL. Which ones
we're interested in is then a matter of human decision; but gone
is the tedium (or wasteful scanning) of establishing the list in
the first place.

That's a reasonable thing to want, but perhaps not reasonable for the server to deliver. Would you expect your database to find things for you if you renamed or deleted the table holding them?

A thing with the same name added later as a replacement may have
nothing in common with the item you want. I'm not sure what the
right test for this would be other than asking for a log with a
rev range and a peg rev to anchor it to one specific version.

Give me a listing of the things and either require me to specify
which one I want or show them all in full detail, depending on the
circumstances. In the special case where there is only one item in
the list, no further precision is needed.

It's a big order to make that happen through a client-server connection that has no such existing concept and no server side hints to do it efficiently. Maybe the log facility could have another symbolic token to replace HEAD that would mean you wanted it to find the end-of-the-line for the item if it was deleted. I'd be more inclined to want a separate full-text index and search facility instead of building that into the repository, though. It would be nice if someone could build a free version, perhaps using riaksearch as the underlying tool so the exploded index could be distributed over multiple machines.

--
   Les Mikesell
     lesmikes...@gmail.com

Reply via email to