/* Set up a new adm area for PATH, with REPOS_* as the repos info, and INITIAL_REV as the starting revision. The entries file starts out marked as 'incomplete. The adm area starts out locked; remember to unlock it when done. */ static svn_error_t * init_adm(svn_wc__db_t *db, const char *local_abspath, const char *repos_relpath, const char *repos_root_url, const char *repos_uuid, svn_revnum_t initial_rev, svn_depth_t depth, apr_pool_t *pool) { /* First, make an empty administrative area. */ SVN_ERR(svn_io_dir_make_hidden(svn_wc__adm_child(local_abspath, NULL, pool), APR_OS_DEFAULT, pool)); /** Make subdirectories. ***/ /* SVN_WC__ADM_PRISTINE */ SVN_ERR(make_adm_subdir(local_abspath, SVN_WC__ADM_PRISTINE, FALSE, pool)); /* ### want to add another directory? do a format bump to ensure that ### all existing working copies get the new directories. or maybe ### create-on-demand (more expensive) */ /** Init the tmp area. ***/ SVN_ERR(init_adm_tmp_area(local_abspath, pool)); /* Create the SDB. */ SVN_ERR(svn_wc__db_init(db, local_abspath, repos_relpath, repos_root_url, repos_uuid, initial_rev, depth, pool)); /* Stamp ENTRIES and FORMAT files for old clients. */ SVN_ERR(svn_io_file_create(svn_wc__adm_child(local_abspath, SVN_WC__ADM_ENTRIES, pool), SVN_WC__NON_ENTRIES_STRING, pool)); SVN_ERR(svn_io_file_create(svn_wc__adm_child(local_abspath, SVN_WC__ADM_FORMAT, pool), SVN_WC__NON_ENTRIES_STRING, pool)); return SVN_NO_ERROR; }
static svn_error_t * make_empty_adm(const char *path, apr_pool_t *pool) { path = svn_wc__adm_child(path, NULL, pool); return svn_io_dir_make_hidden(path, APR_OS_DEFAULT, pool); }