You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Julian Foad <ju...@btopenworld.com> on 2008/04/04 14:43:36 UTC

Understanding the delta editor's set_target_revision()

Can anyone shed light on the meaning and purpose of "set_target_revision()" in 
the delta editor?

I'm just trying to understand this for tree-conflicts work, as it might be 
relevant for helping to detect whether the working copy being edited matches 
the merge-left source.

[[[
--- subversion/include/svn_delta.h      (revision 30178)

  typedef struct svn_delta_editor_t
  {
    /** Set the target revision for this edit to @a target_revision.  This
     * call, if used, should precede all other editor calls.
+   * ### What's a "target revision"? Why is it implicitly optional?
     */
    svn_error_t *(*set_target_revision)(void *edit_baton,
                                        svn_revnum_t target_revision,
                                        apr_pool_t *pool);

@@ -754,17 +755,19 @@ typedef struct svn_delta_editor_t

    /** We are going to make changes in a subdirectory (of the directory
     * identified by @a parent_baton). The subdirectory is specified by
     * @a path. The callback must store a value in @a *child_baton that
     * should be used as the @a parent_baton for subsequent changes in this
     * subdirectory.  If a valid revnum, @a base_revision is the current
+   * ### "current" means what?
     * revision of the subdirectory.
+   * ### ... to be used only for sanity checking (?)
     *
     * Allocations for the returned @a child_baton should be performed in
     * @a dir_pool. It is also typical to (possibly) save this pool for later
     * usage by @c close_directory.
     */
    svn_error_t *(*open_directory)(const char *path,
                                   void *parent_baton,
                                   svn_revnum_t base_revision,
]]]

Thanks for any help.

- Julian

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Understanding the delta editor's set_target_revision()

Posted by Ben Collins-Sussman <su...@red-bean.com>.
On Fri, Apr 4, 2008 at 9:57 AM, C. Michael Pilato <cm...@collab.net> wrote:
> Julian Foad wrote:
>
> > Can anyone shed light on the meaning and purpose of
> "set_target_revision()" in the delta editor?
> >
> > I'm just trying to understand this for tree-conflicts work, as it might be
> relevant for helping to detect whether the working copy being edited matches
> the merge-left source.
> >
>
>  set_target_revision() is how the server tells the client which revision it
> is transmitting as part of an update, switch, etc.  I don't think it is used
> in the client->server direction at all.

Mike is right.  It's one of the few asymmetries in the editor vtable.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Understanding the delta editor's set_target_revision()

Posted by "C. Michael Pilato" <cm...@collab.net>.
Julian Foad wrote:
> Can anyone shed light on the meaning and purpose of 
> "set_target_revision()" in the delta editor?
> 
> I'm just trying to understand this for tree-conflicts work, as it might 
> be relevant for helping to detect whether the working copy being edited 
> matches the merge-left source.

set_target_revision() is how the server tells the client which revision it 
is transmitting as part of an update, switch, etc.  I don't think it is used 
in the client->server direction at all.

-- 
C. Michael Pilato <cm...@collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand