📄 cl.h
字号:
/*
* cl.h: shared stuff in the command line program
*
* ====================================================================
* Copyright (c) 2000-2004 CollabNet. All rights reserved.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://subversion.tigris.org/license-1.html.
* If newer versions of this license are posted there, you may use a
* newer version instead, at your option.
*
* This software consists of voluntary contributions made by many
* individuals. For exact contribution history, see the revision
* history and logs, available at http://subversion.tigris.org/.
* ====================================================================
*/
/* ==================================================================== */
#ifndef SVN_CL_H
#define SVN_CL_H
/*** Includes. ***/
#include <apr_tables.h>
#include <apr_getopt.h>
#include "svn_wc.h"
#include "svn_client.h"
#include "svn_string.h"
#include "svn_opt.h"
#include "svn_auth.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/*** Option processing ***/
/* Add an identifier here for long options that don't have a short
option. Options that have both long and short options should just
use the short option letter as identifier. */
typedef enum {
svn_cl__ancestor_path_opt = SVN_OPT_FIRST_LONGOPT_ID,
svn_cl__auth_password_opt,
svn_cl__auth_username_opt,
svn_cl__autoprops_opt,
svn_cl__config_dir_opt,
svn_cl__diff_cmd_opt,
svn_cl__dry_run_opt,
svn_cl__editor_cmd_opt,
svn_cl__encoding_opt,
svn_cl__force_log_opt,
svn_cl__force_opt,
svn_cl__ignore_ancestry_opt,
svn_cl__incremental_opt,
svn_cl__merge_cmd_opt,
svn_cl__native_eol_opt,
svn_cl__new_cmd_opt,
svn_cl__no_auth_cache_opt,
svn_cl__no_autoprops_opt,
svn_cl__no_diff_deleted,
svn_cl__no_ignore_opt,
svn_cl__non_interactive_opt,
svn_cl__notice_ancestry_opt,
svn_cl__old_cmd_opt,
svn_cl__relocate_opt,
svn_cl__revprop_opt,
svn_cl__stop_on_copy_opt,
svn_cl__strict_opt,
svn_cl__targets_opt,
svn_cl__version_opt,
svn_cl__xml_opt
} svn_cl__longopt_t;
/*** Command dispatch. ***/
/* Hold results of option processing that are shared by multiple
commands. */
typedef struct svn_cl__opt_state_t
{
/* These get set as a result of revisions or dates being specified.
When only one revision is given, it's start_revision, and
end_revision remains `svn_opt_revision_unspecified'. */
svn_opt_revision_t start_revision, end_revision;
/* Note: these next two flags only reflect switches given on the
commandline. For example, 'svn up' (with no options) will *not*
set either of these flags, but will be recursive anyway */
svn_boolean_t recursive, nonrecursive;
const char *message; /* log message */
const char *ancestor_path; /* ### todo: who sets this? */
svn_boolean_t force; /* be more forceful, as in "svn rm -f ..." */
svn_boolean_t force_log; /* force validity of a suspect log msg file */
svn_boolean_t incremental; /* yield output suitable for concatenation */
svn_boolean_t quiet; /* sssh...avoid unnecessary output */
svn_boolean_t non_interactive; /* do no interactive prompting */
svn_boolean_t version; /* print version information */
svn_boolean_t verbose; /* be verbose */
svn_boolean_t update; /* contact the server for the full story */
svn_boolean_t strict; /* do strictly what was requested */
svn_stringbuf_t *filedata; /* contents of file used as option data */
const char *encoding; /* the locale/encoding of the data*/
svn_boolean_t help; /* print usage message */
const char *auth_username; /* auth username */ /* UTF-8! */
const char *auth_password; /* auth password */ /* UTF-8! */
const char *extensions; /* subprocess extension args */ /* UTF-8! */
apr_array_header_t *targets; /* target list from file */ /* UTF-8! */
svn_boolean_t xml; /* output in xml, e.g., "svn log --xml" */
svn_boolean_t no_ignore; /* disregard default ignores & svn:ignore's */
svn_boolean_t no_auth_cache; /* do not cache authentication information */
svn_boolean_t no_diff_deleted; /* do not show diffs for deleted files */
svn_boolean_t notice_ancestry; /* notice ancestry for diff-y operations */
svn_boolean_t ignore_ancestry; /* ignore ancestry for merge-y operations */
svn_boolean_t stop_on_copy; /* don't cross copies during processing */
svn_boolean_t dry_run; /* try operation but make no changes */
svn_boolean_t revprop; /* operate on a revision property */
const char *diff_cmd; /* the external diff command to use */
const char *merge_cmd; /* the external merge command to use */
const char *editor_cmd; /* external editor command. */
const char *old_target; /* diff target */
const char *new_target; /* diff target */
svn_boolean_t relocate; /* rewrite urls (svn switch) */
const char * config_dir; /* over-riding configuration directory */
svn_boolean_t autoprops; /* enable automatic properties */
svn_boolean_t no_autoprops; /* disable automatic properties */
const char *native_eol; /* override system standard eol marker */
} svn_cl__opt_state_t;
typedef struct
{
svn_cl__opt_state_t *opt_state;
svn_client_ctx_t *ctx;
} svn_cl__cmd_baton_t;
/* Declare all the command procedures */
svn_opt_subcommand_t
svn_cl__add,
svn_cl__blame,
svn_cl__checkout,
svn_cl__cleanup,
svn_cl__commit,
svn_cl__copy,
svn_cl__delete,
svn_cl__diff,
svn_cl__export,
svn_cl__help,
svn_cl__import,
svn_cl__info,
svn_cl__log,
svn_cl__ls,
svn_cl__merge,
svn_cl__mkdir,
svn_cl__move,
svn_cl__propdel,
svn_cl__propedit,
svn_cl__propget,
svn_cl__proplist,
svn_cl__propset,
svn_cl__revert,
svn_cl__resolved,
svn_cl__status,
svn_cl__switch,
svn_cl__update,
svn_cl__cat;
/* See definition in main.c for documentation. */
extern const svn_opt_subcommand_desc_t svn_cl__cmd_table[];
/* See definition in main.c for documentation. */
extern const apr_getopt_option_t svn_cl__options[];
/* Header and footer text for svn_opt_print_generic_help. */
extern const char svn_cl__help_header[];
extern const char svn_cl__help_footer[];
/* Our cancellation callback. */
svn_error_t *svn_cl__check_cancel (void *baton);
/*** Command-line output functions -- printing to the user. ***/
/* Print out commit information found in COMMIT_INFO to the console.
* POOL is used for temporay allocations. */
svn_error_t *svn_cl__print_commit_info (svn_client_commit_info_t *commit_info,
apr_pool_t *pool);
/* Print STATUS for PATH to stdout for human consumption. Prints in
abbreviated format by default, or DETAILED format if flag is set.
When DETAILED is set, use SHOW_LAST_COMMITTED to toggle display of
the last-committed-revision and last-committed-author.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -