Karl, it looks like you've already nailed the probable cause --
mixed-revision working copy as the source of the copy. While doing a
WC->URL copy, every time a file or directory's revision differs from
that of its parent, that object is transmitted as its own distinct
add-with-history operation. This is the correct behavior for WC->URL
copies, though -- not a bug.
kfogel@collab.net writes:
> I'm CC'ing dev@, because this does sound like a bug, and I don't see
> an issue filed on it.
>
> Mike Pilato, I have a vague recollection that we've talked about this
> problem before... Does it ring a bell?
>
> <Servatius.Brandt@fujitsu-siemens.com> writes:
> > When copying a working copy to an URL:
> >
> > svn copy trunk svn://host/repos/branches/B1,
> >
> > the command
> >
> > svnlook changed -t "$TXN" "$REPOS" >&2
> >
> > in the pre-commit hook shows the target directory and the files/subdirs
> > therein:
> >
> > A branches/B1/
> > A branches/B1/file
> > A branches/B1/dir
> > A branches/B1/dir/file
>
> Just to confirm: what's under trunk is a single-revision working copy,
> not a mixed-revision one, right? I.e., If you do this with a fresh,
> unmodified checkout of trunk, the behavior is the same?
>
> > But when copying the same tree specified as an URL source:
> >
> > svn copy svn://host/repos/trunk svn://host/repos/branches/B1,
> >
> > just the top directory is shown:
> >
> > A branches/B1/
> >
> > Is this intended or a bug? It makes it difficult to set up separate
> > permissions for different paths. I use svnperm.py and would like to
> > give developers the right to change existing branches, branch
> > maintainers the right to create and remove branches but not to change
> > them, and repository administrators the rights to create top directories
> > like "branches" but not to add any directories or files therein:
> >
> > branches/[^/]+/.* = @maintainers(add,remove)
> > branches/[^/]+/.+ = @developers(add,remove,update)
> > [^/]+/ = @admins(add,remove)
> >
> > The permission check for @admins denies the right for a WC->URL copy,
> > but allows an URL->URL copy of a tree into the top level directory:
> >
> > svn copy trunk svn://host/repos/B1 # denied
> > svn copy svn://host/repos/trunk svn://host/repos/B1 # allowed
>
> I think the semantics of the two operations ought to be the same, and
> that therefore this is a bug.
>
> -Karl
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue May 31 08:34:13 2005