1251881Speter/* 2251881Speter * revision_status.c: report the revision range and status of a working copy 3251881Speter * 4251881Speter * ==================================================================== 5251881Speter * Licensed to the Apache Software Foundation (ASF) under one 6251881Speter * or more contributor license agreements. See the NOTICE file 7251881Speter * distributed with this work for additional information 8251881Speter * regarding copyright ownership. The ASF licenses this file 9251881Speter * to you under the Apache License, Version 2.0 (the 10251881Speter * "License"); you may not use this file except in compliance 11251881Speter * with the License. You may obtain a copy of the License at 12251881Speter * 13251881Speter * http://www.apache.org/licenses/LICENSE-2.0 14251881Speter * 15251881Speter * Unless required by applicable law or agreed to in writing, 16251881Speter * software distributed under the License is distributed on an 17251881Speter * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18251881Speter * KIND, either express or implied. See the License for the 19251881Speter * specific language governing permissions and limitations 20251881Speter * under the License. 21251881Speter * ==================================================================== 22251881Speter */ 23251881Speter 24251881Speter#include "svn_wc.h" 25251881Speter#include "svn_dirent_uri.h" 26251881Speter#include "wc_db.h" 27251881Speter#include "wc.h" 28251881Speter#include "props.h" 29251881Speter 30251881Speter#include "private/svn_wc_private.h" 31251881Speter 32251881Speter#include "svn_private_config.h" 33251881Speter 34251881Spetersvn_error_t * 35251881Spetersvn_wc_revision_status2(svn_wc_revision_status_t **result_p, 36251881Speter svn_wc_context_t *wc_ctx, 37251881Speter const char *local_abspath, 38251881Speter const char *trail_url, 39251881Speter svn_boolean_t committed, 40251881Speter svn_cancel_func_t cancel_func, 41251881Speter void *cancel_baton, 42251881Speter apr_pool_t *result_pool, 43251881Speter apr_pool_t *scratch_pool) 44251881Speter{ 45251881Speter svn_wc_revision_status_t *result = apr_pcalloc(result_pool, sizeof(*result)); 46251881Speter 47251881Speter *result_p = result; 48251881Speter 49251881Speter SVN_ERR_ASSERT(svn_dirent_is_absolute(local_abspath)); 50251881Speter 51251881Speter /* set result as nil */ 52251881Speter result->min_rev = SVN_INVALID_REVNUM; 53251881Speter result->max_rev = SVN_INVALID_REVNUM; 54251881Speter result->switched = FALSE; 55251881Speter result->modified = FALSE; 56251881Speter result->sparse_checkout = FALSE; 57251881Speter 58251881Speter SVN_ERR(svn_wc__db_revision_status(&result->min_rev, &result->max_rev, 59251881Speter &result->sparse_checkout, 60251881Speter &result->modified, 61251881Speter &result->switched, 62251881Speter wc_ctx->db, local_abspath, trail_url, 63289180Speter committed, 64251881Speter scratch_pool)); 65251881Speter 66289180Speter if (!result->modified) 67289180Speter SVN_ERR(svn_wc__node_has_local_mods(&result->modified, NULL, 68289180Speter wc_ctx->db, local_abspath, TRUE, 69289180Speter cancel_func, cancel_baton, 70289180Speter scratch_pool)); 71289180Speter 72251881Speter return SVN_NO_ERROR; 73251881Speter} 74