view release on metacpan or search on metacpan
src/subversion/CHANGES view on Meta::CPAN
Version 1.6.2
(11 May 2009, from /branches/1.6.x)
http://svn.apache.org/repos/asf/subversion/tags/1.6.2
User-visible changes:
* vastly improve memory usage with 'svn merge' (issue #3393)
* make default depth for merge 'infinity' (r37156)
* make 'status --quiet' show tree conflicts (issue #3396)
* allow '--set-depth infinity' to expand shallow subtrees (r37169)
* return an error if attempting to reintegrate from/to the repo root (r37385)
* don't store bogus mergeinfo for '--ignore-ancestry', foreign merges (r37333)
* don't allow merge of difference between two repos (r37519)
* avoid potential segfault with subtree mergeinfo (r36613, -15, -31, -41)
* recommend sqlite 3.6.13 (r37245)
* avoid unnecessary server query for implicit mergeinfo (r36509)
* avoid unnecessary server query during reverse merges (r36527)
* set depth=infinity on 'svn add' items with restricted depth (r37607)
* fixed: commit log message template missing paths (issue #3399)
* fixed: segfault on merge with servers < 1.6 (r37363, -67, -68, -79)
src/subversion/CHANGES view on Meta::CPAN
(06 Dec 2010, from /branches/1.5.x)
http://svn.apache.org/repos/asf/subversion/tags/1.5.9
User-visible changes:
* fix proxying of LOCK and UNLOCK requests with WebDAV proxies (r36159)
* improve performance of --ignore-ancestry merges (r36256)
* avoid crash with when using subtree mergeinfo (r36613, -13, -31, -41)
* improve merge correctness with non-inheritable mergeinfo (r36789)
* fixed: repeated mergeinfo of conflicting properties fails (issue #3250)
* fix segfault in wc->URL copy (r37646, -56)
* make 'svn up --set-depth infinity' expand shallow subtrees (r37169)
* resolve symlinks when checking for ~/.subversion (r36023)
* make default depth of 'svn merge' infinity (r37156)
* don't allow foreign merges to add foreign mergeinfo (issue #3383)
* error if attempting to reintegrate to/from the repo root (r37385)
* let 'svnadmin load' tolerate mergeinfo with "\r\n" (r37768)
* improve memory performance in 'svn merge' (issue #3393)
* fixed: 'SVNPathAuthz short_circuit' unsolicited read access (issue #3695)
See CVE-2010-3315, and descriptive advisory at
http://subversion.apache.org/security/CVE-2010-3315-advisory.txt
* prevent crash in mod_dav_svn when using SVNParentPath (r1033166)
src/subversion/CHANGES view on Meta::CPAN
- svn_fs_closest_copy(), svn_fs_type()
- several rev'd APIs, see doxygen docs
* SWIG bindings: No more compile-time or runtime SWIG dependencies
- SWIG/python bindings:
- automatic memory management: APIs no longer require pool arguments!
- improved stability, as shown by our new testsuite
- better error messages
- SWIG/ruby bindings:
- complete API coverage!
- automatic memory management
- greatly expanded test suite
- SWIG/perl bindings:
- new accessors for svn_lock_t, svn_fs_access_t
- a number of bugfixes
* javahl bindings:
- add streamy API for fetching file contents (r15584)
- fixed: let tests run before bindings are installed (issue #2040)
- fixed: lock command not raising errors properly (issue #2394)
- fixed: ignored errors from svn_client_blame2() (r16434)
src/subversion/CHANGES view on Meta::CPAN
* new switches added:
- 'svn commit --no-unlock - retain lock in wc upon commit
- 'svn log --limit N' - show only first N log messages
- 'svn info --revision' - show info on older object (r13265)
- 'svn list --xml' - output listing in XML
- 'svn propset --force' - allow unusual propsets (#2065)
- 'svn diff --force' - show diffs on binary files (#2099)
- 'svn co/up/st --ignore-externals' - skip over externals (#2189)
- 'svn export --non-recursive' - don't export subdirs (issue #2228)
- 'svnversion --help' - show help (r13128)
* fixed: 'svn merge' fails to add symlinks or expand keywords (issue #2064)
* fixed: 'svn merge --dry-run' shows spurious 'skip' messages (issue #1943)
* fixed: 'svn merge' file-not-found' error (issue #1673)
* fixed: 'svn merge' of propchanges into deleted file (issue #2132)
* fixed: 'svn merge' on implicit target with space (r13010)
* fixed: 'svn merge/diff URL URL' can cause httpd timeout (issue #2048)
* fixed: 'svn switch/update' failure might corrupt wc (issue #1825)
* fixed: 'svn up' should rm before add, helps case-insensitivity (r12616)
* fixed: 'svn up -rX' causes file to be unrestorable (issue #2250)
* fixed: 'svn copy wc wc' should keep .svn/ hidden (issue #1739)
* fixed: 'svn copy wc wc' of deleted=true doesn't delete (issue #2101)
src/subversion/CHANGES view on Meta::CPAN
* fixed - many improvements to Perl and Python bindings, including some
Win32-specific improvements (r6619, r6686, r6590, r6580, r6579)
* All other important dev changes are implied by the user-visible changes.
Version 0.26.0 (released 24 July 2003, revision 6550, branches/release-0.26.0)
User-visible changes:
* fixed - --parent-dir option to svnadmin load (r6436)
* fixed - 'svnlook diff' now properly displays diffs (r6408, #1241)
* fixed - 'svn cat' no longer expands values from the wrong revision.
* fixed 'svn merge':
- (r6447,#1402) -r FOO:PREV works correctly
- (r6452,#1379) no longer prints confusing no-op lines
- (r6500/6503,#1399) warn user when a tree-delta chunk can't be applied
* turn compression off to work around to mod_deflate timeouts (r6509)
Developer-visible changes:
* cvs2svn.py: lots of bugfixing related to branch/tag support
* diff code refactored to allow use by other tools (r6407)
* make 'svn export' set commit-timestamps (not ready yet) (r6420)
src/subversion/build.conf view on Meta::CPAN
# path - relative path to target sources
# sources - explicit list of target sources
# install - the installation group/type
# manpages - the man pages associated with this target
# libs - libraries that this target depends on
# nonlibs - dependencies that are not linked into the target
# lang - bindings for language $(lang)
# msvc-libs - additional libraries to link with on Windows
# msvc-export - additional list of files to expose in dsp/vc(x)proj
# msvc-static - visual studio target produces only a static lib
# add-deps - expands to additional autoconf-defined dependencies
# add-install-deps - like add-deps, but for the install step
# external-lib - expands to additional autoconf-defined libs
# external-project - visual studio project to depend on
#
# The subversion command-line client
[svn]
description = Subversion Client
type = exe
path = subversion/svn
libs = libsvn_client libsvn_wc libsvn_ra libsvn_delta libsvn_diff libsvn_subr
apriconv apr
src/subversion/build/ac-macros/java.m4 view on Meta::CPAN
JDK="/Library/Java/Home"
fi
if test "$os_arch" = "Darwin" && test "$JDK" = "/Library/Java/Home"; then
JRE_LIB_DIR="$OSX_SYS_JAVA_FRAMEWORK/Classes"
else
JRE_LIB_DIR="$JDK/jre/lib"
fi
if test -f "$JDK/include/jni.h"; then
dnl This *must* be fully expanded, or we'll have problems later in find.
JNI_INCLUDEDIR="$JDK/include"
JDK_SUITABLE=yes
elif test "$os_arch" = "Darwin" && test -e "$JDK/Headers/jni.h"; then
dnl Search the Headers directory in the JDK
JNI_INCLUDEDIR="$JDK/Headers"
JDK_SUITABLE=yes
elif test "$os_arch" = "Darwin" &&
test -e "$OSX_SYS_JAVA_FRAMEWORK/Headers/jni.h"; then
dnl Search the System framework's Headers directory
JNI_INCLUDEDIR="$OSX_SYS_JAVA_FRAMEWORK/Headers"
src/subversion/build/generator/ezt.py view on Meta::CPAN
[include "filename"] or [include QUAL_NAME]
This directive is replaced by content of the named include file. Note
that a string constant is more efficient -- the target file is compiled
inline. In the variable form, the target file is compiled and executed
at runtime.
[insertfile "filename"] or [insertfile QUAL_NAME]
This directive is replace by content from the named file, but as a
literal string: directives in the target file are not expanded. As
in the case of the "include" directive, using a string constant for
the filename is more efficient than the variable form.
Block directives
----------------
[for QUAL_NAME] ... [end]
The text within the [for ...] directive and the corresponding [end]
is repeated for each element in the sequence referred to by the
src/subversion/build/generator/ezt.py view on Meta::CPAN
The [is ...] directive is similar to the other conditional
directives above. But it allows to compare two value references or
a value reference with some constant string.
[define VARIABLE] ... [end]
The [define ...] directive allows you to create and modify template
variables from within the template itself. Essentially, any data
between inside the [define ...] and its matching [end] will be
expanded using the other template parsing and output generation
rules, and then stored as a string value assigned to the variable
VARIABLE. The new (or changed) variable is then available for use
with other mechanisms such as [is ...] or [if-any ...], as long as
they appear later in the template.
[format "html|xml|js|url|raw"] ... [end]
The [format ...] directive creates a block in which any substitutions
are processed as though the template has been instantiated with the
the corresponding 'base_format' argument. Comma-separated format
src/subversion/build/libtool.m4 view on Meta::CPAN
# LT_INIT([OPTIONS])
# ------------------
AC_DEFUN([LT_INIT],
[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
AC_BEFORE([$0], [LT_LANG])dnl
AC_BEFORE([$0], [LT_OUTPUT])dnl
AC_BEFORE([$0], [LTDL_INIT])dnl
m4_require([_LT_CHECK_BUILDDIR])dnl
dnl Autoconf doesn't catch unexpanded LT_ macros by default:
m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
dnl unless we require an AC_DEFUNed macro:
AC_REQUIRE([LTOPTIONS_VERSION])dnl
AC_REQUIRE([LTSUGAR_VERSION])dnl
AC_REQUIRE([LTVERSION_VERSION])dnl
AC_REQUIRE([LTOBSOLETE_VERSION])dnl
m4_require([_LT_PROG_LTMAIN])dnl
src/subversion/build/libtool.m4 view on Meta::CPAN
# This can be used to rebuild libtool when needed
LIBTOOL_DEPS=$ltmain
# Always use our own libtool.
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
AC_SUBST(LIBTOOL)dnl
_LT_SETUP
# Only expand once:
m4_define([LT_INIT])
])# LT_INIT
# Old names:
AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
dnl aclocal-1.4 backwards compatibility:
dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
src/subversion/build/libtool.m4 view on Meta::CPAN
# declaration there will have the same value as in 'configure'. VARNAME
# must have a single quote delimited value for this to work.
m4_define([_LT_CONFIG_STATUS_DECLARE],
[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
# _LT_CONFIG_STATUS_DECLARATIONS
# ------------------------------
# We delimit libtool config variables with single quotes, so when
# we write them to config.status, we have to be sure to quote all
# embedded single quotes properly. In configure, this macro expands
# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
#
# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
[m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
# _LT_LIBTOOL_TAGS
# ----------------
# Output comment and list of tags supported by the script
m4_defun([_LT_LIBTOOL_TAGS],
[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
available_tags='_LT_TAGS'dnl
])
# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
# -----------------------------------
# Extract the dictionary values for VARNAME (optionally with TAG) and
# expand to a commented shell variable setting:
#
# # Some comment about what VAR is for.
# visible_name=$lt_internal_name
m4_define([_LT_LIBTOOL_DECLARE],
[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
[description])))[]dnl
m4_pushdef([_libtool_name],
m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
[0], [_libtool_name=[$]$1],
src/subversion/build/libtool.m4 view on Meta::CPAN
m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
# _LT_CONFIG_COMMANDS
# -------------------
# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
# variables for single and double quote escaping we saved from calls
# to _LT_DECL, we can put quote escaped variables declarations
# into 'config.status', and then the shell code to quote escape them in
# for loops in 'config.status'. Finally, any additional code accumulated
# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
m4_defun([_LT_CONFIG_COMMANDS],
[AC_PROVIDE_IFELSE([LT_OUTPUT],
dnl If the libtool generation code has been placed in $CONFIG_LT,
dnl instead of duplicating it all over again into config.status,
dnl then we will have config.status run $CONFIG_LT later, so it
dnl needs to know what name is stored there:
[AC_CONFIG_COMMANDS([libtool],
[$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
dnl If the libtool generation code is destined for config.status,
dnl expand the accumulated commands and init code now:
[AC_CONFIG_COMMANDS([libtool],
[_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
])#_LT_CONFIG_COMMANDS
# Initialize.
m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
[
# The HP-UX ksh and POSIX shell print the target directory to stdout
src/subversion/build/libtool.m4 view on Meta::CPAN
# is reportedly fixed, but why not run on old versions too?
sed '$q' "$ltmain" >> "$cfgfile" \
|| (rm -f "$cfgfile"; exit 1)
mv -f "$cfgfile" "$ofile" ||
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
chmod +x "$ofile"
],
[cat <<_LT_EOF >> "$ofile"
dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
dnl in a comment (ie after a #).
# ### BEGIN LIBTOOL TAG CONFIG: $1
_LT_LIBTOOL_TAG_VARS(_LT_TAG)
# ### END LIBTOOL TAG CONFIG: $1
_LT_EOF
])dnl /m4_if
],
[m4_if([$1], [], [
PACKAGE='$PACKAGE'
VERSION='$VERSION'
src/subversion/build/ltmain.sh view on Meta::CPAN
if test -n "$func_quote_for_eval_result"; then
func_append func_quote_for_eval_result " $_G_quoted_arg"
else
func_append func_quote_for_eval_result "$_G_quoted_arg"
fi
shift
done
}
# func_quote_for_expand ARG
# -------------------------
# Aesthetically quote ARG to be evaled later; same as above,
# but do not quote variable references.
func_quote_for_expand ()
{
$debug_cmd
case $1 in
*[\\\`\"]*)
_G_arg=`$ECHO "$1" | $SED \
-e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;;
*)
_G_arg=$1 ;;
esac
src/subversion/build/ltmain.sh view on Meta::CPAN
case $_G_arg in
# Double-quote args containing shell metacharacters to delay
# word splitting and command substitution for a subsequent eval.
# Many Bourne shells cannot handle close brackets correctly
# in scan sets, so we specify it separately.
*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
_G_arg=\"$_G_arg\"
;;
esac
func_quote_for_expand_result=$_G_arg
}
# func_stripname PREFIX SUFFIX NAME
# ---------------------------------
# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
# PREFIX and SUFFIX must not contain globbing or regex special
# characters, hashes, percent signs, but SUFFIX may contain a leading
# dot (in which case that matches only a dot).
if test yes = "$_G_HAVE_XSI_OPS"; then
src/subversion/build/ltmain.sh view on Meta::CPAN
# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
# is given, then evaluate it.
func_show_eval ()
{
$debug_cmd
_G_cmd=$1
_G_fail_exp=${2-':'}
func_quote_for_expand "$_G_cmd"
eval "func_notquiet $func_quote_for_expand_result"
$opt_dry_run || {
eval "$_G_cmd"
_G_status=$?
if test 0 -ne "$_G_status"; then
eval "(exit $_G_status); $_G_fail_exp"
fi
}
}
src/subversion/build/ltmain.sh view on Meta::CPAN
# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
# is given, then evaluate it. Use the saved locale for evaluation.
func_show_eval_locale ()
{
$debug_cmd
_G_cmd=$1
_G_fail_exp=${2-':'}
$opt_quiet || {
func_quote_for_expand "$_G_cmd"
eval "func_echo $func_quote_for_expand_result"
}
$opt_dry_run || {
eval "$_G_user_locale
$_G_cmd"
_G_status=$?
eval "$_G_safe_locale"
if test 0 -ne "$_G_status"; then
eval "(exit $_G_status); $_G_fail_exp"
fi
src/subversion/build/ltmain.sh view on Meta::CPAN
## -------------- ##
# You should override these variables in your script after sourcing this
# file so that they reflect the customisations you have added to the
# option parser.
# The usage line for option parsing errors and the start of '-h' and
# '--help' output messages. You can embed shell variables for delayed
# expansion at the time the message is displayed, but you will need to
# quote other shell meta-characters carefully to prevent them being
# expanded when the contents are evaled.
usage='$progpath [OPTION]...'
# Short help message in response to '-h' and '--help'. Add to this or
# override it after sourcing this library to reflect the full set of
# options your script accepts.
usage_message="\
--debug enable verbose shell tracing
-W, --warnings=CATEGORY
report the warnings falling in CATEGORY [all]
-v, --verbose verbosely report processing
src/subversion/build/ltmain.sh view on Meta::CPAN
# arg is usually of the form 'gcc ...'
func_infer_tag ()
{
$debug_cmd
if test -n "$available_tags" && test -z "$tagname"; then
CC_quoted=
for arg in $CC; do
func_append_quoted CC_quoted "$arg"
done
CC_expanded=`func_echo_all $CC`
CC_quoted_expanded=`func_echo_all $CC_quoted`
case $@ in
# Blanks in the command may have been stripped by the calling shell,
# but not from the CC environment variable when configure was run.
" $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
" $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
# Blanks at the start of $base_compile will cause this to fail
# if we don't check for them as well.
*)
for z in $available_tags; do
if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
# Evaluate the configuration.
eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
CC_quoted=
for arg in $CC; do
# Double-quote args containing other shell metacharacters.
func_append_quoted CC_quoted "$arg"
done
CC_expanded=`func_echo_all $CC`
CC_quoted_expanded=`func_echo_all $CC_quoted`
case "$@ " in
" $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
" $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
# The compiler in the base compile command matches
# the one in the tagged configuration.
# Assume this is the tagged configuration we want.
tagname=$z
break
;;
esac
fi
done
# If $tagname still isn't set, then no tagged configuration
src/subversion/build/ltmain.sh view on Meta::CPAN
$opt_dry_run || {
if $finalize; then
tmpdir=`func_mktempdir`
func_basename "$file$stripped_ext"
file=$func_basename_result
outputname=$tmpdir/$file
# Replace the output file specification.
relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
$opt_quiet || {
func_quote_for_expand "$relink_command"
eval "func_echo $func_quote_for_expand_result"
}
if eval "$relink_command"; then :
else
func_error "error: relink '$file' with the above command before installing it"
$opt_dry_run || ${RM}r "$tmpdir"
continue
fi
file=$outputname
else
func_warning "cannot relink '$file'"
src/subversion/build/ltmain.sh view on Meta::CPAN
test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
:
else
# The command line is too long to link in one step, link piecewise
# or, if using GNU ld and skipped_export is not :, use a linker
# script.
# Save the value of $output and $libobjs because we want to
# use them later. If we have whole_archive_flag_spec, we
# want to use save_libobjs as it was before
# whole_archive_flag_spec was expanded, because we can't
# assume the linker understands whole_archive_flag_spec.
# This may have to be revisited, in case too many
# convenience libraries get linked in and end up exceeding
# the spec.
if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
save_libobjs=$libobjs
fi
save_output=$output
func_basename "$output"
output_la=$func_basename_result
src/subversion/build/ltmain.sh view on Meta::CPAN
}
test -n "$save_libobjs" &&
func_verbose "creating a temporary reloadable object file: $output"
# Loop through the commands generated above and execute them.
save_ifs=$IFS; IFS='~'
for cmd in $concat_cmds; do
IFS=$save_ifs
$opt_quiet || {
func_quote_for_expand "$cmd"
eval "func_echo $func_quote_for_expand_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
# Restore the uninstalled library and exit
if test relink = "$opt_mode"; then
( cd "$output_objdir" && \
$RM "${realname}T" && \
$MV "${realname}U" "$realname" )
fi
src/subversion/build/ltmain.sh view on Meta::CPAN
func_append libobjs " $func_extract_archives_result"
test "X$libobjs" = "X " && libobjs=
fi
save_ifs=$IFS; IFS='~'
for cmd in $cmds; do
IFS=$sp$nl
eval cmd=\"$cmd\"
IFS=$save_ifs
$opt_quiet || {
func_quote_for_expand "$cmd"
eval "func_echo $func_quote_for_expand_result"
}
$opt_dry_run || eval "$cmd" || {
lt_exit=$?
# Restore the uninstalled library and exit
if test relink = "$opt_mode"; then
( cd "$output_objdir" && \
$RM "${realname}T" && \
$MV "${realname}U" "$realname" )
fi
src/subversion/build/ltsugar.m4 view on Meta::CPAN
m4_define([lt_cdr],
[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
[$#], 1, [],
[m4_dquote(m4_shift($@))])])
m4_define([lt_unquote], $1)
# lt_append(MACRO-NAME, STRING, [SEPARATOR])
# ------------------------------------------
# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
# Note that neither SEPARATOR nor STRING are expanded; they are appended
# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
# No SEPARATOR is output if MACRO-NAME was previously undefined (different
# than defined and empty).
#
# This macro is needed until we can rely on Autoconf 2.62, since earlier
# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
m4_define([lt_append],
[m4_define([$1],
m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
# ----------------------------------------------------------
# Produce a SEP delimited list of all paired combinations of elements of
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
src/subversion/build/ltsugar.m4 view on Meta::CPAN
[m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
[[m4_foreach([_Lt_prefix], [$2],
[m4_foreach([_Lt_suffix],
]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
# -----------------------------------------------------------------------
# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
m4_define([lt_if_append_uniq],
[m4_ifdef([$1],
[m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
[lt_append([$1], [$2], [$3])$4],
[$5])],
[lt_append([$1], [$2], [$3])$4])])
# lt_dict_add(DICT, KEY, VALUE)
# -----------------------------
src/subversion/build/win32/make_dist.py view on Meta::CPAN
# Action classes
class MissingMethodImpl:
pass
class Action:
def run(self, dir, cfg):
raise MissingMethodImpl()
def _expand(self, cfg, value):
cfg.set('__expand__', '__expand__', value)
return cfg.get('__expand__', '__expand__')
def _safe_expand(self, cfg, value):
try:
return self._expand(cfg, value)
except:
return None
def _copy_file(self, source, target):
print('copy: %s' % source)
print(' to: %s' % target)
shutil.copyfile(source, target)
class File(Action):
def __init__(self, path, name=None):
self.path = path
self.name = name
def run(self, dir, cfg):
path = self._expand(cfg, self.path)
if self.name is None:
name = os.path.basename(path)
else:
name = self.name
self._copy_file(path, os.path.join(dir, name))
class OptFile(Action):
def __init__(self, path, name=None):
self.path = path
self.name = name
def run(self, dir, cfg):
path = self._safe_expand(cfg, self.path)
if path is None or not os.path.isfile(path):
print('make_dist: File not found: %s' % self.path)
return
if self.name is None:
name = os.path.basename(path)
else:
name = self.name
self._copy_file(path, os.path.join(dir, name))
class FileGlob(Action):
def __init__(self, pattern):
self.pattern = pattern
def run(self, dir, cfg):
pattern = self._expand(cfg, self.pattern)
for source in glob.glob(pattern):
self._copy_file(source, os.path.join(dir, os.path.basename(source)))
class InstallDocs(Action):
def __init__(self, config, path):
self.config = config
self.path = path
def run(self, dir, cfg):
config = self._expand(cfg, self.config)
pattern = os.path.join(self._expand(cfg, self.path), '*.*')
print('make_dist: Generating documentation')
old_cwd = os.getcwd()
try:
os.chdir(_srcdir)
_system('"%s" "%s"' % (cfg.get('tools', 'doxygen'), config))
os.chdir(old_cwd)
FileGlob(pattern).run(dir, cfg)
except:
os.chdir(old_cwd)
raise
else:
os.chdir(old_cwd)
class InstallIconv(Action):
def __init__(self, source, build_mode):
self.source = source
self.build_mode = build_mode
def run(self, dir, cfg):
source = os.path.abspath(self._expand(cfg, self.source))
build_mode = self._expand(cfg, self.build_mode)
print('make_dist: Installing apr-iconv modules')
install = ('"%s" -nologo -f Makefile.win install'
+ ' INSTALL_DIR="%s"'
+ ' BUILD_MODE=%s BIND_MODE=%s') \
% (cfg.get('tools', 'nmake'),
os.path.abspath(dir),
build_mode,
'shared')
old_cwd = os.getcwd()
try:
src/subversion/build/win32/make_dist.py view on Meta::CPAN
raise
else:
os.chdir(old_cwd)
class InstallJar(Action):
def __init__(self, jar, source):
self.jar = jar
self.source = source
def run(self, dir, cfg):
source = os.path.abspath(self._expand(cfg, self.source))
jarfile = os.path.abspath(os.path.join(dir, self.jar))
print('make_dist: Creating jar %s' % self.jar)
_system('"%s" cvf "%s" -C "%s" .'
% (cfg.get('tools', 'jar'), jarfile, source))
class InstallMoFiles(Action):
def __init__(self, source):
self.source = source
def run(self, dir, cfg):
pattern = os.path.join(self._expand(cfg, self.source), '*.mo')
for mofile in glob.glob(pattern):
localedir = os.path.join(dir, os.path.basename(mofile)[:-3],
'LC_MESSAGES')
os.makedirs(localedir)
self._copy_file(mofile, os.path.join(localedir, 'subversion.mo'))
# This is the distribution tree
_disttree = {'': OptFile('%(readme)s', 'README.txt'),
'bin': (File('%(blddir)s/svn/svn.exe'),
src/subversion/build/win32/make_dist.py view on Meta::CPAN
_system(zipcmd)
except:
os.chdir(old_cwd)
raise
else:
os.chdir(old_cwd)
def _make_dist(cfg):
try:
cfg.add_section('__expand__')
distdir = os.path.abspath(os.path.join(_distdir, _distname))
if os.path.isdir(distdir):
shutil.rmtree(distdir)
os.makedirs(distdir)
dirlist = sorted(_disttree.keys())
for reldir in dirlist:
dir = os.path.join(distdir, reldir)
if not os.path.exists(dir):
src/subversion/build/win32/make_gem.rb view on Meta::CPAN
# under the License.
#
#
require 'optparse'
require 'ostruct'
require 'tmpdir'
require 'fileutils'
options = OpenStruct.new
options.output_dir = File.expand_path(Dir.pwd)
opts = OptionParser.new do |opts|
opts.banner += " DIRECTORIES"
opts.on("-oDIRECTORY", "--output-dir=DIRECTORY",
"Output generated gem to DIRECTORY",
"[#{options.output_dir}]") do |dir|
options.output_dir = File.expand_path(dir)
end
opts.separator ""
opts.on("-h", "--help", "Show this message") do
puts opts
exit
end
end
target_dirs = opts.parse!(ARGV)
if target_dirs.empty?
puts opts
exit 1
end
target_dirs.each do |dir|
next unless File.basename(dir) == "ruby"
base_dir = File.expand_path(dir)
$LOAD_PATH.unshift(File.join(base_dir, "ext"))
$LOAD_PATH.unshift(File.join(base_dir, "lib"))
end
require 'svn/core'
archive_dir = File.join(Dir.tmpdir, "svn-ruby-gem-#{Process.pid}")
FileUtils.mkdir(archive_dir)
at_exit {FileUtils.rm_rf(archive_dir)}
src/subversion/build/win32/make_gem.rb view on Meta::CPAN
s.email = "dev@subversion.apache.org"
s.homepage = "http://subversion.apache.org/"
s.description = s.summary
s.authors = ["Kouhei Sutou"]
s.files = Dir.glob(File.join("**", "*")).delete_if {|x| /\.gem$/i =~ x}
s.require_paths = ["ruby/ext", "ruby/lib"]
s.platform = Gem::Platform::WIN32
s.required_ruby_version = '>= 1.8.2'
end
generated_gem_file = File.expand_path(Gem::Builder.new(spec).build)
end
gem_file = File.join(options.output_dir, File.basename(generated_gem_file))
FileUtils.mv(generated_gem_file, gem_file)
src/subversion/configure view on Meta::CPAN
program_suffix=NONE
program_transform_name=s,x,x,
silent=
site=
srcdir=
verbose=
x_includes=NONE
x_libraries=NONE
# Installation directory options.
# These are left unexpanded so users can "make install exec_prefix=/foo"
# and all the variables that are supposed to be based on exec_prefix
# by default will actually change.
# Use braces instead of parens because sh, perl, etc. also accept them.
# (The list follows the same order as the GNU Coding Standards.)
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
libexecdir='${exec_prefix}/libexec'
datarootdir='${prefix}/share'
datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
src/subversion/configure view on Meta::CPAN
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
$as_echo_n "checking how to run the C preprocessor... " >&6; }
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
CPP=
fi
if test -z "$CPP"; then
if ${ac_cv_prog_CPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CPP needs to be expanded
for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
do
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
# <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
src/subversion/configure view on Meta::CPAN
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
if test -z "$CXXCPP"; then
if ${ac_cv_prog_CXXCPP+:} false; then :
$as_echo_n "(cached) " >&6
else
# Double quotes because CXXCPP needs to be expanded
for CXXCPP in "$CXX -E" "/lib/cpp"
do
ac_preproc_ok=false
for ac_cxx_preproc_warn_flag in '' yes
do
# Use a header file that comes with gcc, so configuring glibc
# with a fresh cross-compiler works.
# Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
# <limits.h> exists even on freestanding compilers.
# On the NeXT, cc -E runs the code through the compiler's parser,
src/subversion/configure view on Meta::CPAN
ac_config_commands="$ac_config_commands libtool"
# Only expand once:
# Check whether --enable-experimental-libtool was given.
if test "${enable_experimental_libtool+set}" = set; then :
enableval=$enable_experimental_libtool; experimental_libtool=$enableval
else
experimental_libtool=no
fi
src/subversion/configure view on Meta::CPAN
fi
fi
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
fi
fi
rm -f confcache
test "x$prefix" = xNONE && prefix=$ac_default_prefix
# Let make expand exec_prefix.
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
DEFS=-DHAVE_CONFIG_H
ac_libobjs=
ac_ltlibobjs=
U=
for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
src/subversion/configure view on Meta::CPAN
# CONFIG_FILE
#
case $INSTALL in
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# If the template does not know about datarootdir, expand it.
# FIXME: This hack should be removed a few years after 2.60.
ac_datarootdir_hack=; ac_datarootdir_seen=
ac_sed_dataroot='
/datarootdir/ {
p
q
}
/@datadir@/p
/@docdir@/p
/@infodir@/p
src/subversion/configure.ac view on Meta::CPAN
dnl provide ${bindir} in svn_private_config.h for use in compiled code
AC_DEFINE_UNQUOTED(SVN_BINDIR, "${SVN_BINDIR}",
[Defined to be the path to the installed binaries])
dnl This purposely does *not* allow for multiple parallel installs.
dnl However, it is compatible with most gettext usages.
localedir='${datadir}/locale'
AC_SUBST(localedir)
dnl For SVN_LOCALE_DIR, we have to expand it to something. See SVN_BINDIR.
if test "${datadir}" = '${prefix}/share' && test "${prefix}" = "NONE"; then
exp_localedir='${ac_default_prefix}/share/locale'
else
exp_localedir=$localedir
fi
SVN_EXPAND_VAR(svn_localedir, "${exp_localedir}")
AC_DEFINE_UNQUOTED(SVN_LOCALE_DIR, "${svn_localedir}",
[Defined to be the path to the installed locale dirs])
dnl Check for libtool -- we'll definitely need it for all our shared libs!
src/subversion/configure.ac view on Meta::CPAN
AC_DEFINE(ENABLE_NLS, 1,
[Define to 1 if translation of program messages to the user's
native language is requested.])
USE_NLS="yes"
fi
fi
fi
AH_BOTTOM([
/* Indicate to translators that string X should be translated. Do not look
up the translation at run time; just expand to X. This macro is suitable
for use where a constant string is required at compile time. */
#define N_(x) x
/* Indicate to translators that we have decided the string X should not be
translated. Expand to X. */
#define U_(x) x
#ifdef ENABLE_NLS
#include <locale.h>
#include <libintl.h>
/* Indicate to translators that string X should be translated. At run time,
look up and return the translation of X. */
src/subversion/doc/doxygen.conf view on Meta::CPAN
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
# evaluate all C-preprocessor directives found in the sources and include
# files.
ENABLE_PREPROCESSING = YES
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
# names in the source code. If set to NO (the default) only conditional
# compilation will be performed. Macro expansion can be done in a controlled
# way by setting EXPAND_ONLY_PREDEF to YES.
MACRO_EXPANSION = YES
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
# then the macro expansion is limited to the macros specified with the
# PREDEFINED and EXPAND_AS_DEFINED tags.
src/subversion/doc/doxygen.conf view on Meta::CPAN
# directories. If left blank, the patterns specified with FILE_PATTERNS will
# be used.
INCLUDE_FILE_PATTERNS =
# The PREDEFINED tag can be used to specify one or more macro names that
# are defined before the preprocessor is started (similar to the -D option of
# gcc). The argument of the tag is a list of macros of the form: name
# or name=definition (no spaces). If the definition and the = are
# omitted =1 is assumed. To prevent a macro definition from being
# undefined via #undef or recursively expanded use the := operator
# instead of the = operator.
PREDEFINED = DOXYGEN \
DOXYGEN_SHOULD_SKIP_THIS \
__attribute__(x)= \
AP_MODULE_DECLARE(x)=x \
"SVN_ERROR_START=typedef enum svn_errno_t { SVN_WARNING = APR_OS_START_USERERR + 1, " \
"SVN_ERRDEF(num,offset,str)=/** str */ num = offset, " \
"SVN_ERROR_END=SVN_ERR_LAST } svn_errno_t; "
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
# this tag can be used to specify a list of macro names that should be expanded.
# The macro definition that is found in the sources will be used.
# Use the PREDEFINED tag if you want to use a different macro definition.
EXPAND_AS_DEFINED =
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
# doxygen's preprocessor will remove all function-like macros that are alone
# on a line, have an all uppercase name, and do not end with a semicolon. Such
# function macros are typically used for boiler-plate code, and will confuse
# the parser if not removed.
src/subversion/doc/user/cvs-crossover-guide.html view on Meta::CPAN
8810 kfogel Feb 23 03:44 1.0.0/
…
</pre>
</div>
<!-- ==================================================================== -->
<div class="h2">
<h2>Seeing the differences between two tags</h2>
<p>Just use <tt>svn diff</tt> in its fully expanded form, which
compares any two URLs:</p>
<pre>
$ svn diff tagURL1 tagURL2
…
</pre>
</div>
<!-- ==================================================================== -->
src/subversion/subversion/bindings/javahl/src/org/apache/subversion/javahl/types/Property.java view on Meta::CPAN
* status
*/
public static final String IGNORE = "svn:ignore";
/**
* how the end of line code should be treated during retrieval
*/
public static final String EOL_STYLE = "svn:eol-style";
/**
* list of keywords to be expanded during retrieval
*/
public static final String KEYWORDS = "svn:keywords";
/**
* flag if the file should be made excutable during retrieval
*/
public static final String EXECUTABLE = "svn:executable";
/**
* value for svn:executable
src/subversion/subversion/bindings/javahl/src/org/tigris/subversion/javahl/PropertyData.java view on Meta::CPAN
* status
*/
public static final String IGNORE = "svn:ignore";
/**
* how the end of line code should be treated during retrieval
*/
public static final String EOL_STYLE = "svn:eol-style";
/**
* list of keywords to be expanded during retrieval
*/
public static final String KEYWORDS = "svn:keywords";
/**
* flag if the file should be made excutable during retrieval
*/
public static final String EXECUTABLE = "svn:executable";
/**
* value for svn:executable
src/subversion/subversion/bindings/swig/include/svn_types.swg view on Meta::CPAN
svn_swig_rb_destroy_pool(_global_svn_swig_rb_pool);
svn_swig_rb_pop_pool(_global_svn_swig_rb_pool);
svn_swig_rb_handle_svn_error($1);
}
$result = Qnil;
}
#endif
/* -----------------------------------------------------------------------
Define a general ptr/len typemap. This takes a single script argument
and expands it into a ptr/len pair for the native call.
*/
#ifdef SWIGPYTHON
%typemap(in) (const char *PTR, apr_size_t LEN) {
if (!PyString_Check($input)) {
PyErr_SetString(PyExc_TypeError, "expecting a string");
SWIG_fail;
}
$1 = PyString_AS_STRING($input);
$2 = PyString_GET_SIZE($input);
}
src/subversion/subversion/bindings/swig/perl/native/Core.pm view on Meta::CPAN
use SVN::Base qw(Core svn_error_t_);
sub strerror {
return SVN::Error::strerror($_[$[]->apr_err());
}
sub handle_error {
return SVN::Error::handle_error(@_);
}
sub expanded_message {
return SVN::Error::expanded_message(@_);
}
sub handle_warning {
# need to swap parameter order.
return SVN::Error::handle_warning($_[$[+1],$_[$[]);
}
foreach my $function (qw(compose clear quick_wrap)) {
no strict 'refs';
my $real_function = \&{"SVN::_Core::svn_error_$function"};
src/subversion/subversion/bindings/swig/perl/native/Core.pm view on Meta::CPAN
returned and only the normal return values will be returned. When using this
mode you should be careful only to call functions in array context. For
example: my ($ci) = $ctx-E<gt>mkdir('http://svn/foo'); In this case $ci will
be an svn_error_t object if an error occurs and a svn_client_commit_info object
otherwise. If you leave the parenthesis off around $ci (scalar context) it
will be the commit_info object, which in the case of an error will be undef.
If you plan on using explicit exception handling, understanding the exception
handling system the C API uses is helpful. You can find information on it in
the HACKING file and the API documentation. Looking at the implementation of
SVN::Error::croak_on_error and SVN::Error::expanded_message may be helpful as
well.
=over 4
=item $svn_error_t-E<gt>apr_err()
APR error value, possibly SVN_ custom error.
=item $svn_error_t-E<gt>message()
src/subversion/subversion/bindings/swig/perl/native/Core.pm view on Meta::CPAN
# Import functions that don't follow the normal naming scheme.
foreach my $function (qw(handle_error handle_warning strerror)) {
no strict 'refs';
my $real_function = \&{"SVN::_Core::svn_$function"};
*{"SVN::Error::$function"} = sub {
return $real_function->(@_);
}
}
=item SVN::Error::expanded_message($svn_error_t) or $svn_error_t-E<gt>expanded_message()
Returns the error message by tracing through the svn_error_t object and its
children and concatenating the error messages. This is how the internal
exception handlers get their error messages.
=cut
sub expanded_message {
my $svn_error = shift;
unless (is_error($svn_error)) {
return undef;
}
my $error_message = $svn_error->strerror();
while ($svn_error) {
my $msg = $svn_error->message();
$error_message .= ": $msg" if $msg;
$svn_error = $svn_error->child();
src/subversion/subversion/bindings/swig/perl/native/Core.pm view on Meta::CPAN
unchanged.
=cut
sub croak_on_error {
unless (is_error($_[$[])) {
return @_;
}
my $svn_error = shift;
my $error_message = $svn_error->expanded_message();
$svn_error->clear();
croak($error_message);
}
=item SVN::Error::confess_on_error
The same as croak_on_error except it will give a more detailed stack backtrace,
including internal calls within the implementation of the perl bindings.
This is useful when you are doing development work on the bindings themselves.
=cut
sub confess_on_error {
unless (is_error($_[$[])) {
return @_;
}
my $svn_error = shift;
my $error_message = $svn_error->expanded_message();
$svn_error->clear();
confess($error_message);
}
=item SVN::Error::ignore_error
This is useful for wrapping around calls which you wish to ignore any potential
error. It checks to see if the first parameter is an error and if it is it
src/subversion/subversion/bindings/swig/python/tests/client.py view on Meta::CPAN
# Test 2: Run info (revision unspecified). We expect the working_size value
# to be filled in.
rev.kind = core.svn_opt_revision_unspecified
client.info(readme_path, rev, rev, self.info_receiver,
False, self.client_ctx)
self.assertEqual(self.path, readme_path)
self.info.assert_valid()
self.assertEqual(self.info.size, client.SWIG_SVN_INFO_SIZE_UNKNOWN)
# README.txt contains one EOL char, so on Windows it will be expanded from
# LF to CRLF hence the working_size will be 9 instead of 8.
if os.name == 'nt':
self.assertEqual(self.info.working_size, 9)
else:
self.assertEqual(self.info.working_size, 8)
# Test 3: Run info on the repository URL of README.txt. We expect the size
# value to be filled in.
rev.kind = core.svn_opt_revision_head
client.info(readme_url, rev, rev, self.info_receiver,
src/subversion/subversion/bindings/swig/ruby/svn/util.rb view on Meta::CPAN
# "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.
# ====================================================================
if /cygwin|mingw|mswin32|bccwin32/.match(RUBY_PLATFORM)
$LOAD_PATH.each do |load_path|
svn_ext_path = File.join(load_path, "svn", "ext")
if File.exists?(svn_ext_path)
svn_ext_path_win = File.expand_path(svn_ext_path)
svn_ext_path_win = svn_ext_path.gsub(File::SEPARATOR, File::ALT_SEPARATOR)
unless ENV["PATH"].split(";").find {|path| path == svn_ext_path_win}
ENV["PATH"] = "#{svn_ext_path_win};#{ENV['PATH']}"
end
end
end
end
require 'tempfile'
src/subversion/subversion/bindings/swig/ruby/svn/util.rb view on Meta::CPAN
file.print(File.open(filename, "rb") {|f| f.read})
file.close
file.open
file.binmode
file
end
def reset_message_directory
if /cygwin|mingw|mswin32|bccwin32/.match(RUBY_PLATFORM)
top_directory = File.join(File.dirname(__FILE__), "..", "..")
top_directory = File.expand_path(top_directory)
locale_directory = File.join(top_directory, "share", "locale")
locale_directory_win = locale_directory.tr(File::SEPARATOR,
File::ALT_SEPARATOR)
GetText.bindtextdomain(locale_directory_win)
end
end
def validate_options(options, optional_keys, required_keys=[])
unknown_keys = options.keys - (optional_keys + required_keys)
unless unknown_keys.empty?
src/subversion/subversion/bindings/swig/ruby/test/greek_tree.rb view on Meta::CPAN
def initialize(tmp_path, import_path, wc_path, repos_uri)
@tmp_path = tmp_path
@import_path = import_path
@wc_path = wc_path
@repos_uri = repos_uri
end
def setup(context)
TREE.each do |path, contents|
entry = File.expand_path(File.join(@import_path, path))
if contents
File.open(entry, 'w') {|f| f.print(contents)}
else
FileUtils.mkdir(entry)
end
end
context.import(@import_path, @repos_uri)
context.update(@wc_path)
end
src/subversion/subversion/bindings/swig/ruby/test/run-test.rb view on Meta::CPAN
# 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.
# ====================================================================
require "test/unit"
require "fileutils"
test_dir = File.expand_path(File.join(File.dirname(__FILE__)))
base_src_dir = File.expand_path(File.join(File.dirname(__FILE__), ".."))
base_dir = Dir.pwd
top_dir = File.expand_path(File.join(base_dir, "..", "..", "..", ".."))
ext_dir = File.join(base_dir, ".ext")
ext_svn_dir = File.join(ext_dir, "svn")
ext_svn_ext_dir = File.join(ext_svn_dir, "ext")
FileUtils.mkdir_p(ext_svn_dir)
at_exit {FileUtils.rm_rf(ext_dir)}
$LOAD_PATH.unshift(test_dir)
require 'util'
require 'test-unit-ext'
src/subversion/subversion/bindings/swig/ruby/test/test-unit-ext/priority.rb view on Meta::CPAN
end
private
def previous_test_success?
File.exist?(passed_file)
end
def result_dir
dir = File.join(File.dirname($0), ".test-result",
self.class.name, escaped_method_name)
dir = File.expand_path(dir)
FileUtils.mkdir_p(dir)
dir
end
def passed_file
File.join(result_dir, "passed")
end
def escaped_method_name
@method_name.to_s.gsub(/[!?]$/) do |matched|
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
end
end
end
def assert_mkdir_with_multiple_paths
log = "sample log"
dir = "dir"
dir2 = "dir2"
dirs = [dir, dir2]
dirs_path = dirs.collect {|d| Pathname.new(@wc_path) + d}
dirs_full_path = dirs_path.collect {|path| path.expand_path}
make_context(log) do |ctx|
infos = []
ctx.set_notify_func do |notify|
infos << [notify.path, notify]
end
assert_equal([false, false], dirs_path.collect {|path| path.exist?})
yield(ctx, dirs_path.collect {|path| path.to_s})
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
ctx.mkdir(dirs)
end
end
def test_mkdir_p
log = "sample log"
dir = "parent"
child_dir = "parent/child"
dir_path = Pathname.new(@wc_path) + dir
child_dir_path = dir_path + "child"
full_paths = [dir_path, child_dir_path].collect {|path| path.expand_path}
make_context(log) do |ctx|
infos = []
ctx.set_notify_func do |notify|
infos << [notify.path, notify]
end
assert_equal([false, false], [dir_path.exist?, child_dir_path.exist?])
ctx.mkdir_p(child_dir_path.to_s)
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
end
end
def test_copy
log = "sample log"
src = "source\n"
file1 = "sample1.txt"
file2 = "sample2.txt"
path1 = Pathname.new(@wc_path) + file1
path2 = Pathname.new(@wc_path) + file2
full_path2 = path2.expand_path
make_context(log) do |ctx|
File.open(path1, "w") {|f| f.print(src)}
ctx.add(path1.to_s)
ctx.ci(@wc_path)
ctx.cp(path1.to_s, path2.to_s)
infos = []
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
ctx.ci(@wc_path)
ctx.mv(path1, path2)
infos = []
ctx.set_notify_func do |notify|
infos << [notify.path, notify]
end
ctx.ci(@wc_path)
assert_equal([path1, path2].sort.collect{|p|File.expand_path(p)},
infos.collect{|path, notify| path}.sort)
path1_notify = infos.assoc(File.expand_path(path1))[1]
assert(path1_notify.commit_deleted?)
path2_notify = infos.assoc(File.expand_path(path2))[1]
assert(path2_notify.commit_added?)
assert_equal(src, File.open(path2) {|f| f.read})
end
end
def test_move_force
log = "sample log"
src1 = "source1\n"
src2 = "source2\n"
file1 = "sample1.txt"
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
notifies = []
ctx.set_notify_func do |notify|
notifies << notify
end
ctx.ci(@wc_path)
paths = notifies.collect do |notify|
notify.path
end
assert_equal([path1, path2, path2].sort.collect{|p|File.expand_path(p)},
paths.sort)
deleted_paths = notifies.find_all do |notify|
notify.commit_deleted?
end.collect do |notify|
notify.path
end
assert_equal([path1].sort.collect{|p|File.expand_path(p)},
deleted_paths.sort)
added_paths = notifies.find_all do |notify|
notify.commit_added?
end.collect do |notify|
notify.path
end
assert_equal([path2].sort.collect{|p|File.expand_path(p)},
added_paths.sort)
postfix_txdelta_paths = notifies.find_all do |notify|
notify.commit_postfix_txdelta?
end.collect do |notify|
notify.path
end
assert_equal([path2].sort.collect{|p|File.expand_path(p)},
postfix_txdelta_paths.sort)
assert_equal(src2, File.open(path2) {|f| f.read})
end
end
def test_prop
log = "sample log"
dir = "dir"
file = "sample.txt"
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
assert_equal(normalize_line_break(src2), ctx.cat(path, rev2))
assert_equal(normalize_line_break(src2), ctx.cat(path))
end
end
def test_lock
log = "sample log"
src = "source\n"
file = "sample.txt"
path = File.join(@wc_path, file)
absolute_path = File.expand_path(path)
File.open(path, "w") {|f| f.print(src)}
make_context(log) do |ctx|
ctx.add(path)
ctx.commit(@wc_path)
infos = []
ctx.set_notify_func do |notify|
infos << [notify.path, notify]
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
file_notify = infos.assoc(absolute_path)[1]
assert(file_notify.locked?)
end
end
def test_unlock
log = "sample log"
src = "source\n"
file = "sample.txt"
path = File.join(@wc_path, file)
absolute_path = File.expand_path(path)
File.open(path, "w") {|f| f.print(src)}
make_context(log) do |ctx|
ctx.add(path)
ctx.commit(@wc_path)
ctx.lock(path)
infos = []
src/subversion/subversion/bindings/swig/ruby/test/test_client.rb view on Meta::CPAN
path2 = File.join(@wc_path, file2)
make_context(log) do |ctx|
File.open(path1, "w") {|f| f.print(src)}
File.open(path2, "w") {|f| f.print(src)}
ctx.add(path1)
ctx.add(path2)
ctx.commit(@wc_path)
assert_equal({}, yield(ctx, changelist1))
assert_equal({nil=>[@wc_path,path1,path2].map{|f| File.expand_path(f)}}, yield(ctx, nil))
assert_equal({}, yield(ctx, []))
assert_equal({}, yield(ctx, [changelist1]))
assert_equal({}, yield(ctx, [changelist2]))
ctx.add_to_changelist(changelist1, path1)
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)}}, yield(ctx, changelist1))
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)},nil=>[@wc_path,path2].map{|f| File.expand_path(f)}}, yield(ctx, nil))
assert_equal({}, yield(ctx, []))
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)}}, yield(ctx, [changelist1]))
assert_equal({}, yield(ctx, [changelist2]))
assert_equal({}, yield(ctx, changelist2))
ctx.add_to_changelist(changelist2, [path1, path2])
assert_equal({changelist2=>[path1, path2].map{|f| File.expand_path(f)}}, yield(ctx, changelist2))
assert_equal({}, yield(ctx, changelist1))
ctx.add_to_changelist(changelist1, [path1, path2])
assert_equal({changelist1=>[path1, path2].map{|f| File.expand_path(f)}}, yield(ctx, changelist1))
assert_equal({}, yield(ctx, changelist2))
ctx.remove_from_changelists(changelist1, path1)
assert_equal({changelist1=>[path2].map{|f| File.expand_path(f)}}, yield(ctx, changelist1))
ctx.remove_from_changelists(changelist1, [path2])
assert_equal({}, yield(ctx, changelist1))
ctx.add_to_changelist(changelist1, path1)
ctx.add_to_changelist(changelist2, path2)
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)}}, yield(ctx, changelist1))
assert_equal({changelist2=>[path2].map{|f| File.expand_path(f)}}, yield(ctx, changelist2))
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)}}, yield(ctx, changelist1))
assert_equal({changelist2=>[path2].map{|f| File.expand_path(f)}}, yield(ctx, changelist2))
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)}}, yield(ctx, [changelist1]))
assert_equal({changelist2=>[path2].map{|f| File.expand_path(f)}}, yield(ctx, [changelist2]))
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)},changelist2=>[path2].map{|f| File.expand_path(f)},nil=>[@wc_path].map{|f| File.expand_path(f)}},
yield(ctx, nil))
assert_equal({}, yield(ctx, []))
assert_equal({changelist1=>[path1].map{|f| File.expand_path(f)},changelist2=>[path2].map{|f| File.expand_path(f)}},
yield(ctx, [changelist1,changelist2]))
ctx.remove_from_changelists(nil, [path1, path2])
assert_equal({}, yield(ctx, changelist1))
assert_equal({}, yield(ctx, changelist2))
end
end
def test_changelists_get_without_block
assert_changelists do |ctx, changelist_name|
src/subversion/subversion/bindings/swig/ruby/test/test_wc.rb view on Meta::CPAN
:target_revision => 0
)
assert_equal(0, editor.target_revision)
reporter = session.update2(rev2, "", editor)
access.crawl_revisions(@wc_path, reporter)
assert_equal(rev2, editor.target_revision)
end
assert_equal([File.expand_path(path)], conflicted_paths.keys);
end
end
end
def test_switch_editor
log = "sample log"
file1 = "hello.txt"
file2 = "hello2.txt"
src = "Hello"
dir1 = "dir1"
src/subversion/subversion/bindings/swig/ruby/test/test_wc.rb view on Meta::CPAN
Svn::Wc::AdmAccess.open(nil, @wc_path) do |access|
assert_nil(access.entry(@wc_path).changelist)
end
notifies = []
notify_collector = Proc.new {|notify| notifies << notify }
Svn::Wc::AdmAccess.open(nil, @wc_path) do |access|
access.set_changelist(path, "123", nil, notify_collector)
end
assert_equal([[File.expand_path(path), nil]],
notifies.collect {|notify| [notify.path, notify.err]})
notifies = []
Svn::Wc::AdmAccess.open(nil, @wc_path) do |access|
access.set_changelist(path, "456", nil, notify_collector)
end
assert_equal([[File.expand_path(path), Svn::Wc::NOTIFY_CHANGELIST_CLEAR],
[File.expand_path(path), Svn::Wc::NOTIFY_CHANGELIST_SET]],
notifies.collect {|notify| [notify.path, notify.action]})
notifies = []
Svn::Wc::AdmAccess.open(nil, @wc_path) do |access|
access.set_changelist(@wc_path, "789", nil, notify_collector)
end
end
src/subversion/subversion/bindings/swig/ruby/test/util.rb view on Meta::CPAN
@password = "sample-password"
@realm = "sample realm"
@svnserve_host = "127.0.0.1"
@svnserve_ports = (64152..64282).collect{|x| x.to_s}
@tmp_path = Dir.mktmpdir
@wc_path = File.join(@tmp_path, "wc")
@import_path = File.join(@tmp_path, "import")
@repos_path = File.join(@tmp_path, "repos")
@full_repos_path = File.expand_path(@repos_path)
@repos_uri = "file://#{@full_repos_path.sub(/^\/?/, '/')}"
@config_path = "config"
@greek = Greek.new(@tmp_path, @import_path, @wc_path, @repos_uri)
end
def setup_basic(need_svnserve=false)
@need_svnserve = need_svnserve
setup_default_variables
setup_tmp
src/subversion/subversion/bindings/swig/ruby/test/windows_util.rb view on Meta::CPAN
def setup_svnserve
@svnserve_port = @svnserve_ports.last
@repos_svnserve_uri = "svn://#{@svnserve_host}:#{@svnserve_port}"
grant_everyone_full_access(@full_repos_path)
@@service_created ||= begin
@@service_created = true
service_control('stop') unless service_stopped?
service_control('delete') if service_exists?
svnserve_dir = File.expand_path("svnserve")
FileUtils.mkdir_p(svnserve_dir)
at_exit do
service_control('stop') unless service_stopped?
service_control('delete') if service_exists?
FileUtils.rm_rf(svnserve_dir)
end
trap("INT") do
service_control('stop') unless service_stopped?
service_control('delete') if service_exists?
FileUtils.rm_rf(svnserve_dir)
src/subversion/subversion/bindings/swig/ruby/test/windows_util.rb view on Meta::CPAN
@@top_dir = top_dir
build_type = ENV["BUILD_TYPE"] || "Release"
FileUtils.mkdir_p(ext_dir)
relative_base_dir =
base_dir.sub(/^#{Regexp.escape(top_dir + File::SEPARATOR)}/, '')
build_base_dir = File.join(top_dir, build_type, relative_base_dir)
dll_dir = File.expand_path(build_base_dir)
subversion_dir = File.join(build_base_dir, "..", "..", "..")
subversion_dir = File.expand_path(subversion_dir)
util_name = "util"
build_conf = File.join(top_dir, "build.conf")
File.open(File.join(ext_dir, "#{util_name}.rb" ), 'w') do |util|
setup_dll_wrapper_util(dll_dir, util)
add_depended_dll_path_to_dll_wrapper_util(top_dir, build_type, util)
add_svn_dll_path_to_dll_wrapper_util(build_conf, subversion_dir, util)
setup_dll_wrappers(build_conf, ext_dir, dll_dir, util_name) do |lib|
svn_lib_dir = File.join(subversion_dir, "libsvn_#{lib}")
util.puts("add_path.call(#{svn_lib_dir.dump})")
src/subversion/subversion/bindings/swig/ruby/test/windows_util.rb view on Meta::CPAN
[
["apr", build_type],
["apr-util", build_type],
["apr-iconv", build_type],
["berkeley-db", "bin"],
["libintl", "bin"],
["sasl", "lib"],
].each do |lib, sub_dir|
lib_dir = Pathname.new(gen_make_opts["--with-#{lib}"])
dll_dir = lib_dir + sub_dir
dll_dir = dll_dir.expand_path
util.puts("add_path.call(#{dll_dir.to_s.dump})")
end
end
def add_svn_dll_path_to_dll_wrapper_util(build_conf, subversion_dir, util)
File.open(build_conf) do |f|
f.each do |line|
if /^\[(libsvn_.+)\]\s*$/ =~ line
lib_name = $1
lib_dir = File.join(subversion_dir, lib_name)
src/subversion/subversion/include/svn_client.h view on Meta::CPAN
* exporting from a repository.
*
* @a ctx is a context used for authentication in the repository case.
*
* @a overwrite if TRUE will cause the export to overwrite files or
* directories.
*
* If @a ignore_externals is set, don't process externals definitions
* as part of this operation.
*
* If @a ignore_keywords is set, don't expand keywords as part of this
* operation.
*
* @a native_eol allows you to override the standard eol marker on the
* platform you are running on. Can be either "LF", "CR" or "CRLF" or
* NULL. If NULL will use the standard eol marker. Any other value
* will cause the #SVN_ERR_IO_UNKNOWN_EOL error to be returned.
*
* If @a depth is #svn_depth_infinity, export fully recursively. Else
* if it is #svn_depth_immediates, export @a from_path_or_url and its
* immediate children (if any), but with subdirectories empty and at
src/subversion/subversion/include/svn_config.h view on Meta::CPAN
svn_error_t *
svn_config_merge(svn_config_t *cfg,
const char *file,
svn_boolean_t must_exist);
/** Find the value of a (@a section, @a option) pair in @a cfg, set @a
* *valuep to the value.
*
* If @a cfg is @c NULL, just sets @a *valuep to @a default_value. If
* the value does not exist, expand and return @a default_value. @a
* default_value can be NULL.
*
* The returned value will be valid at least until the next call to
* svn_config_get(), or for the lifetime of @a default_value. It is
* safest to consume the returned value immediately.
*
* This function may change @a cfg by expanding option values.
*/
void
svn_config_get(svn_config_t *cfg,
const char **valuep,
const char *section,
const char *option,
const char *default_value);
/** Add or replace the value of a (@a section, @a option) pair in @a cfg with
* @a value.
src/subversion/subversion/include/svn_subst.h view on Meta::CPAN
} svn_subst_keywords_t;
/**
* Set @a *kw to a new keywords hash filled with the appropriate contents
* given a @a keywords_string (the contents of the svn:keywords
* property for the file in question), the revision @a rev, the @a url,
* the @a date the file was committed on, the @a author of the last
* commit, and the URL of the repository root @a repos_root_url.
*
* Custom keywords defined in svn:keywords properties are expanded
* using the provided parameters and in accordance with the following
* format substitutions in the @a keywords_string:
* %a - The author.
* %b - The basename of the URL.
* %d - Short format of the date.
* %D - Long format of the date.
* %P - The file's path, relative to the repository root URL.
* %r - The revision.
* %R - The URL to the root of the repository.
* %u - The URL of the file.
* %_ - A space (keyword definitions cannot contain a literal space).
* %% - A literal '%'.
* %H - Equivalent to %P%_%r%_%d%_%a.
* %I - Equivalent to %b%_%r%_%d%_%a.
*
* Custom keywords are defined by appending '=' to the keyword name, followed
* by a string containing any combination of the format substitutions.
*
* Any of the inputs @a rev, @a url, @a date, @a author, and @a repos_root_url
* can be @c NULL, or @c 0 for @a date, to indicate that the information is
* not present. Each piece of information that is not present expands to the
* empty string wherever it appears in an expanded keyword value. (This can
* result in multiple adjacent spaces in the expansion of a multi-valued
* keyword such as "Id".)
*
* Hash keys are of type <tt>const char *</tt>.
* Hash values are of type <tt>svn_string_t *</tt>.
*
* All memory is allocated out of @a pool.
*
* @since New in 1.8.
*/
src/subversion/subversion/include/svn_subst.h view on Meta::CPAN
* writable stream.
*
* If @a eol_str is non-@c NULL, replace whatever bytestring @a src_stream
* uses to denote line endings with @a eol_str in the output. If
* @a src_stream has an inconsistent line ending style, then: if @a repair
* is @c FALSE, return @c SVN_ERR_IO_INCONSISTENT_EOL, else if @a repair is
* @c TRUE, convert any line ending in @a src_stream to @a eol_str in
* @a dst_stream. Recognized line endings are: "\n", "\r", and "\r\n".
*
* See svn_subst_stream_translated() for details of the keyword substitution
* which is controlled by the @a expand and @a keywords parameters.
*
* Note that a translation request is *required*: one of @a eol_str or
* @a keywords must be non-@c NULL.
*
* Notes:
*
* See svn_wc__get_keywords() and svn_wc__get_eol_style() for a
* convenient way to get @a eol_str and @a keywords if in libsvn_wc.
*
* @since New in 1.3.
src/subversion/subversion/include/svn_subst.h view on Meta::CPAN
* @deprecated Provided for backward compatibility with the 1.5 API.
* Callers should use svn_subst_stream_translated() instead.
*/
SVN_DEPRECATED
svn_error_t *
svn_subst_translate_stream3(svn_stream_t *src_stream,
svn_stream_t *dst_stream,
const char *eol_str,
svn_boolean_t repair,
apr_hash_t *keywords,
svn_boolean_t expand,
apr_pool_t *scratch_pool);
/** Similar to svn_subst_translate_stream3() except relies upon a
* @c svn_subst_keywords_t struct instead of a hash for the keywords.
*
* @deprecated Provided for backward compatibility with the 1.2 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_subst_translate_stream2(svn_stream_t *src_stream,
svn_stream_t *dst_stream,
const char *eol_str,
svn_boolean_t repair,
const svn_subst_keywords_t *keywords,
svn_boolean_t expand,
apr_pool_t *scratch_pool);
/**
* Same as svn_subst_translate_stream2(), but does not take a @a pool
* argument, instead creates a temporary subpool of the global pool, and
* destroys it before returning.
*
* @deprecated Provided for backward compatibility with the 1.1 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_subst_translate_stream(svn_stream_t *src_stream,
svn_stream_t *dst_stream,
const char *eol_str,
svn_boolean_t repair,
const svn_subst_keywords_t *keywords,
svn_boolean_t expand);
/** Return a stream which performs eol translation and keyword
* expansion when read from or written to. The stream @a stream
* is used to read and write all data.
*
* Make sure you call svn_stream_close() on the returned stream to
* ensure all data is flushed and cleaned up (this will also close
* the provided @a stream).
*
* Read operations from and write operations to the stream
* perform the same operation: if @a expand is @c FALSE, both
* contract keywords. One stream supports both read and write
* operations. Reads and writes may be mixed.
*
* If @a eol_str is non-@c NULL, replace whatever bytestring the input uses
* to denote line endings with @a eol_str in the output. If the input has
* an inconsistent line ending style, then: if @a repair is @c FALSE, then a
* subsequent read, write or other operation on the stream will return
* @c SVN_ERR_IO_INCONSISTENT_EOL when the inconsistency is detected, else
* if @a repair is @c TRUE, convert any line ending to @a eol_str.
* Recognized line endings are: "\n", "\r", and "\r\n".
*
* Expand and contract keywords using the contents of @a keywords as the
* new values. If @a expand is @c TRUE, expand contracted keywords and
* re-expand expanded keywords. If @a expand is @c FALSE, contract expanded
* keywords and ignore contracted ones. Keywords not found in the hash are
* ignored (not contracted or expanded). If the @a keywords hash
* itself is @c NULL, keyword substitution will be altogether ignored.
*
* Detect only keywords that are no longer than @c SVN_KEYWORD_MAX_LEN
* bytes, including the delimiters and the keyword itself.
*
* Recommendation: if @a expand is FALSE, then you don't care about the
* keyword values, so use empty strings as non-NULL signifiers when you
* build the keywords hash.
*
* The stream returned is allocated in @a result_pool.
*
* If the inner stream implements resetting via svn_stream_reset(),
* or marking and seeking via svn_stream_mark() and svn_stream_seek(),
* the translated stream will too.
*
* @since New in 1.4.
*/
svn_stream_t *
svn_subst_stream_translated(svn_stream_t *stream,
const char *eol_str,
svn_boolean_t repair,
apr_hash_t *keywords,
svn_boolean_t expand,
apr_pool_t *result_pool);
/** Set @a *stream to a stream which performs eol translation and keyword
* expansion when read from or written to. The stream @a source
* is used to read and write all data. Make sure you call
* svn_stream_close() on @a stream to make sure all data are flushed
* and cleaned up.
*
* When @a stream is closed, then @a source will be closed.
src/subversion/subversion/include/svn_subst.h view on Meta::CPAN
svn_subst_stream_from_specialfile(svn_stream_t **stream,
const char *path,
apr_pool_t *pool);
/**
* Copy the contents of file-path @a src to file-path @a dst atomically,
* either creating @a dst or overwriting @a dst if it exists, possibly
* performing line ending and keyword translations.
*
* The parameters @a *eol_str, @a repair, @a *keywords and @a expand are
* defined the same as in svn_subst_translate_stream3().
*
* In addition, it will create a special file from normal form or
* translate one to normal form if @a special is @c TRUE.
*
* If anything goes wrong during the copy, attempt to delete @a dst (if
* it exists).
*
* If @a eol_str and @a keywords are @c NULL, behavior is just a byte-for-byte
* copy.
src/subversion/subversion/include/svn_subst.h view on Meta::CPAN
* periodically to check for cancellation.
*
* @since New in 1.7.
*/
svn_error_t *
svn_subst_copy_and_translate4(const char *src,
const char *dst,
const char *eol_str,
svn_boolean_t repair,
apr_hash_t *keywords,
svn_boolean_t expand,
svn_boolean_t special,
svn_cancel_func_t cancel_func,
void *cancel_baton,
apr_pool_t *pool);
/**
* Similar to svn_subst_copy_and_translate4() but without a cancellation
* function and baton.
*
* @since New in 1.3.
* @deprecated Provided for backward compatibility with the 1.6 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_subst_copy_and_translate3(const char *src,
const char *dst,
const char *eol_str,
svn_boolean_t repair,
apr_hash_t *keywords,
svn_boolean_t expand,
svn_boolean_t special,
apr_pool_t *pool);
/**
* Similar to svn_subst_copy_and_translate3() except that @a keywords is a
* @c svn_subst_keywords_t struct instead of a keywords hash.
*
* @deprecated Provided for backward compatibility with the 1.2 API.
* @since New in 1.1.
*/
SVN_DEPRECATED
svn_error_t *
svn_subst_copy_and_translate2(const char *src,
const char *dst,
const char *eol_str,
svn_boolean_t repair,
const svn_subst_keywords_t *keywords,
svn_boolean_t expand,
svn_boolean_t special,
apr_pool_t *pool);
/**
* Similar to svn_subst_copy_and_translate2() except that @a special is
* always set to @c FALSE.
*
* @deprecated Provided for backward compatibility with the 1.0 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_subst_copy_and_translate(const char *src,
const char *dst,
const char *eol_str,
svn_boolean_t repair,
const svn_subst_keywords_t *keywords,
svn_boolean_t expand,
apr_pool_t *pool);
/**
* Set @a *dst to a copy of the string @a src, possibly performing line
* ending and keyword translations.
*
* This is a variant of svn_subst_translate_stream3() that operates on
* cstrings. @see svn_subst_stream_translated() for details of the
* translation and of @a eol_str, @a repair, @a keywords and @a expand.
*
* If @a eol_str and @a keywords are @c NULL, behavior is just a byte-for-byte
* copy.
*
* Allocate @a *dst in @a pool.
*
* @since New in 1.3.
*/
svn_error_t *
svn_subst_translate_cstring2(const char *src,
const char **dst,
const char *eol_str,
svn_boolean_t repair,
apr_hash_t *keywords,
svn_boolean_t expand,
apr_pool_t *pool);
/**
* Similar to svn_subst_translate_cstring2() except that @a keywords is a
* @c svn_subst_keywords_t struct instead of a keywords hash.
*
* @deprecated Provided for backward compatibility with the 1.2 API.
*/
SVN_DEPRECATED
svn_error_t *
svn_subst_translate_cstring(const char *src,
const char **dst,
const char *eol_str,
svn_boolean_t repair,
const svn_subst_keywords_t *keywords,
svn_boolean_t expand,
apr_pool_t *pool);
/**
* Translate the file @a src in working copy form to a file @a dst in
* normal form.
*
* The values specified for @a eol_style, @a *eol_str, @a keywords and
* @a special, should be the ones used to translate the file to its
* working copy form. Usually, these are the values specified by the
* user in the files' properties.
src/subversion/subversion/include/svn_types.h view on Meta::CPAN
Subject: Re: Customizable Keywords @endverbatim
*
* However, it is considerably more complex than the scheme below.
* For now we're going with simplicity, hopefully the more general
* solution can be done post-1.0.
*
* @defgroup svn_types_keywords Keyword definitions
* @{
*/
/** The maximum size of an expanded or un-expanded keyword. */
#define SVN_KEYWORD_MAX_LEN 255
/** The most recent revision in which this file was changed. */
#define SVN_KEYWORD_REVISION_LONG "LastChangedRevision"
/** Short version of LastChangedRevision */
#define SVN_KEYWORD_REVISION_SHORT "Rev"
/** Medium version of LastChangedRevision, matching the one CVS uses.
* @since New in 1.1. */