/* * 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 #include #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 */