The comment for the variable ESVN_OPTIONS indicates that it is only used for checkout or update, but it is used for "svn info" as well. If '--ignore-externals' is in ESVN_OPTIONS, merge fails with >>> Unpacking source... Subcommand 'info' doesn't accept option '--ignore-externals' Type 'svn help info' for usage. Subcommand 'info' doesn't accept option '--ignore-externals' Type 'svn help info' for usage. Subcommand 'info' doesn't accept option '--ignore-externals' Type 'svn help info' for usage. Subcommand 'info' doesn't accept option '--ignore-externals' Type 'svn help info' for usage. Subcommand 'info' doesn't accept option '--ignore-externals' Type 'svn help info' for usage. * subversion switch start --> Filtering this option from the arguments of 'svn info' fixes the problem: diff --git a/eclass/subversion.eclass b/eclass/subversion.eclass index b280f71..21cd813 100644 --- a/eclass/subversion.eclass +++ b/eclass/subversion.eclass @@ -468,7 +468,7 @@ subversion__svn_info() { local target="${1}" local key="${2}" - env LC_ALL=C svn info ${options} --username "${ESVN_USER}" --password "$ {ESVN_PASSWORD}" "${target}" \\ + env LC_ALL=C svn info ${options/--ignore-externals/} --username "${ESVN_ USER}" --password "${ESVN_PASSWORD}" "${target}" \\ | grep -i "^${key}" \\ | cut -d" " -f2- }