diff options
author | peter <peter@FreeBSD.org> | 2013-06-18 02:07:41 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2013-06-18 02:07:41 +0000 |
commit | d25dac7fcc6acc838b71bbda8916fd9665c709ab (patch) | |
tree | 135691142dc0e75a5e5d97b5074d03436435b8e0 /subversion/libsvn_wc/tree_conflicts.h | |
download | FreeBSD-src-d25dac7fcc6acc838b71bbda8916fd9665c709ab.zip FreeBSD-src-d25dac7fcc6acc838b71bbda8916fd9665c709ab.tar.gz |
Import trimmed svn-1.8.0-rc3
Diffstat (limited to 'subversion/libsvn_wc/tree_conflicts.h')
-rw-r--r-- | subversion/libsvn_wc/tree_conflicts.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/subversion/libsvn_wc/tree_conflicts.h b/subversion/libsvn_wc/tree_conflicts.h new file mode 100644 index 0000000..68cd9f6 --- /dev/null +++ b/subversion/libsvn_wc/tree_conflicts.h @@ -0,0 +1,93 @@ +/* + * tree_conflicts.h: declarations related to tree conflicts + * + * ==================================================================== + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * ==================================================================== + */ + +#ifndef SVN_LIBSVN_WC_TREE_CONFLICTS_H +#define SVN_LIBSVN_WC_TREE_CONFLICTS_H + +#include <apr_pools.h> +#include <apr_tables.h> + +#include "svn_string.h" +#include "svn_wc.h" + +#include "private/svn_token.h" +#include "private/svn_skel.h" + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +/* + * See the notes/tree-conflicts/ directory for more information + * about tree conflicts in general. + * + * A given directory may contain potentially many tree conflicts. + * Each tree conflict is identified by the path of the file + * or directory (both a.k.a node) that it affects. + * We call this file or directory the "victim" of the tree conflict. + * + * For example, a file that is deleted by an update but locally + * modified by the user is a victim of a tree conflict. + * + * For now, tree conflict victims are always direct children of the + * directory in which the tree conflict is recorded. + * This may change once the way Subversion handles adm areas changes. + * + * If a directory has tree conflicts, the "tree-conflict-data" field + * in the entry for the directory contains one or more tree conflict + * descriptions stored using the "skel" format. + */ + + +svn_error_t * +svn_wc__serialize_conflict(svn_skel_t **skel, + const svn_wc_conflict_description2_t *conflict, + apr_pool_t *result_pool, + apr_pool_t *scratch_pool); + + +/* Parse a newly allocated svn_wc_conflict_description2_t object from the + * provided SKEL. Return the result in *CONFLICT, allocated in RESULT_POOL. + * DIR_PATH is the path to the WC directory whose conflicts are being read. + * Use SCRATCH_POOL for temporary allocations. + */ +svn_error_t * +svn_wc__deserialize_conflict(const svn_wc_conflict_description2_t **conflict, + const svn_skel_t *skel, + const char *dir_path, + apr_pool_t *result_pool, + apr_pool_t *scratch_pool); + + +/* Token mapping tables. */ +extern const svn_token_map_t svn_wc__operation_map[]; +extern const svn_token_map_t svn_wc__conflict_action_map[]; +extern const svn_token_map_t svn_wc__conflict_reason_map[]; + + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* SVN_LIBSVN_WC_TREE_CONFLICTS_H */ |