On Fri, Jun 26, 2009 at 03:14:02PM +0100, Philip Martin wrote:
> Stefan Sperling <stsp_at_elego.de> writes:
>
> > Your solution would ultimately allow us to create just one single
> > commit from multiple working copies.
> > But we'd also have to modify the entire commit logic to deal with multiple
> > access batons (as you said everything is centered around the idea of having
> > locked a single working copy down from the root), and possibly even make
> > changes to the svn_ra API so we can do the commit in multiple transactions
> > instead of just a single one. Because, as far as I understand, support for
> > splitting a single commit up into multiple transactions exists at the
> > REPOS API level, but not at the RA API level.
>
> I haven't really thought as far as that before. I assume that once
> you opened multiple sets of access batons you would divide them up by
> repository. For each repository you look at URLs to determine where
> to root the commit editor, then do the commit in a single pass..
No, the goal is to allow commits to a single repository but
from multiple working copies.
svn commit wc1
svn commit wc2
But from C, not by writing a shell script. :)
> It's easy to drive an RA commit editor without access batons--svnmucc does
> it. You only need the access batons once the editor drive has reached
> the items that have changes. It's possible that most of the current
> code doesn't really change beyond replacing the single access baton
> set with some sort of list or map, and a bit of lookup to map commit
> item back to the right set.
OK. To understand that I'd need to dive into the code much more.
But this is really HuiHuang's project, and just getting Subversion
to run multiple commits one after the other from different working
copies is hard enough for a start.
If I was doing this myself, I'd try to get it to work "properly"
as you are suggesting. But for HuiHuang it would just be too
overwhelming right now. Maybe he'll be ready to do a commit
from multiple working copies in a single commit when WC-NG is
ready for it, too.
> > And that's much more work than I anticipated for this Summer of Code project.
> Maybe. I'm a little surprised that there is interest in doing commits
> to multiple repositories with one command. The commits are
> independent and will always be separate.
Again, they're not going to multiple repositories, they're going
to the same repository. The goal is to save the user the surprise
of getting "svn: <common root> is not a working copy" when svn
could just do a separate commit for each.
> Needing to run two commands doesn't seem like a big deal.
It's not a big deal. That's why issue #2381 has been lying around
for so long. And we're not even working on the final fix yet.
That will be in WC-NG.
Stefan
Received on 2009-06-26 16:45:38 CEST