>Could this be as simple as adding a pointer to a working copy access baton
>to the committable structure, plus a master array of top-level working copy
>access batons (for post-commit releasing)?
 
This is what I think, too. But Hyrum say that we will just use a single 
svn_wc_context_t instead of carrying around a collection of access batons
in the future. So I had better to konw svn_wc_context_t first and then
think about how to use it in my work.
 
To Hyrum,
 
Thank you very much. Here I have a question. I find out definitions of
svn_wc_adm_access_t and svn_wc_context_t as following, obviously there
are more information in svn_wc_adm_access_t than in svn_wc_context_t.
So how can svn_wc_context_t replace svn_wc_adm_access_t?
 
By the way, would you mind to tell me where can I find public API changes 
made to libsvn_wc? Thanks~ 
 
//In libsvn_wc/lock.c
struct svn_wc_adm_access_t
{
  /* PATH to directory which contains the administrative area */
  const char *path;
  /* And the absolute form of the path.  */
  const char *abspath;
  enum svn_wc__adm_access_type {
    /* SVN_WC__ADM_ACCESS_UNLOCKED indicates no lock is held allowing
       read-only access */
    svn_wc__adm_access_unlocked,
    /* SVN_WC__ADM_ACCESS_WRITE_LOCK indicates that a write lock is held
       allowing read-write access */
    svn_wc__adm_access_write_lock,
    /* SVN_WC__ADM_ACCESS_CLOSED indicates that the baton has been
       closed. */
    svn_wc__adm_access_closed
  } type;
  /* LOCK_EXISTS is set TRUE when the write lock exists */
  svn_boolean_t lock_exists;
  /* Handle to the administrative database. */
  svn_wc__db_t *db;
  /* Was the DB provided to us? If so, then we'll never close it.  */
  svn_boolean_t db_provided;
  /* ENTRIES_HIDDEN is all cached entries including those in
     state deleted or state absent. It may be NULL. */
  apr_hash_t *entries_all;
  /* POOL is used to allocate cached items, they need to persist for the
     lifetime of this access baton */
  apr_pool_t *pool;
};
 
 
//In libsvn_wc/wc.h
/*** Context handling ***/
struct svn_wc_context_t
{
  /* The wc_db handle for this working copy. */
  svn_wc__db_t *db;
  /* The state pool for this context. */
  apr_pool_t *state_pool;
};
 
Thanks all!
 
Huihuang
 
 
2009-05-30

yellow.flying