Stefan Sperling <s...@elego.de> writes:

>   + svn cp nested-copy/trunk/gamma nested-copy/trunk/gamma.copied
>   A         nested-copy/trunk/gamma.copied
>   + svn mv nested-copy/trunk/gamma.copied/delta 
> nested-copy/trunk/gamma.copied/delta.copied
>   A         nested-copy/trunk/gamma.copied/delta.copied
>   D         nested-copy/trunk/gamma.copied/delta
>   + svn commit -m this commit breaks the WC nested-copy/trunk
>   Adding         nested-copy/trunk/gamma.copied
>   Deleting       nested-copy/trunk/gamma.copied/delta
>   Adding         nested-copy/trunk/gamma.copied/delta.copied
>   subversion/svn/commit-cmd.c:142: (apr_err=200000)
>   subversion/libsvn_client/commit.c:861: (apr_err=200000)
>   svn: Commit succeeded, but other errors follow:
>   subversion/libsvn_client/commit.c:879: (apr_err=155010)
>   svn: Error bumping revisions post-commit (details follow):
>   subversion/libsvn_wc/adm_ops.c:769: (apr_err=155010)
>   subversion/libsvn_wc/workqueue.c:1726: (apr_err=155010)
>   subversion/libsvn_wc/workqueue.c:936: (apr_err=155010)
>   subversion/libsvn_wc/wc_db.c:4289: (apr_err=155010)
>   subversion/libsvn_wc/wc_db.c:593: (apr_err=155010)
>   svn: The node 'delta' was not found.

workqueue.c:run_deletion_postcommit calls svn_wc__db_scan_base_repos
assuming that the deleted file has a base_node entry, but it doesn't
because it was copied.  It looks like svn_wc__node_get_repos_info
instead of svn_wc__db_scan_base_repos would do the right thing except
that svn_wc__node_get_repos_info needs two changes:

- it needs to return repos_relpath, that's easy

- it needs to accept svn_wc__db_t * instead of svn_wc_context_t *,
  that's tricky.  It's possible since the svn_wc__db_t is the only bit
  of the context that gets used, but it doesn't match the interface
  of all the other node functions.

I've hacked up a local copy of the function with these changes and the
commit works.

-- 
Philip

Reply via email to