2
* adm_ops.h : side-effecting wc adm information
3
* (This code doesn't know where any adm information is
4
* located. The caller always passes in a path obtained
5
* by using the adm_files.h API.)
8
* ====================================================================
9
* Copyright (c) 2000-2004 CollabNet. All rights reserved.
11
* This software is licensed as described in the file COPYING, which
12
* you should have received as part of this distribution. The terms
13
* are also available at http://subversion.tigris.org/license-1.html.
14
* If newer versions of this license are posted there, you may use a
15
* newer version instead, at your option.
17
* This software consists of voluntary contributions made by many
18
* individuals. For exact contribution history, see the revision
19
* history and logs, available at http://subversion.tigris.org/.
20
* ====================================================================
24
#ifndef SVN_LIBSVN_WC_ADM_OPS_H
25
#define SVN_LIBSVN_WC_ADM_OPS_H
27
#include <apr_pools.h>
28
#include "svn_types.h"
32
#endif /* __cplusplus */
35
/* Modify the entry of working copy PATH, presumably after an update
36
completes. If PATH doesn't exist, this routine does nothing.
37
ADM_ACCESS must be an access baton for PATH (assuming it existed).
39
Set the entry's 'url' and 'working revision' fields to BASE_URL and
40
NEW_REVISION. If BASE_URL is null, the url field is untouched; if
41
NEW_REVISION in invalid, the working revision field is untouched.
42
The modifications are mutually exclusive.
44
If REPOS is non-NULL, set the repository root of the entry to REPOS, but
45
only if REPOS is an ancestor of the entries URL (after possibly modifying
46
it). IN addition to that requirement, if the PATH refers to a directory,
47
the repository root is only set if REPOS is an ancestor of the URLs all
48
file entries which don't already have a repository root set. This prevents
49
the entries file from being corrupted by this operation.
51
If PATH is a directory, then, walk entries below PATH according to
54
If DEPTH is svn_depth_infinity, perform the following actions on
55
every entry below PATH; if svn_depth_immediates, svn_depth_files,
56
or svn_depth_empty, perform them only on PATH.
58
If NEW_REVISION is valid, then tweak every entry to have this new
59
working revision (excluding files that are scheduled for addition
60
or replacement.) Likewise, if BASE_URL is non-null, then rewrite
61
all urls to be "telescoping" children of the base_url.
63
If REMOVE_MISSING_DIRS is TRUE, then delete the entries for any
64
missing directories. If NOTIFY_FUNC is non-null, invoke it with
65
NOTIFY_BATON for each missing entry deleted.
67
EXCLUDE_PATHS is a hash containing const char * pathnames. Entries
68
for pathnames contained in EXCLUDE_PATHS are not touched by this
71
svn_error_t *svn_wc__do_update_cleanup(const char *path,
72
svn_wc_adm_access_t *adm_access,
76
svn_revnum_t new_revision,
77
svn_wc_notify_func2_t notify_func,
79
svn_boolean_t remove_missing_dirs,
80
apr_hash_t *exclude_paths,
86
#endif /* __cplusplus */
88
#endif /* SVN_LIBSVN_WC_ADM_OPS_H */