You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2012/05/15 14:39:16 UTC
svn commit: r1338671 [2/2] - in /subversion/branches/1.7.x-issue4153: ./
build/generator/ build/win32/ contrib/client-side/emacs/
subversion/bindings/swig/ruby/test/ subversion/include/
subversion/include/private/ subversion/libsvn_client/ subversion/l...
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/adm_crawler.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/adm_crawler.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/adm_crawler.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/adm_crawler.c Tue May 15 12:39:14 2012
@@ -495,10 +495,14 @@ report_revisions_and_depths(svn_wc__db_t
{
svn_boolean_t is_incomplete;
svn_boolean_t start_empty;
+ svn_depth_t report_depth = ths->depth;
is_incomplete = (ths->status == svn_wc__db_status_incomplete);
start_empty = is_incomplete;
+ if (!SVN_DEPTH_IS_RECURSIVE(depth))
+ report_depth = svn_depth_empty;
+
/* When a <= 1.6 working copy is upgraded without some of its
subdirectories we miss some information in the database. If we
report the revision as -1, the update editor will receive an
@@ -526,7 +530,7 @@ report_revisions_and_depths(svn_wc__db_t
dir_repos_root,
ths->repos_relpath, iterpool),
ths->revnum,
- ths->depth,
+ report_depth,
start_empty,
ths->lock ? ths->lock->token
: NULL,
@@ -535,7 +539,7 @@ report_revisions_and_depths(svn_wc__db_t
SVN_ERR(reporter->set_path(report_baton,
this_report_relpath,
ths->revnum,
- ths->depth,
+ report_depth,
start_empty,
ths->lock ? ths->lock->token : NULL,
iterpool));
@@ -549,7 +553,7 @@ report_revisions_and_depths(svn_wc__db_t
dir_repos_root,
ths->repos_relpath, iterpool),
ths->revnum,
- ths->depth,
+ report_depth,
start_empty,
ths->lock ? ths->lock->token : NULL,
iterpool));
@@ -573,7 +577,7 @@ report_revisions_and_depths(svn_wc__db_t
SVN_ERR(reporter->set_path(report_baton,
this_report_relpath,
ths->revnum,
- ths->depth,
+ report_depth,
start_empty,
ths->lock ? ths->lock->token : NULL,
iterpool));
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/externals.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/externals.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/externals.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/externals.c Tue May 15 12:39:14 2012
@@ -300,8 +300,13 @@ svn_wc_parse_externals_description3(apr_
item->target_dir = svn_dirent_internal_style(item->target_dir, pool);
- if (item->target_dir[0] == '\0' || item->target_dir[0] == '/'
- || svn_path_is_backpath_present(item->target_dir))
+ if (item->target_dir[0] == '\0'
+ || svn_dirent_is_absolute(item->target_dir)
+ || svn_path_is_backpath_present(item->target_dir)
+ || !svn_dirent_skip_ancestor("dummy",
+ svn_dirent_join("dummy",
+ item->target_dir,
+ pool)))
return svn_error_createf
(SVN_ERR_CLIENT_INVALID_EXTERNALS_DESCRIPTION, NULL,
_("Invalid %s property on '%s': "
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/update_editor.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/update_editor.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/update_editor.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/update_editor.c Tue May 15 12:39:14 2012
@@ -4331,23 +4331,27 @@ close_file(void *file_baton,
/* Send a notification to the callback function. (Skip notifications
about files which were already notified for another reason.) */
- if (eb->notify_func && !fb->already_notified && fb->edited)
+ if (eb->notify_func && !fb->already_notified
+ && (fb->edited || lock_state == svn_wc_notify_lock_state_unlocked))
{
svn_wc_notify_t *notify;
svn_wc_notify_action_t action = svn_wc_notify_update_update;
- if (fb->shadowed)
- action = fb->adding_file
- ? svn_wc_notify_update_shadowed_add
- : svn_wc_notify_update_shadowed_update;
- else if (fb->obstruction_found || fb->add_existed)
+ if (fb->edited)
{
- if (content_state != svn_wc_notify_state_conflicted)
- action = svn_wc_notify_exists;
- }
- else if (fb->adding_file)
- {
- action = svn_wc_notify_update_add;
+ if (fb->shadowed)
+ action = fb->adding_file
+ ? svn_wc_notify_update_shadowed_add
+ : svn_wc_notify_update_shadowed_update;
+ else if (fb->obstruction_found || fb->add_existed)
+ {
+ if (content_state != svn_wc_notify_state_conflicted)
+ action = svn_wc_notify_exists;
+ }
+ else if (fb->adding_file)
+ {
+ action = svn_wc_notify_update_add;
+ }
}
notify = svn_wc_create_notify(fb->local_abspath, action, scratch_pool);
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db.c Tue May 15 12:39:14 2012
@@ -392,7 +392,7 @@ wclock_owns_lock(svn_boolean_t *own_lock
apr_pool_t *scratch_pool);
-
+
/* Return the absolute path, in local path style, of LOCAL_RELPATH
in WCROOT. */
static const char *
@@ -11684,35 +11684,25 @@ get_min_max_revisions(svn_revnum_t *min_
apr_pool_t *scratch_pool)
{
svn_sqlite__stmt_t *stmt;
- svn_boolean_t have_row;
svn_revnum_t min_rev, max_rev;
SVN_ERR(svn_sqlite__get_statement(&stmt, wcroot->sdb,
STMT_SELECT_MIN_MAX_REVISIONS));
SVN_ERR(svn_sqlite__bindf(stmt, "is", wcroot->wc_id, local_relpath));
- SVN_ERR(svn_sqlite__step(&have_row, stmt));
- if (have_row)
+ SVN_ERR(svn_sqlite__step_row(stmt));
+
+ if (committed)
{
- if (committed)
- {
- min_rev = svn_sqlite__column_revnum(stmt, 2);
- max_rev = svn_sqlite__column_revnum(stmt, 3);
- }
- else
- {
- min_rev = svn_sqlite__column_revnum(stmt, 0);
- max_rev = svn_sqlite__column_revnum(stmt, 1);
- }
+ min_rev = svn_sqlite__column_revnum(stmt, 2);
+ max_rev = svn_sqlite__column_revnum(stmt, 3);
}
else
{
- min_rev = SVN_INVALID_REVNUM;
- max_rev = SVN_INVALID_REVNUM;
+ min_rev = svn_sqlite__column_revnum(stmt, 0);
+ max_rev = svn_sqlite__column_revnum(stmt, 1);
}
- /* The statement should only return at most one row. */
- SVN_ERR(svn_sqlite__step(&have_row, stmt));
- SVN_ERR_ASSERT(! have_row);
+ /* The statement returns exactly one row. */
SVN_ERR(svn_sqlite__reset(stmt));
if (min_revision)
@@ -12006,9 +11996,16 @@ has_local_mods(svn_boolean_t *is_modifie
svn_filesize_t recorded_size;
apr_time_t recorded_mod_time;
svn_boolean_t skip_check = FALSE;
+ svn_error_t *err;
if (cancel_func)
- SVN_ERR(cancel_func(cancel_baton));
+ {
+ err = cancel_func(cancel_baton);
+ if (err)
+ return svn_error_trace(svn_error_compose_create(
+ err,
+ svn_sqlite__reset(stmt)));
+ }
svn_pool_clear(iterpool);
@@ -12025,8 +12022,12 @@ has_local_mods(svn_boolean_t *is_modifie
{
const svn_io_dirent2_t *dirent;
- SVN_ERR(svn_io_stat_dirent(&dirent, node_abspath, TRUE,
- iterpool, iterpool));
+ err = svn_io_stat_dirent(&dirent, node_abspath, TRUE,
+ iterpool, iterpool);
+ if (err)
+ return svn_error_trace(svn_error_compose_create(
+ err,
+ svn_sqlite__reset(stmt)));
if (dirent->kind != svn_node_file)
{
@@ -12043,9 +12044,15 @@ has_local_mods(svn_boolean_t *is_modifie
if (! skip_check)
{
- SVN_ERR(svn_wc__internal_file_modified_p(is_modified,
- db, node_abspath,
- FALSE, iterpool));
+ err = svn_wc__internal_file_modified_p(is_modified,
+ db, node_abspath,
+ FALSE, iterpool);
+
+ if (err)
+ return svn_error_trace(svn_error_compose_create(
+ err,
+ svn_sqlite__reset(stmt)));
+
if (*is_modified)
break;
}
Modified: subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db_util.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db_util.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db_util.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/libsvn_wc/wc_db_util.c Tue May 15 12:39:14 2012
@@ -121,6 +121,21 @@ svn_wc__db_util_open_db(svn_sqlite__db_t
const char *sdb_abspath = svn_wc__adm_child(dir_abspath, sdb_fname,
scratch_pool);
+ if (smode != svn_sqlite__mode_rwcreate)
+ {
+ svn_node_kind_t kind;
+
+ /* A file stat is much cheaper then a failed database open handled
+ by SQLite. */
+ SVN_ERR(svn_io_check_path(sdb_abspath, &kind, scratch_pool));
+
+ if (kind != svn_node_file)
+ return svn_error_createf(APR_ENOENT, NULL,
+ _("Working copy database '%s' not found"),
+ svn_dirent_local_style(sdb_abspath,
+ scratch_pool));
+ }
+
SVN_ERR(svn_sqlite__open(sdb, sdb_abspath, smode,
my_statements ? my_statements : statements,
0, NULL, result_pool, scratch_pool));
Modified: subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/update.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/update.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/update.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/reports/update.c Tue May 15 12:39:14 2012
@@ -530,8 +530,8 @@ upd_delete_entry(const char *path,
svn_relpath_basename(path, NULL),
1);
return dav_svn__brigade_printf(parent->uc->bb, parent->uc->output,
- "<S:delete-entry name=\"%s\"/>" DEBUG_CR,
- qname);
+ "<S:delete-entry name=\"%s\" rev=\"%ld\"/>"
+ DEBUG_CR, qname, revision);
}
Modified: subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/repos.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/repos.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/repos.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/repos.c Tue May 15 12:39:14 2012
@@ -34,6 +34,9 @@
#include <http_core.h> /* for ap_construct_url */
#include <mod_dav.h>
+#define CORE_PRIVATE /* To make ap_show_mpm public in 2.2 */
+#include <http_config.h>
+
#include "svn_types.h"
#include "svn_pools.h"
#include "svn_error.h"
@@ -50,6 +53,7 @@
#include "svn_dirent_uri.h"
#include "private/svn_log.h"
#include "private/svn_fspath.h"
+#include "private/svn_repos_private.h"
#include "dav_svn.h"
@@ -2142,6 +2146,8 @@ get_resource(request_rec *r,
repos->repos = userdata;
if (repos->repos == NULL)
{
+ const char *fs_type;
+
/* construct FS configuration parameters */
fs_config = apr_hash_make(r->connection->pool);
apr_hash_set(fs_config,
@@ -2153,9 +2159,29 @@ get_resource(request_rec *r,
APR_HASH_KEY_STRING,
dav_svn__get_fulltext_cache_flag(r) ? "1" : "0");
+ /* Disallow BDB/event until issue 4157 is fixed. */
+ if (!strcmp(ap_show_mpm(), "event"))
+ {
+ serr = svn_repos__fs_type(&fs_type, fs_path, r->connection->pool);
+ if (serr)
+ {
+ /* svn_repos_open2 is going to fail, use that error. */
+ svn_error_clear(serr);
+ serr = NULL;
+ }
+ else if (!strcmp(fs_type, "bdb"))
+ serr = svn_error_createf(SVN_ERR_UNSUPPORTED_FEATURE, NULL,
+ "BDB repository at '%s' is not compatible "
+ "with event MPM",
+ fs_path);
+ }
+ else
+ serr = NULL;
+
/* open the FS */
- serr = svn_repos_open2(&(repos->repos), fs_path, fs_config,
- r->connection->pool);
+ if (!serr)
+ serr = svn_repos_open2(&(repos->repos), fs_path, fs_config,
+ r->connection->pool);
if (serr != NULL)
{
/* The error returned by svn_repos_open2 might contain the
Modified: subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/util.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/util.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/util.c Tue May 15 12:39:14 2012
@@ -624,19 +624,20 @@ void dav_svn__log_err(request_rec *r,
/* Log the errors */
/* ### should have a directive to log the first or all */
for (errscan = err; errscan != NULL; errscan = errscan->prev) {
+ apr_status_t status;
+
if (errscan->desc == NULL)
continue;
- if (errscan->save_errno != 0) {
- errno = errscan->save_errno;
- ap_log_rerror(APLOG_MARK, level, errno, r, "%s [%d, #%d]",
- errscan->desc, errscan->status, errscan->error_id);
- }
- else {
- ap_log_rerror(APLOG_MARK, level, 0, r,
- "%s [%d, #%d]",
- errscan->desc, errscan->status, errscan->error_id);
- }
+#if AP_MODULE_MAGIC_AT_LEAST(20091119,0)
+ status = errscan->aprerr;
+#else
+ status = errscan->save_errno;
+#endif
+
+ ap_log_rerror(APLOG_MARK, level, status, r,
+ "%s [%d, #%d]",
+ errscan->desc, errscan->status, errscan->error_id);
}
}
Modified: subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/version.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/version.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/version.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/mod_dav_svn/version.c Tue May 15 12:39:14 2012
@@ -1382,6 +1382,15 @@ merge(dav_resource *target,
SVN_DAV_ERROR_NAMESPACE,
SVN_DAV_ERROR_TAG);
}
+ if (! source->exists)
+ {
+ return dav_svn__new_error_tag(pool, HTTP_METHOD_NOT_ALLOWED,
+ SVN_ERR_INCORRECT_PARAMS,
+ "MERGE activity or transaction resource "
+ "does not exist.",
+ SVN_DAV_ERROR_NAMESPACE,
+ SVN_DAV_ERROR_TAG);
+ }
/* Before attempting the final commit, we need to push any incoming
lock-tokens into the filesystem's access_t. Normally they come
Modified: subversion/branches/1.7.x-issue4153/subversion/po/de.po
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/po/de.po?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/po/de.po [UTF-8] (original)
+++ subversion/branches/1.7.x-issue4153/subversion/po/de.po [UTF-8] Tue May 15 12:39:14 2012
@@ -4604,9 +4604,9 @@ msgid "<<< Started new transaction, base
msgstr "<<< Neue Transaktion basierend auf Originalrevision %ld gestartet\n"
#: ../libsvn_repos/deprecated.c:648 ../svnadmin/main.c:781
-#, fuzzy, c-format
+#, c-format
msgid " removing '\\r' from %s ..."
-msgstr "Entferne »%s« aus Änderungsliste »%s«."
+msgstr " Entferne »\\r« aus %s ..."
#: ../libsvn_repos/dump.c:353
#, c-format
@@ -4620,14 +4620,14 @@ msgstr ""
"WARNUNG: leeres Projektarchiv wird fehlschlagen.\n"
#: ../libsvn_repos/dump.c:457
-#, fuzzy, c-format
+#, c-format
msgid ""
"WARNING: Mergeinfo referencing revision(s) prior to the oldest dumped revision (%ld).\n"
"WARNING: Loading this dump may result in invalid mergeinfo.\n"
msgstr ""
-"WARNUNG: Verweis auf Daten in Revision %ld, welche älter als die älteste\n"
-"WARNUNG: ausgegebene Revision (%ld) ist. Das Laden diese Datei in ein\n"
-"WARNUNG: leeres Projektarchiv wird fehlschlagen.\n"
+"WARNUNG: Zusammenführungsinformationen verweisen auf Revision(en) vor der ältesten\n"
+"WARNUNG: ausgegebene Revision (%ld). Das Laden dieser Datei kann ungültige\n"
+"WARNUNG: Zusammenführungsinformationen zur Folge haben.\n"
#: ../libsvn_repos/dump.c:979 ../libsvn_repos/dump.c:1235
#, c-format
@@ -4815,15 +4815,13 @@ msgstr "Relative Quellrevision %ld ist i
# CHECKME: Check quotes, s/rev/revision/
#: ../libsvn_repos/load-fs-vtable.c:482
-#, fuzzy, c-format
+#, c-format
msgid ""
"Copy source checksum mismatch on copy from '%s'@%ld\n"
"to '%s' in rev based on r%ld"
msgstr ""
-"Prüfsummenfehler für Kopie von »%s«@%ld\n"
-" nach »%s« in der auf r%ld basierten Revision:\n"
-" Erwartet: %s\n"
-" Tatsächlich: %s\n"
+"Prüfsummenfehler beim Kopieren von »%s«@%ld\n"
+"nach »%s« in der auf r%ld basierten Revision"
#: ../libsvn_repos/load-fs-vtable.c:539
msgid "Malformed dumpstream: Revision 0 must not contain node records"
@@ -5641,19 +5639,19 @@ msgid "First line of '%s' contains non-d
msgstr "Die erste Zeile von »%s« enthält eine Nicht-Ziffer"
#: ../libsvn_subr/io.c:3690
-#, fuzzy, c-format
+#, c-format
msgid "Can't create temporary file from template '%s'"
-msgstr "Kann »Pipe« für Aktion »%s« nicht anlegen"
+msgstr "Kann temporäre Datei von Vorlage »%s« nicht anlegen"
#: ../libsvn_subr/io.c:3781
-#, fuzzy, c-format
+#, c-format
msgid "Can't set aside '%s'"
-msgstr "Kann Status von »%s« nicht ermitteln"
+msgstr "Kann »%s« nicht beiseitelegen"
#: ../libsvn_subr/io.c:3793
-#, fuzzy, c-format
+#, c-format
msgid "Unable to make name in '%s'"
-msgstr "Kann Namen für »%s« nicht erstellen"
+msgstr "Kann Namen in »%s« nicht erstellen"
#: ../libsvn_subr/kitchensink.c:46
#, c-format
@@ -5921,11 +5919,8 @@ msgstr "Bitte geben Sie »ja« oder »ne
msgid "Store password unencrypted (yes/no)? "
msgstr "Passwort unverschlüsselt speichern (ja/nein)? "
-# CHECKME: See
-# http://dict.leo.org/forum/viewUnsolvedquery.php?idThread=34212&idForum=2&lp=ende&lang=de
-# CHECKME: Remove ":", it's no proper sentence with it
#: ../libsvn_subr/prompt.c:448
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"-----------------------------------------------------------------------\n"
@@ -5942,12 +5937,13 @@ msgid ""
"'%s'.\n"
"-----------------------------------------------------------------------\n"
msgstr ""
+"\n"
"-----------------------------------------------------------------------\n"
-"ACHTUNG! Ihr Password für den Anmeldungstext (realm)\n"
+"ACHTUNG! Ihr Password für den Anmeldebereich\n"
"\n"
" %s\n"
"\n"
-"kann auf der Platte nur unverschlüsselt gespeichert werden! Es wird\n"
+"kann auf der Festplatte nur unverschlüsselt gespeichert werden! Es wird\n"
"empfohlen, falls möglich Ihr System so zu konfigurieren, dass Subversion\n"
"Passwörter verschlüsselt speichern kann. Siehe die Dokumentation für\n"
"Details.\n"
@@ -5955,16 +5951,15 @@ msgstr ""
"Sie können ein weiteres Anzeigen dieser Warnung verhindern, indem Sie\n"
"den Wert der Option »store-plaintext-passwords« in\n"
"»%s«\n"
-"entweder auf »ja« oder »nein« setzen.\n"
+"entweder auf »yes« oder »no« setzen.\n"
"-----------------------------------------------------------------------\n"
#: ../libsvn_subr/prompt.c:475
msgid "Store passphrase unencrypted (yes/no)? "
msgstr "Passphrase unverschlüsselt speichern (ja/nein)? "
-# FIXME: s/passphrase/passphrases/
#: ../libsvn_subr/prompt.c:477
-#, fuzzy, c-format
+#, c-format
msgid ""
"\n"
"-----------------------------------------------------------------------\n"
@@ -5981,12 +5976,13 @@ msgid ""
"'no' in '%s'.\n"
"-----------------------------------------------------------------------\n"
msgstr ""
+"\n"
"-----------------------------------------------------------------------\n"
"ACHTUNG! Ihre Passphrase für das Klient-Zertifikat:\n"
"\n"
" %s\n"
"\n"
-"kann auf der Platte nur unverschlüsselt gespeichert werden! Es wird\n"
+"kann auf der Festplatte nur unverschlüsselt gespeichert werden! Es wird\n"
"empfohlen, falls möglich Ihr System so zu konfigurieren, dass Subversion\n"
"Passphrasen verschlüsselt speichern kann. Siehe die Dokumentation für\n"
"Details.\n"
@@ -5994,7 +5990,7 @@ msgstr ""
"Sie können ein weiteres Anzeigen dieser Warnung verhindern, indem Sie\n"
"den Wert der Option »store-ssl-client-cert-pp-plaintext« in\n"
"»%s«\n"
-"entweder auf »ja« oder »nein« setzen.\n"
+"entweder auf »yes« oder »no« setzen.\n"
"-----------------------------------------------------------------------\n"
#: ../libsvn_subr/prompt.c:523
@@ -6078,9 +6074,9 @@ msgid " (%a, %d %b %Y)"
msgstr " (%a, %d. %b %Y)"
#: ../libsvn_subr/token.c:66
-#, fuzzy, c-format
+#, c-format
msgid "Token '%s' is unrecognized"
-msgstr "Marke »%s« hat einen nicht erkannten Knotentyp"
+msgstr "Marke »%s« nicht erkannt"
#: ../libsvn_subr/utf.c:190
msgid "Can't lock charset translation mutex"
@@ -6169,32 +6165,32 @@ msgid "Malformed XML: %s at line %ld"
msgstr "Fehlerhaftes XML: %s in Zeile %ld"
#: ../libsvn_wc/adm_crawler.c:114
-#, fuzzy, c-format
+#, c-format
msgid "The existing node '%s' can not be restored."
-msgstr "Der Knoten »%s« wurde nicht gefunden."
+msgstr "Der vorhandene Knoten »%s« kann nicht wiederhergestellt werden."
#: ../libsvn_wc/adm_crawler.c:141
-#, fuzzy, c-format
+#, c-format
msgid "The node '%s' can not be restored."
-msgstr "Der Knoten »%s« wurde nicht gefunden."
+msgstr "Der Knoten »%s« kann nicht wiederhergestellt werden."
#: ../libsvn_wc/adm_crawler.c:724
-#, fuzzy, c-format
+#, c-format
msgid "Can't retrieve base revision for %s"
-msgstr "alle Revisionseigenschaften abfragen"
+msgstr "Kann Basisrevision für »%s« nicht abfragen"
#: ../libsvn_wc/adm_crawler.c:999
msgid "Error aborting report"
msgstr "Fehler beim Abbrechen des Reports"
#: ../libsvn_wc/adm_crawler.c:1274
-#, fuzzy, c-format
+#, c-format
msgid ""
"Checksum mismatch for text base of '%s':\n"
" expected: %s\n"
" actual: %s\n"
msgstr ""
-"Prüfsummenfehler, Datei »%s«:\n"
+"Prüfsummenfehler für Textbasis von »%s«:\n"
" Erwartet: %s\n"
" Tatsächlich: %s\n"
@@ -6211,23 +6207,22 @@ msgstr "»%s« ist kein gültiger Verwal
#: ../libsvn_wc/adm_files.c:208
#, c-format
msgid "Node '%s' has no pristine text"
-msgstr ""
+msgstr "Knoten »%s« hat keinen Ursprungstext"
-# TODO: proper translation for Baseline
#: ../libsvn_wc/adm_files.c:234
-#, fuzzy, c-format
+#, c-format
msgid "Node '%s' has no pristine base text"
-msgstr "»%s« existierte nicht für die Baseline-Ressource"
+msgstr "Knoten »%s« hat keine ursprüngliche Textbasis"
#: ../libsvn_wc/adm_files.c:259
-#, fuzzy, c-format
+#, c-format
msgid "File '%s' has no text base"
-msgstr "Datei »%s« hat inkonsistente Zeilenenden"
+msgstr "Datei »%s« hat keine Textbasis"
#: ../libsvn_wc/adm_files.c:286
-#, fuzzy, c-format
+#, c-format
msgid "Base node of '%s' is not a file"
-msgstr "Pfad »%s« ist keine Datei"
+msgstr "Basisknoten von »%s« ist keine Datei"
#: ../libsvn_wc/adm_files.c:322
#, c-format
@@ -6255,16 +6250,14 @@ msgid "URL '%s' doesn't match existing U
msgstr "URL »%s« stimmt nicht mit der existierenden URL »%s« in »%s« überein"
#: ../libsvn_wc/adm_ops.c:625
-#, fuzzy, c-format
+#, c-format
msgid "'%s' cannot be deleted"
-msgstr "Das Basisverzeichnis kann nicht gelöscht werden"
+msgstr "»%s« kann nicht gelöscht werden"
#: ../libsvn_wc/adm_ops.c:795 ../libsvn_wc/update_editor.c:5607
-#, fuzzy, c-format
+#, c-format
msgid "Can't find parent directory's node while trying to add '%s'"
-msgstr ""
-"Kann Eintrag des Elternverzeichnisses während des Hinzufügens von »%s« nicht\n"
-"finden"
+msgstr "Kann Knoten des Elternverzeichnisses während des Hinzufügens von »%s« nicht finden"
#: ../libsvn_wc/adm_ops.c:804 ../libsvn_wc/update_editor.c:5601
#, c-format
@@ -6326,12 +6319,12 @@ msgstr "Die Datei »%s« hat lokale Änd
#: ../libsvn_wc/adm_ops.c:2087
#, c-format
msgid "'%s' is a directory, and thus cannot be a member of a changelist"
-msgstr "»%s« ist ein Vrzeichnis and kann deswegen nicht Element einer Änderungsliste sein"
+msgstr "»%s« ist ein Verzeichnis and kann deswegen nicht Element einer Änderungsliste sein"
#: ../libsvn_wc/adm_ops.c:2155
-#, fuzzy, c-format
+#, c-format
msgid "Can't add a file external to '%s' as it is not a file in repository '%s'."
-msgstr "Ein externer Dateiverweis von »%s« kann nicht in die Arbeitskopie eines anderen Projektarchivs mit der Wurzel »%s« eingefügt werden"
+msgstr "Kann externen Dateiverweis auf »%s« nicht hinzufügen, da dies keine Datei im Projektarchiv »%s« ist."
#: ../libsvn_wc/cleanup.c:58
#, c-format
@@ -6357,9 +6350,9 @@ msgid "Source '%s' is unexpected kind"
msgstr "Quelle »%s« ist unbekannten Typs"
#: ../libsvn_wc/copy.c:384
-#, fuzzy, c-format
+#, c-format
msgid "cannot handle node kind for '%s'"
-msgstr "»%s« hat einen unbekannten Knotentyp"
+msgstr "Kann Knotentyp für »%s« nicht verarbeiten"
#: ../libsvn_wc/copy.c:648
#, c-format
@@ -6374,9 +6367,9 @@ msgid "Cannot copy to '%s' as it is sche
msgstr "Kann nach »%s« kopieren, da es zum Löschen vorgesehen ist"
#: ../libsvn_wc/copy.c:685
-#, fuzzy, c-format
+#, c-format
msgid "'%s' is already under version control but is excluded."
-msgstr "»%s« befindet sich bereits unter Versionskontrolle"
+msgstr "»%s« befindet sich bereits unter Versionskontrolle, ist aber ausgeschlossen."
#: ../libsvn_wc/copy.c:700
#, c-format
@@ -6389,24 +6382,24 @@ msgid "'%s' already exists and is in the
msgstr "»%s« existiert bereits und ist im Weg"
#: ../libsvn_wc/crop.c:224
-#, fuzzy, c-format
+#, c-format
msgid "Cannot exclude '%s': it is a working copy root"
-msgstr "Erwartete nicht, dass »%s« Basis einer Arbeitskopie ist"
+msgstr "Kann »%s« nicht ausschließen: Es ist die Basis einer Arbeitskopie"
#: ../libsvn_wc/crop.c:232
-#, fuzzy, c-format
+#, c-format
msgid "Cannot exclude '%s': it is a switched path"
-msgstr "Kann »%s« nicht beschneiden: Es ist ein umgestellter Pfad"
+msgstr "Kann »%s« nicht ausschließen: Es ist ein umgestellter Pfad"
#: ../libsvn_wc/crop.c:256
-#, fuzzy, c-format
+#, c-format
msgid "Cannot exclude '%s': it is to be added to the repository. Try commit instead"
-msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
+msgstr "Kann »%s« nicht ausschließen: Es soll dem Projektarchiv hinzugefügt werden. Versuchen Sie stattdessen es zu übertragen"
#: ../libsvn_wc/crop.c:263
-#, fuzzy, c-format
+#, c-format
msgid "Cannot exclude '%s': it is to be deleted from the repository. Try commit instead"
-msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
+msgstr "Kann »%s« nicht ausschließen: Es soll aus dem Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
# CHECKME: Check translation of crop (beschneiden?)!!!!
#: ../libsvn_wc/crop.c:333
@@ -6423,9 +6416,9 @@ msgid "Cannot crop '%s': it is going to
msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
#: ../libsvn_wc/crop.c:366
-#, fuzzy, c-format
+#, c-format
msgid "Cannot crop '%s': it is to be added to the repository. Try commit instead"
-msgstr "Kann »%s« nicht beschneiden: Es soll vom Projektarchiv entfernt werden. Versuchen Sie stattdessen es zu übertragen"
+msgstr "Kann »%s« nicht beschneiden: Es soll dem Projektarchiv hinzugefügt werden. Versuchen Sie stattdessen es zu übertragen"
#: ../libsvn_wc/deprecated.c:2052
#, c-format
@@ -6438,14 +6431,14 @@ msgid "'%s' is not a versioned working c
msgstr "»%s« ist keine versionierte Arbeitskopie"
#: ../libsvn_wc/entries.c:1394
-#, fuzzy, c-format
+#, c-format
msgid "Admin area of '%s' is missing"
-msgstr "Verzeichnis »%s« fehlt"
+msgstr "Administrativer Bereich von »%s« fehlt"
#: ../libsvn_wc/entries.c:1414
-#, fuzzy, c-format
+#, c-format
msgid "'%s' is not of the right kind"
-msgstr "»%s« ist veraltet"
+msgstr "»%s« hat einen falschen Typ"
#: ../libsvn_wc/entries.c:2143
#, c-format
@@ -6468,11 +6461,9 @@ msgid "Path '%s' ends in '%s', which is
msgstr "Pfad »%s« endet mit »%s«, was für diese Operation nicht erlaubt ist"
#: ../libsvn_wc/lock.c:553 ../libsvn_wc/upgrade.c:1266
-#, fuzzy, c-format
+#, c-format
msgid "Working copy format of '%s' is too old (%d); please run 'svn upgrade'"
-msgstr ""
-"Format der Arbeitskopie »%s« ist zu alt (%d); bitte checken Sie die\n"
-"Arbeitskopie erneut aus"
+msgstr "Format der Arbeitskopie »%s« ist zu alt (%d); Bitte führen Sie »svn upgrade« aus"
#: ../libsvn_wc/lock.c:817 ../libsvn_wc/wc_db.c:8585
#, c-format
@@ -6490,9 +6481,9 @@ msgid "Expected '%s' to be a directory b
msgstr "Erwartete, dass »%s« ein Verzeichnis ist, es ist aber eine Datei"
#: ../libsvn_wc/lock.c:991
-#, fuzzy, c-format
+#, c-format
msgid "Can't retrieve an access baton for non-directory '%s'"
-msgstr "Kann keine Einträge aus einem nicht-Verzeichnis lesen"
+msgstr "Kann keine Zugriffsreferenz für nicht-Verzeichnis »%s« erhalten"
#: ../libsvn_wc/lock.c:1000
#, c-format
@@ -6510,9 +6501,9 @@ msgid "No write-lock in '%s'"
msgstr "Keine Schreibsperre in »%s«"
#: ../libsvn_wc/lock.c:1564 ../libsvn_wc/lock.c:1615
-#, fuzzy, c-format
+#, c-format
msgid "Can't obtain lock on non-directory '%s'."
-msgstr "Kann Verzeichnis »%s« nicht öffnen"
+msgstr "Kann keine Sperre für nicht-Verzeichnis »%s« erhalten."
# CHECKME: s/callback/hook/ ??
#: ../libsvn_wc/merge.c:866 ../libsvn_wc/merge.c:1139
@@ -6549,7 +6540,7 @@ msgstr "Ungültiger Wert für Feld »%s�
#: ../libsvn_wc/old-and-busted.c:346
#, c-format
msgid "Found an unexpected \\0 in the file external '%s'"
-msgstr "Ein nicht geschütztes \\0 wurde im externen Dateiverweis »%s« gefunden"
+msgstr "Ein nicht erwartetes \\0 wurde im externen Dateiverweis »%s« gefunden"
#: ../libsvn_wc/old-and-busted.c:390
#, c-format
@@ -6567,14 +6558,14 @@ msgid "Entry for '%s' has invalid reposi
msgstr "Eintrag »%s« hat eine ungültige Projektarchiv-Basis"
#: ../libsvn_wc/old-and-busted.c:530 ../libsvn_wc/old-and-busted.c:867
-#, fuzzy, c-format
+#, c-format
msgid "Entry '%s' has invalid 'schedule' value"
-msgstr "Eintrag »%s« hat einen ungültigen »%s« Wert"
+msgstr "Eintrag »%s« hat einen ungültigen Wert für »schedule«"
#: ../libsvn_wc/old-and-busted.c:680
-#, fuzzy, c-format
+#, c-format
msgid "Entry '%s' has invalid 'depth' value"
-msgstr "Eintrag »%s« hat einen ungültigen »%s« Wert"
+msgstr "Eintrag »%s« hat einen ungültigen Wert für »depth«"
#: ../libsvn_wc/old-and-busted.c:731
#, c-format
@@ -6617,9 +6608,9 @@ msgid "Error at entry %d in entries file
msgstr "Fehler bei Eintrag %d in Eintragsdatei für »%s«:"
#: ../libsvn_wc/props.c:283
-#, fuzzy, c-format
+#, c-format
msgid "The property '%s' may not be merged into '%s'."
-msgstr "Eigenschaft »%s« wurde von »%s« gelöscht.\n"
+msgstr "Eigenschaft »%s« darf nicht nach »%s« zusammengeführt werden."
#: ../libsvn_wc/props.c:427
#, c-format
@@ -6640,34 +6631,34 @@ msgstr ""
"aber die Eigenschaft wurde lokal bereits gelöscht."
#: ../libsvn_wc/props.c:451
-#, fuzzy, c-format
+#, c-format
msgid ""
"Trying to delete property '%s' with value '%s',\n"
"but property has been locally added with value '%s'."
msgstr ""
-"Versuch, die Eigenschaft »%s« von »%s« in »%s« zu ändern,\n"
+"Versuch, die Eigenschaft »%s« mit dem Wert »%s« zu löschen,\n"
"aber die Eigenschaft wurde lokal mit dem Wert »%s« hinzugefügt."
#: ../libsvn_wc/props.c:468
-#, fuzzy, c-format
+#, c-format
msgid ""
"Trying to delete property '%s' with value '%s',\n"
"but it has been modified from '%s' to '%s'."
msgstr ""
"Versuch, die Eigenschaft »%s« mit dem Wert »%s« zu löschen,\n"
-"aber der Wert wurde von »%s« in »%s« geändert."
+"aber der Wert wurde von »%s« nach »%s« geändert."
#: ../libsvn_wc/props.c:479
-#, fuzzy, c-format
+#, c-format
msgid ""
"Trying to delete property '%s' with value '%s',\n"
"but property with value '%s' is locally deleted."
msgstr ""
-"Versuch, die Eigenschaft »%s« mit dem Wert »%s« anzulegen,\n"
-"aber die Eigenschaft wurde lokal bereits gelöscht."
+"Versuch, die Eigenschaft »%s« mit dem Wert »%s« zu löschen,\n"
+"aber die Eigenschaft mit dem Wert »%s« wurde lokal gelöscht."
#: ../libsvn_wc/props.c:491
-#, fuzzy, c-format
+#, c-format
msgid ""
"Trying to delete property '%s' with value '%s',\n"
"but the local value is '%s'."
@@ -6735,9 +6726,8 @@ msgid "Property '%s' is an entry propert
msgstr "Eigenschaft »%s« ist eine Eintragseigenschaft"
#: ../libsvn_wc/props.c:1804 ../libsvn_wc/props.c:1811
-#, fuzzy
msgid "Failed to load properties"
-msgstr "Konnte Eigenschaften nicht vom Datenträger laden"
+msgstr "Konnte Eigenschaften nicht laden"
#: ../libsvn_wc/props.c:1853
#, c-format
@@ -6765,19 +6755,18 @@ msgid "Can't set properties on '%s': inv
msgstr ""
#: ../libsvn_wc/props.c:2063
-#, fuzzy
msgid "Failed to load current properties"
-msgstr "Konnte Eigenschaften nicht vom Datenträger laden"
+msgstr "Konnte aktuelle Eigenschaften nicht laden"
#: ../libsvn_wc/props.c:2208
-#, fuzzy, c-format
+#, c-format
msgid "Unrecognized line ending style '%s' for '%s'"
-msgstr "Stil für Zeilenende für »%s« nicht erkannt"
+msgstr "Stil für Zeilenende »%s« nicht erkannt für »%s«"
#: ../libsvn_wc/props.c:2267
-#, fuzzy, c-format
+#, c-format
msgid "Cannot set non-inheritable mergeinfo on a non-directory ('%s')"
-msgstr "Kann »%s« nicht für ein Verzeichnis setzen (»%s«)"
+msgstr "Kann nicht-vererbbare Zusammenführungsinformationen auf ein nicht-Verzeichnis (»%s«) nicht setzen"
#: ../libsvn_wc/props.c:2488 ../libsvn_wc/props.c:2564
#, c-format
@@ -6805,32 +6794,29 @@ msgid "Invalid %s property on '%s': targ
msgstr "Ungültige Eigenschaft %s auf »%s«: Ziel »%s« ist ein absoluter Pfad oder enthält »..«"
#: ../libsvn_wc/questions.c:203
-#, fuzzy, c-format
+#, c-format
msgid ""
"Checksum mismatch indicates corrupt text base for file: '%s':\n"
" expected: %s\n"
" actual: %s\n"
msgstr ""
-"Prüfsummenfehler ist Anzeichen für beschädigte Textbasis: »%s«\n"
+"Prüfsummenfehler ist Anzeichen für beschädigte Textbasis der Datei: »%s«\n"
" Erwartet: %s\n"
" Tatsächlich: %s\n"
#: ../libsvn_wc/relocate.c:105
-#, fuzzy, c-format
+#, c-format
msgid "Cannot relocate '%s' as it is not the root of a working copy"
-msgstr "Pfad »%s« ist nicht in der Arbeitskopie enthalten"
+msgstr "Kann »%s« nicht umplatzieren da es keine Basis einer Arbeitskopie ist"
#: ../libsvn_wc/relocate.c:112
-#, fuzzy, c-format
+#, c-format
msgid "Cannot relocate '%s' as it is not the root of a working copy; try relocating '%s' instead"
-msgstr ""
-"Kann »%s« nicht kopieren oder verschieben, da es sich noch nicht im\n"
-"Projektarchiv befindet, versuchen Sie es zuerst zu übertragen"
+msgstr "Kann »%s« nicht umplatzieren da es keine Basis einer Arbeitskopie ist; Versuchen Sie stattdessen »%s« umzuplatzieren"
#: ../libsvn_wc/relocate.c:129
-#, fuzzy
msgid "Cannot relocate a single file"
-msgstr "Kann externen Dateiverweis nicht löschen"
+msgstr "Kann eine einzelne Datei nicht umplatzieren"
#: ../libsvn_wc/relocate.c:136
#, c-format
@@ -6868,9 +6854,9 @@ msgid "Error parsing tree conflict skel"
msgstr "Fehler beim Einlesen der Baumkonfliktvorlage"
#: ../libsvn_wc/tree_conflicts.c:468
-#, fuzzy, c-format
+#, c-format
msgid "Attempt to add tree conflict that already exists at '%s'"
-msgstr "Es wurde versucht, einen Baumkonflikt hinzuzufügen, den es bereits gibt"
+msgstr "Es wurde versucht, einen Baumkonflikt hinzuzufügen, der in »%s« bereits vorhanden ist"
#: ../libsvn_wc/update_editor.c:1051
#, c-format
@@ -6896,14 +6882,14 @@ msgstr ""
"Administrationsverzeichnis trägt"
#: ../libsvn_wc/update_editor.c:2313
-#, fuzzy, c-format
+#, c-format
msgid "Failed to add directory '%s': a separate working copy with the same name already exists"
-msgstr "Konnte Verzeichnis »%s« nicht hinzufügen: ein versioniertes Verzeichnis mit demselben Namen existiert bereits"
+msgstr "Konnte Verzeichnis »%s« nicht hinzufügen: ein andere Arbeitskopie mit gleichem Namen existiert bereits"
#: ../libsvn_wc/update_editor.c:2322
-#, fuzzy, c-format
+#, c-format
msgid "Switched directory '%s' does not match expected URL '%s'"
-msgstr "URL »%s« des existierenden Verzeichnisses »%s« entspricht nicht der erwarteten URL »%s«"
+msgstr "Umgestelltes Vereichnis »%s« entspricht nicht der erwarteten URL »%s«"
#: ../libsvn_wc/update_editor.c:2348
#, c-format
@@ -6917,29 +6903,28 @@ msgstr "Konnte Eigenschaften nicht zusam
#: ../libsvn_wc/update_editor.c:2990
#, c-format
msgid "Failed to mark '%s' absent: item of the same name is already scheduled for addition"
-msgstr ""
-"Konnte »%s« nicht als fehlend markieren: ein Objekt mit demselben Namen wurde\n"
-"bereits zur Übertragung eingeplant"
+msgstr "Konnte »%s« nicht als fehlend markieren: ein Eintrag mit demselben Namen wurde bereits zur Hinzufügung eingeplant"
#: ../libsvn_wc/update_editor.c:3081
-#, fuzzy, c-format
+#, c-format
msgid "Failed to add file '%s': object of the same name as the administrative directory"
-msgstr ""
-"Konnte Verzeichnis »%s« nicht hinzufügen, da es denselben Namen wie das\n"
-"Administrationsverzeichnis trägt"
+msgstr "Konnte Datei »%s« nicht hinzufügen, da es denselben Namen wie Administrationsverzeichnis trägt"
#: ../libsvn_wc/update_editor.c:3208
-#, fuzzy, c-format
+#, c-format
msgid "Switched file '%s' does not match expected URL '%s'"
-msgstr "URL »%s« der existierenden Datei »%s« entspricht nicht der erwarteten URL »%s«"
+msgstr "Umgestellte Datei »%s« entspricht nicht der erwarteten URL »%s«"
#: ../libsvn_wc/update_editor.c:3469
-#, fuzzy, c-format
+#, c-format
msgid ""
"Checksum mismatch for '%s':\n"
" expected: %s\n"
" recorded: %s\n"
-msgstr "Prüfsummenfehler für »%s«; erwartet: »%s«, verzeichnet: »%s«"
+msgstr ""
+"Prüfsummenfehler für »%s«:\n"
+" erwartet: %s\n"
+"verzeichnet: %s\n"
#: ../libsvn_wc/update_editor.c:4911
#, c-format
@@ -6986,9 +6971,9 @@ msgid "The working copy '%s' is at forma
msgstr ""
#: ../libsvn_wc/upgrade.c:1545
-#, fuzzy, c-format
+#, c-format
msgid "Cannot upgrade '%s' as it is not a pre-1.7 working copy root"
-msgstr "Erwartete nicht, dass »%s« Basis einer Arbeitskopie ist"
+msgstr "Kann »%s« nicht in ein neueres Format bringen, da es keine Basis einer Arbeitskopie älter als Version 1.7 ist"
#: ../libsvn_wc/util.c:58
#, c-format
@@ -7011,24 +6996,24 @@ msgid "The node '%s' has a corrupt check
msgstr "Der Knoten »%s« hat einen fehlerhaften Prüfsummenwert."
#: ../libsvn_wc/wc_db.c:2286
-#, fuzzy, c-format
+#, c-format
msgid "Pristine text not found"
-msgstr "Eigenschaft nicht gefunden"
+msgstr "Ursprungstext nicht gefunden"
#: ../libsvn_wc/wc_db.c:2473
-#, fuzzy, c-format
+#, c-format
msgid "The pristine text with checksum '%s' was not found"
-msgstr "Der Knoten »%s« wurde nicht gefunden."
+msgstr "Der Ursprungstext mit der Prüfsumme »%s« wurde nicht gefunden."
#: ../libsvn_wc/wc_db.c:2513
-#, fuzzy, c-format
+#, c-format
msgid "The pristine text with MD5 checksum '%s' was not found"
-msgstr "Der Knoten »%s« wurde nicht gefunden."
+msgstr "Der Ursprungstext mit der MD5-Prüfsumme »%s« wurde nicht gefunden."
#: ../libsvn_wc/wc_db.c:2705
#, c-format
msgid "The pristine text with checksum '%s' was found in the DB or on disk but not both"
-msgstr ""
+msgstr "Der Ursprungstext mit der Prüfsumme »%s« wurde in der Datenbank oder der Festplatte gefunden, aber nicht beides."
#: ../libsvn_wc/wc_db.c:3036 ../libsvn_wc/wc_db.c:3258
#, c-format
@@ -7036,14 +7021,14 @@ msgid "Cannot copy '%s' excluded by serv
msgstr ""
#: ../libsvn_wc/wc_db.c:3042
-#, fuzzy, c-format
+#, c-format
msgid "Cannot handle status of '%s'"
-msgstr "Kann keine URL für »%s« finden"
+msgstr "Kann Status von »%s« nicht verarbeiten"
#: ../libsvn_wc/wc_db.c:3885
-#, fuzzy, c-format
+#, c-format
msgid "Can't store properties for '%s' in '%s'."
-msgstr "Kann Eigenschafts-Hashwert nicht nach »%s« schreiben"
+msgstr "Kann Eigenschaftswert für »%s« nicht in »%s« speichern"
#: ../libsvn_wc/wc_db.c:5392
#, c-format
@@ -7056,14 +7041,14 @@ msgid "Could not find node '%s' for reco
msgstr ""
#: ../libsvn_wc/wc_db.c:6863 ../libsvn_wc/wc_db.c:6965
-#, fuzzy, c-format
+#, c-format
msgid "Expected node '%s' to be added."
-msgstr "Erwartete, dass »%s« ein Verzeichnis ist, es ist aber eine Datei"
+msgstr "Erwartete, dass Knoten »%s« hinzugefügt wird."
#: ../libsvn_wc/wc_db.c:7280
#, c-format
msgid "Expected node '%s' to be deleted."
-msgstr ""
+msgstr "Erwartete, dass Knoten »%s« gelöscht wird."
#: ../libsvn_wc/wc_db.c:7554
#, c-format
@@ -7088,17 +7073,17 @@ msgstr "Arbeitskopie »%s« gesperrt."
#: ../libsvn_wc/wc_db.c:8639
#, c-format
msgid "'%s' is already locked via '%s'."
-msgstr "»%s« ist bereits durch »%s« gesperrt"
+msgstr "»%s« ist bereits durch »%s« gesperrt."
#: ../libsvn_wc/wc_db.c:8753
-#, fuzzy, c-format
+#, c-format
msgid "Working copy not locked at '%s'."
-msgstr "Arbeitskopie »%s« ist nicht gesperrt"
+msgstr "Arbeitskopie »%s« ist nicht gesperrt."
#: ../libsvn_wc/wc_db.c:9370
-#, fuzzy, c-format
+#, c-format
msgid "'%s' has no BASE_NODE"
-msgstr "»%s« hat keine URL"
+msgstr "»%s« hat keinen »BASE_NODE«"
#: ../libsvn_wc/wc_db_pdh.c:234
#, c-format
@@ -7108,18 +7093,17 @@ msgstr ""
"Arbeitskopie erneut aus"
#: ../libsvn_wc/wc_db_pdh.c:244
-#, fuzzy, c-format
+#, c-format
msgid ""
"This client is too old to work with the working copy at\n"
"'%s' (format %d).\n"
"You need to get a newer Subversion client. For more details, see\n"
" http://subversion.apache.org/faq.html#working-copy-format-change\n"
msgstr ""
-"Der Client ist zu alt, um mit der Arbeitskopie »%s« zusammen zu arbeiten.\n"
-"Sie benötigen einen neueren Subversion-Client oder müssen diese Arbeitskopie\n"
-"auf eine ältere Version zurücksetzen. Vergleiche\n"
-"http://subversion.apache.org/faq.html#working-copy-format-change\n"
-"für Details."
+"Dieser Client ist zu alt, um mit dieser Arbeitskopie umzugehen:\n"
+"»%s« (Format %d).\n"
+"Sie benötigen einen neueren Subversion-Client. Für mehr Details, siehe\n"
+" http://subversion.apache.org/faq.html#working-copy-format-change\n"
#: ../libsvn_wc/wc_db_pdh.c:265
msgid "Cleanup with an older 1.7 client before upgrading with this client"
@@ -7138,9 +7122,9 @@ msgstr "»%s« ist keine Basis einer Arb
# CHECKME: What's WCROOT? A variable or short for "working copy root"?
#: ../libsvn_wc/wc_db_util.c:68
-#, fuzzy, c-format
+#, c-format
msgid "Missing a row in WCROOT."
-msgstr "Fehlende Zeile in WCROOT für »%s«."
+msgstr "Fehlende Zeile in WCROOT."
#: ../libsvn_wc/workqueue.c:338
#, c-format
@@ -7470,9 +7454,8 @@ msgid "Destination directory exists; ple
msgstr "Zielverzeichnis existiert; bitte löschen Sie das Verzeichnis oder verwenden Sie »--force« zum Überschreiben"
#: ../svn/export-cmd.c:118 ../svn/switch-cmd.c:179 ../svn/update-cmd.c:107
-#, fuzzy
msgid "Failure occured processing one or more externals definitions"
-msgstr "»svn:externals«-Definitionen ignorieren"
+msgstr "Kann eine oder mehrere »svn:externals«-Definitionen nicht verarbeiten"
#: ../svn/help-cmd.c:50
#, c-format
@@ -7839,12 +7822,12 @@ msgstr ""
# TODO: Duplicated message!!!!
#: ../svn/log-cmd.c:625
msgid "-c and -r are mutually exclusive"
-msgstr "-c und -r schließen sich gegenseitig aus"
+msgstr "-c und -r schließen einander aus"
#: ../svn/log-cmd.c:652
-#, fuzzy, c-format
+#, c-format
msgid "Only relative paths can be specified after a URL for 'svn log', but '%s' is not a relative path"
-msgstr "Nach einer URL können nur relative Pfade angegeben werden"
+msgstr "Mit »svn log« können nach einer URL nur relative Pfade angegeben werden, »%s« ist aber kein relativer Pfad"
#: ../svn/log-cmd.c:697
#, c-format
@@ -7887,13 +7870,12 @@ msgstr ""
" --depth=immediates"
#: ../svn/main.c:146
-#, fuzzy
msgid "the change made by revision ARG (like -r ARG-1:ARG)\n"
-msgstr "die in Revision PAR durchgeführte Änderung"
+msgstr "die in Revision PAR durchgeführte Änderung (wie -r PAR-1:PAR)\n"
#: ../svn/main.c:150
msgid "ARG (some commands also take ARG1:ARG2 range)\n"
-msgstr ""
+msgstr "PAR (einige Kommandos akzeptieren auch Bereiche PAR1:PAR2)\n"
#: ../svn/main.c:165
msgid "read log message from file ARG"
@@ -8082,11 +8064,8 @@ msgid "remove changelist association"
msgstr "Bezug zur Änderungsliste entfernen"
#: ../svn/main.c:276
-#, fuzzy
msgid "operate only on members of changelist ARG"
-msgstr ""
-"nur auf Elementen der Änderungsliste PAR operieren\n"
-" [äquivalent: --cl]"
+msgstr "nur auf Elementen der Änderungsliste PAR operieren"
#: ../svn/main.c:278
msgid "don't delete changelists after commit"
@@ -8105,9 +8084,8 @@ msgid "retrieve no revision properties"
msgstr "keine Revisionseigenschaften abfragen"
#: ../svn/main.c:285
-#, fuzzy
msgid "set revision property ARG in new revision\n"
-msgstr "Revisionseigenschaft PAR abfragen"
+msgstr "Revisionseigenschaft PAR in neuer Revision setzen\n"
#: ../svn/main.c:288
msgid "make intermediate directories"
@@ -8168,9 +8146,8 @@ msgid "use git's extended diff format"
msgstr ""
#: ../svn/main.c:337
-#, fuzzy
msgid "Allow merge into mixed-revision working copy.\n"
-msgstr "Kann nicht zurück in eine Arbeitskopie mit verschiedenen Revisionen integrieren, versuchen Sie erst zu aktualisieren"
+msgstr "Erlaube Zusammenführung in eine Arbeitskopie mit verschiedenen Revisionen.\n"
#: ../svn/main.c:408
msgid ""
@@ -10072,29 +10049,28 @@ msgid "--- Reverse-merging r%ld through
msgstr "-- Rückwärtiges Zusammenführen von r%ld bis r%ld in »%s«:\n"
#: ../svn/notify.c:765
-#, fuzzy, c-format
msgid "--- Recording mergeinfo for merge between repository URLs into '%s':\n"
-msgstr "-- Zusammenführen der Unterschiede zwischen Projektarchiv-URLs in »%s«:\n"
+msgstr "-- Aufzeichnung der Informationen für Zusammenführung zwischen Projektarchiv-URLs in »%s«:\n"
#: ../svn/notify.c:775
-#, fuzzy, c-format
+#, c-format
msgid "--- Recording mergeinfo for merge of r%ld into '%s':\n"
-msgstr "-- Rückwärtiges Zusammenführen von r%ld in »%s«:\n"
+msgstr "-- Aufzeichnung der Informationen für Zusammenführung von r%ld in »%s«:\n"
#: ../svn/notify.c:780
-#, fuzzy, c-format
+#, c-format
msgid "--- Recording mergeinfo for reverse merge of r%ld into '%s':\n"
-msgstr "-- Rückwärtiges Zusammenführen (aus fremden Projektarchiv) von r%ld in »%s«:\n"
+msgstr "-- Aufzeichnung der Informationen für rückwärtiges Zusammenführen von r%ld in »%s«:\n"
#: ../svn/notify.c:785
-#, fuzzy, c-format
+#, c-format
msgid "--- Recording mergeinfo for merge of r%ld through r%ld into '%s':\n"
-msgstr "-- Rückwärtiges Zusammenführen von r%ld bis r%ld in »%s«:\n"
+msgstr "-- Aufzeichnung der Informationen für Zusammenführung von r%ld bis r%ld in »%s«:\n"
#: ../svn/notify.c:790
-#, fuzzy, c-format
+#, c-format
msgid "--- Recording mergeinfo for reverse merge of r%ld through r%ld into '%s':\n"
-msgstr "-- Rückwärtiges Zusammenführen von r%ld bis r%ld in »%s«:\n"
+msgstr "-- Aufzeichnung der Informationen für rückwärtiges Zusammenführen von r%ld bis r%ld in »%s«:\n"
#: ../svn/notify.c:800
#, fuzzy, c-format
@@ -10147,9 +10123,9 @@ msgid "property '%s' deleted from reposi
msgstr "Eigenschaft »%s« wurde von Revision %ld im Projektarchiv gelöscht\n"
#: ../svn/notify.c:879
-#, fuzzy, c-format
+#, c-format
msgid "Upgraded '%s'.\n"
-msgstr "Überspringe »%s«\n"
+msgstr "In neues Format gebracht: »%s«.\n"
#: ../svn/notify.c:885
#, c-format
Modified: subversion/branches/1.7.x-issue4153/subversion/svn/diff-cmd.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/svn/diff-cmd.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/svn/diff-cmd.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/svn/diff-cmd.c Tue May 15 12:39:14 2012
@@ -247,6 +247,12 @@ svn_cl__diff(apr_getopt_t *os,
SVN_ERR(svn_cl__args_to_target_array_print_reserved(&tmp2, os, tmp,
ctx, FALSE, pool));
+
+ /* Check if either or both targets were skipped (e.g. because they
+ * were .svn directories). */
+ if (tmp2->nelts < 2)
+ return svn_error_create(SVN_ERR_CL_INSUFFICIENT_ARGS, NULL, NULL);
+
SVN_ERR(svn_opt_parse_path(&old_rev, &old_target,
APR_ARRAY_IDX(tmp2, 0, const char *),
pool));
Modified: subversion/branches/1.7.x-issue4153/subversion/svn/status.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/svn/status.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/svn/status.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/svn/status.c Tue May 15 12:39:14 2012
@@ -87,6 +87,17 @@ combined_status(const svn_client_status_
return new_status;
}
+/* Return the combined repository STATUS as shown in 'svn status' based
+ on the repository node status and repository text status */
+static enum svn_wc_status_kind
+combined_repos_status(const svn_client_status_t *status)
+{
+ if (status->repos_node_status == svn_wc_status_modified)
+ return status->repos_text_status;
+
+ return status->repos_node_status;
+}
+
/* Return the single character representation of the switched column
status. */
static char
@@ -388,7 +399,7 @@ svn_cl__print_status_xml(const char *pat
{
svn_xml_make_open_tag(&sb, pool, svn_xml_normal, "repos-status",
"item",
- generate_status_desc(status->repos_text_status),
+ generate_status_desc(combined_repos_status(status)),
"props",
generate_status_desc(status->repos_prop_status),
NULL);
Modified: subversion/branches/1.7.x-issue4153/subversion/svnserve/serve.c
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/svnserve/serve.c?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/svnserve/serve.c (original)
+++ subversion/branches/1.7.x-issue4153/subversion/svnserve/serve.c Tue May 15 12:39:14 2012
@@ -1621,12 +1621,18 @@ static svn_error_t *get_dir(svn_ra_svn_c
SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "!)(!"));
if (want_contents)
{
+ const char *missing_date = svn_time_to_cstring(0, pool);
for (hi = apr_hash_first(pool, entries); hi; hi = apr_hash_next(hi))
{
const char *name = svn__apr_hash_index_key(hi);
svn_dirent_t *entry = svn__apr_hash_index_val(hi);
- cdate = (entry->time == (time_t) -1) ? NULL
+ /* The client does not properly handle a missing CDATE. For
+ interoperability purposes, we must fill in some junk.
+
+ See libsvn_ra_svn/client.c:ra_svn_get_dir() */
+ cdate = (entry->time == (time_t) -1)
+ ? missing_date
: svn_time_to_cstring(entry->time, pool);
SVN_ERR(svn_ra_svn_write_tuple(conn, pool, "cwnbr(?c)(?c)", name,
svn_node_kind_to_word(entry->kind),
Propchange: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/basic_tests.py
------------------------------------------------------------------------------
Merged /subversion/branches/1.7.x-issue4169/subversion/tests/cmdline/basic_tests.py:r1330537-1336116
Merged /subversion/branches/1.7.x/subversion/tests/cmdline/basic_tests.py:r1309894-1338666
Merged /subversion/branches/1.7.x-issue4087/subversion/tests/cmdline/basic_tests.py:r1243707-1336073
Merged /subversion/trunk/subversion/tests/cmdline/basic_tests.py:r1164929
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/davautocheck.sh
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/davautocheck.sh?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/davautocheck.sh (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/davautocheck.sh Tue May 15 12:39:14 2012
@@ -71,6 +71,9 @@
# To use value for "SVNPathAuthz" directive set SVN_PATH_AUTHZ with
# appropriate value in the environment.
#
+# To load an MPM module for Apache 2.4 use APACHE_MPM=event in the
+# environment.
+#
# Passing --no-tests as argv[1] will have the script start a server
# but not run any tests.
@@ -255,6 +258,10 @@ LOAD_MOD_AUTHN_FILE="$(get_loadmodule_co
LOAD_MOD_AUTHZ_USER="$(get_loadmodule_config mod_authz_user)" \
|| fail "Authz_User module not found."
}
+if [ ${APACHE_MPM:+set} ]; then
+ LOAD_MOD_MPM=$(get_loadmodule_config mod_mpm_$APACHE_MPM) \
+ || fail "MPM module not found"
+fi
HTTPD_PORT=$(($RANDOM+1024))
HTTPD_ROOT="$ABS_BUILDDIR/subversion/tests/cmdline/httpd-$(date '+%Y%m%d-%H%M%S')"
@@ -278,6 +285,7 @@ $HTPASSWD -b $HTTPD_USERS jconstant ray
touch $HTTPD_MIME_TYPES
cat > "$HTTPD_CFG" <<__EOF__
+$LOAD_MOD_MPM
$LOAD_MOD_LOG_CONFIG
$LOAD_MOD_MIME
$LOAD_MOD_ALIAS
@@ -292,9 +300,22 @@ $LOAD_MOD_AUTHZ_USER
$LOAD_MOD_AUTHZ_HOST
LoadModule authz_svn_module "$MOD_AUTHZ_SVN"
+__EOF__
+
+if "$HTTPD" -v | grep '/2\.[012]' >/dev/null; then
+ cat >> "$HTTPD_CFG" <<__EOF__
LockFile lock
User $(id -un)
Group $(id -gn)
+__EOF__
+else
+ cat >> "$HTTPD_CFG" <<__EOF__
+# TODO: maybe uncomment this for prefork,worker MPMs only?
+# Mutex file:lock mpm-accept
+__EOF__
+fi
+
+cat >> "$HTTPD_CFG" <<__EOF__
Listen $HTTPD_PORT
ServerName localhost
PidFile "$HTTPD_PID"
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/depth_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/depth_tests.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/depth_tests.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/depth_tests.py Tue May 15 12:39:14 2012
@@ -2842,6 +2842,48 @@ def update_below_depth_empty(sbox):
svntest.actions.run_and_verify_update(sbox.wc_dir, expected_output, None,
None, None)
+# Test for issue #4136.
+@Issue(4136)
+def commit_then_immediates_update(sbox):
+ "deep commit followed by update --depth immediates"
+ sbox.build()
+
+ repo_url = sbox.repo_url
+ wc_dir = sbox.wc_dir
+ mu_path = sbox.ospath('A/mu')
+
+ # Modify A/mu and commit the changes.
+ svntest.main.file_write(mu_path, "modified mu\n")
+ expected_output = svntest.wc.State(wc_dir, {
+ 'A/mu' : Item(verb='Sending'),
+ })
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.tweak('A/mu', wc_rev=2, status=' ')
+ svntest.actions.run_and_verify_commit(wc_dir,
+ expected_output,
+ expected_status,
+ None,
+ wc_dir)
+
+ # Now, update --depth immediates in the root of the working copy.
+ expected_output = svntest.wc.State(wc_dir, { })
+ expected_disk = svntest.main.greek_state.copy()
+ expected_disk.tweak('A/mu', contents="modified mu\n")
+ expected_status = svntest.wc.State(wc_dir, { '' : svntest.wc.StateItem() })
+ expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+ expected_status.tweak('', wc_rev=2, status=' ')
+ expected_status.tweak('A', wc_rev=2, status=' ')
+ expected_status.tweak('A/mu', wc_rev=2, status=' ')
+ expected_status.tweak('iota', wc_rev=2, status=' ')
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output,
+ expected_disk,
+ expected_status,
+ None, None, None, None, None, False,
+ "--depth=immediates", wc_dir)
+
+
+
#----------------------------------------------------------------------
# list all tests here, starting with None:
test_list = [ None,
@@ -2889,6 +2931,7 @@ test_list = [ None,
update_depth_empty_root_of_infinite_children,
sparse_update_with_dash_dash_parents,
update_below_depth_empty,
+ commit_then_immediates_update,
]
if __name__ == "__main__":
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/externals_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/externals_tests.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/externals_tests.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/externals_tests.py Tue May 15 12:39:14 2012
@@ -713,6 +713,13 @@ def disallow_dot_or_dotdot_directory_ref
if not external_urls: external_urls = list(external_url_for.values())
externals_value_8 = external_urls.pop() + " /foo \n"
if not external_urls: external_urls = list(external_url_for.values())
+ if svntest.main.is_os_windows():
+ externals_value_9 = external_urls.pop() + " D:/foo\n"
+ if not external_urls: external_urls = list(external_url_for.values())
+ externals_value_10 = external_urls.pop() + " D:\\foo\n"
+ if not external_urls: external_urls = list(external_url_for.values())
+ externals_value_11 = external_urls.pop() + " D:foo\n"
+ if not external_urls: external_urls = list(external_url_for.values())
set_externals_for_path_expect_error(B_path, externals_value_1)
set_externals_for_path_expect_error(G_path, externals_value_2)
@@ -722,6 +729,10 @@ def disallow_dot_or_dotdot_directory_ref
set_externals_for_path_expect_error(B_path, externals_value_6)
set_externals_for_path_expect_error(G_path, externals_value_7)
set_externals_for_path_expect_error(H_path, externals_value_8)
+ if svntest.main.is_os_windows():
+ set_externals_for_path_expect_error(B_path, externals_value_9)
+ set_externals_for_path_expect_error(B_path, externals_value_10)
+ set_externals_for_path_expect_error(B_path, externals_value_11)
#----------------------------------------------------------------------
@@ -1884,6 +1895,72 @@ def exclude_externals(sbox):
None, None, None, None, False,
'--set-depth', 'infinity', wc_dir)
+def file_externals_different_url(sbox):
+ "update file externals via different url"
+
+ sbox.build()
+
+ wc_dir = sbox.wc_dir
+ r1_url = sbox.repo_url
+
+ r2_dir, r2_url = sbox.add_repo_path('2')
+ svntest.main.copy_repos(sbox.repo_dir, r2_dir, 1, 0)
+
+
+ sbox.simple_propset('svn:externals',
+ 'r1-e-1 ' + r1_url + '/iota\n' +
+ r1_url + '/iota r1-e-2\n' +
+ 'r2-e-1 ' + r2_url + '/iota\n' +
+ r2_url + '/iota r2-e-2\n' +
+ '^/iota rr-e-1\n', '')
+
+ # All file externals appear in the working copy, with normalised URLs.
+ expected_output = svntest.wc.State(wc_dir, {
+ 'r1-e-1' : Item(status='A '),
+ 'r1-e-2' : Item(status='A '),
+ 'r2-e-1' : Item(status='A '),
+ 'r2-e-2' : Item(status='A '),
+ 'rr-e-1' : Item(status='A '),
+ })
+
+ expected_status = actions.get_virginal_state(wc_dir, 1)
+ expected_status.tweak('', status=' M')
+ expected_status.add({
+ 'r2-e-1' : Item(status=' ', wc_rev='1', switched='X'),
+ 'r1-e-1' : Item(status=' ', wc_rev='1', switched='X'),
+ 'r1-e-2' : Item(status=' ', wc_rev='1', switched='X'),
+ 'rr-e-1' : Item(status=' ', wc_rev='1', switched='X'),
+ 'r2-e-2' : Item(status=' ', wc_rev='1', switched='X'),
+ })
+
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output, None,
+ expected_status, None)
+
+ # Verify that all file external URLs are descendants of r1_url
+ for e in ['r1-e-1', 'r1-e-2', 'r2-e-1', 'r2-e-2', 'rr-e-1']:
+ actions.run_and_verify_info([{'Repository Root' : r1_url}],
+ os.path.join(sbox.wc_dir, e))
+
+
+ svntest.actions.run_and_verify_svn(None, None, [],
+ 'relocate', r1_url, r2_url, wc_dir)
+
+
+ # URLs of existing file externals are silently rewritten
+ expected_output = svntest.wc.State(wc_dir, {
+ })
+
+ svntest.actions.run_and_verify_update(wc_dir,
+ expected_output, None,
+ expected_status, None)
+
+ # Verify that all file external URLs are descendants of r2_url
+ for e in ['r1-e-1', 'r1-e-2', 'r2-e-1', 'r2-e-2', 'rr-e-1']:
+ actions.run_and_verify_info([{'Repository Root' : r2_url}],
+ os.path.join(sbox.wc_dir, e))
+
+
def file_external_in_unversioned(sbox):
"file external in unversioned dir"
@@ -2270,6 +2347,7 @@ test_list = [ None,
incoming_file_on_file_external,
incoming_file_external_on_file,
exclude_externals,
+ file_externals_different_url,
file_external_in_unversioned,
copy_file_externals,
remap_file_external_with_prop_del,
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/lock_tests.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/lock_tests.py Tue May 15 12:39:14 2012
@@ -1693,6 +1693,12 @@ def update_locked_deleted(sbox):
expected_status.tweak('iota', 'A/mu', 'A/B/E/alpha',
status='D ', writelocked='O')
+ expected_output = svntest.wc.State(wc_dir, {
+ 'A/mu' : Item(status=' '),
+ 'A/B/E/alpha' : Item(status=' '),
+ 'iota' : Item(status=' '),
+ })
+
svntest.actions.run_and_verify_update(wc_dir, expected_output,
None, expected_status)
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/merge_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/merge_tests.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/merge_tests.py Tue May 15 12:39:14 2012
@@ -17193,6 +17193,251 @@ def reverse_merge_with_rename(sbox):
'merge', sbox.repo_url + '/trunk',
A_COPY_path, '-r9:1')
+#----------------------------------------------------------------------
+# Test for issue #4166 'multiple merge editor drives which add then
+# delete a subtree fail'.
+@SkipUnless(server_has_mergeinfo)
+@Issue(4166)
+def merge_adds_then_deletes_subtree(sbox):
+ "merge adds then deletes subtree"
+
+ # Some paths we'll care about.
+ A_path = os.path.join(sbox.wc_dir, 'A')
+ nu_path = os.path.join(sbox.wc_dir, 'A', 'C', 'nu')
+ C_branch_path = os.path.join(sbox.wc_dir, 'branch', 'C')
+ nu_branch_path = os.path.join(sbox.wc_dir, 'branch', 'C', 'nu')
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ # Make a branch.
+ svntest.actions.run_and_verify_svn(None, None, [], 'copy',
+ sbox.repo_url + '/A',
+ sbox.repo_url + '/branch',
+ '-m', 'Make a branch.')
+
+ # On the branch parent: Add a file in r3 and then delete it in r4.
+ svntest.main.file_write(nu_path, "This is the file 'nu'.\n")
+ svntest.actions.run_and_verify_svn(None, None, [], 'add', nu_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', wc_dir,
+ '-m', 'Add a file')
+ svntest.actions.run_and_verify_svn(None, None, [], 'delete', nu_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', wc_dir,
+ '-m', 'Delete a file')
+
+ # Merge r3 and r4 from ^/A/C to branch/C as part of one merge
+ # command, but as separate editor drives, i.e. 'c3,4 vs. -r2:4.
+ # These should be equivalent but the former was failing with:
+ #
+ # >svn merge ^/A/C branch\C -c3,4
+ # --- Merging r3 into 'branch\C':
+ # A branch\C\nu
+ # --- Recording mergeinfo for merge of r3 into 'branch\C':
+ # U branch\C
+ # --- Merging r4 into 'branch\C':
+ # D branch\C\nu
+ # --- Recording mergeinfo for merge of r4 into 'branch\C':
+ # G branch\C
+ # ..\..\..\subversion\svn\util.c:913: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_client\merge.c:10873: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_client\merge.c:10837: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_client\merge.c:8994: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_client\merge.c:7923: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_client\mergeinfo.c:257: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_client\mergeinfo.c:97: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_wc\props.c:2003: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_wc\props.c:2024: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_wc\wc_db.c:11473: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_wc\wc_db.c:7247: (apr_err=155010)
+ # ..\..\..\subversion\libsvn_wc\wc_db.c:7232: (apr_err=155010)
+ # svn: E155010: The node 'C:\SVN\src-trunk\Debug\subversion\tests
+ # \cmdline\svn-test-work\working_copies\merge_tests-128\branch\C\nu'
+ # was not found.
+ svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+ svntest.actions.run_and_verify_svn(
+ None,
+ expected_merge_output([[3],[4]],
+ ['A ' + nu_branch_path + '\n',
+ 'D ' + nu_branch_path + '\n',
+ ' U ' + C_branch_path + '\n',
+ ' G ' + C_branch_path + '\n',]),
+ [], 'merge', '-c3,4', sbox.repo_url + '/A/C', C_branch_path)
+
+#----------------------------------------------------------------------
+# Test for issue #4169 'added subtrees with non-inheritable mergeinfo
+# cause spurious subtree mergeinfo'.
+@SkipUnless(server_has_mergeinfo)
+@Issue(4169)
+def merge_with_added_subtrees_with_mergeinfo(sbox):
+ "merge with added subtrees with mergeinfo"
+
+ # Some paths we'll care about.
+ A_path = os.path.join(sbox.wc_dir, 'A')
+ Y_path = os.path.join(sbox.wc_dir, 'A', 'C', 'X', 'Y')
+ Z_path = os.path.join(sbox.wc_dir, 'A', 'C', 'X', 'Y', 'Z')
+ nu_path = os.path.join(sbox.wc_dir, 'A', 'C', 'X', 'Y', 'Z', 'nu')
+ A_COPY_path = os.path.join(sbox.wc_dir, 'A_COPY')
+ Y_COPY_path = os.path.join(sbox.wc_dir, 'A_COPY', 'C', 'X', 'Y')
+ W_COPY_path = os.path.join(sbox.wc_dir, 'A_COPY', 'C', 'X', 'Y', 'Z', 'W')
+ A_COPY2_path = os.path.join(sbox.wc_dir, 'A_COPY_2')
+
+ sbox.build()
+ wc_dir = sbox.wc_dir
+
+ # Make two branches of ^/A and then make a few edits under A in r4-7:
+ wc_disk, wc_status = set_up_branch(sbox, nbr_of_branches=2)
+
+ # r8 - Add a subtree under A.
+ svntest.actions.run_and_verify_svn(None, None, [], 'mkdir', '--parents',
+ Z_path)
+ svntest.main.file_write(nu_path, "This is the file 'nu'.\n")
+ svntest.actions.run_and_verify_svn(None, None, [], 'add', nu_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', wc_dir,
+ '-m', 'Add a subtree on our "trunk"')
+
+ # r9 - Sync ^/A to the first branch A_COPY.
+ svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+ svntest.actions.run_and_verify_svn(None, None, [], 'merge',
+ sbox.repo_url + '/A', A_COPY_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', wc_dir,
+ '-m', 'Sync ^/A to ^/A_COPY')
+
+ # r10 - Make some edits on the first branch.
+ svntest.actions.run_and_verify_svn(None, None, [], 'ps', 'branch-prop-foo',
+ 'bar', Y_COPY_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'mkdir', W_COPY_path)
+ svntest.actions.run_and_verify_svn(None, None, [], 'ci', wc_dir,
+ '-m', 'Make some edits on "branch 1"')
+
+ # r11 - Cherry-pick r10 on the first branch back to A, but
+ # do so at depth=empty so non-inheritable mergeinfo is created.
+ svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+ svntest.actions.run_and_verify_svn(None, None, [],
+ 'merge', '-c10', '--depth=empty',
+ sbox.repo_url + '/A_COPY/C/X/Y', Y_path)
+ svntest.actions.run_and_verify_svn(
+ None, None, [], 'ci', wc_dir,
+ '-m', 'Depth empty subtree cherry pick from "branch 1" to "trunk"')
+
+ # Sync ^/A to the second branch A_COPY_2.
+ #
+ # Previously this failed because spurious mergeinfo was created on
+ # A_COPY_2/C/X/Y/Z:
+ #
+ # >svn merge ^^/A A_COPY_2
+ # --- Merging r3 through r11 into 'A_COPY_2':
+ # U A_COPY_2\B\E\beta
+ # A A_COPY_2\C\X
+ # A A_COPY_2\C\X\Y
+ # A A_COPY_2\C\X\Y\Z
+ # A A_COPY_2\C\X\Y\Z\nu
+ # U A_COPY_2\D\G\rho
+ # U A_COPY_2\D\H\omega
+ # U A_COPY_2\D\H\psi
+ # --- Recording mergeinfo for merge of r3 through r11 into 'A_COPY_2':
+ # U A_COPY_2
+ # --- Recording mergeinfo for merge of r3 through r11 into 'A_COPY_2\C\X\Y':
+ # G A_COPY_2\C\X\Y
+ # vvvvvvvvvvvvvvvvvvvv
+ # U A_COPY_2\C\X\Y\Z
+ # ^^^^^^^^^^^^^^^^^^^^
+ #
+ # >svn pl -vR A_COPY_2
+ # Properties on 'A_COPY_2':
+ # svn:mergeinfo
+ # /A:3-11
+ # Properties on 'A_COPY_2\C\X\Y':
+ # branch-prop-foo
+ # bar
+ # svn:mergeinfo
+ # /A/C/X/Y:8-11
+ # /A_COPY/C/X/Y:10*
+ # vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
+ # Properties on 'A_COPY_2\C\X\Y\Z':
+ # svn:mergeinfo
+ # /A/C/X/Y/Z:8-11
+ # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ svntest.actions.run_and_verify_svn(None, None, [], 'up', wc_dir)
+ expected_output = wc.State(A_COPY2_path, {
+ 'B/E/beta' : Item(status='U '),
+ 'D/G/rho' : Item(status='U '),
+ 'D/H/omega' : Item(status='U '),
+ 'D/H/psi' : Item(status='U '),
+ 'C/X' : Item(status='A '),
+ 'C/X/Y' : Item(status='A '),
+ 'C/X/Y/Z' : Item(status='A '),
+ 'C/X/Y/Z/nu' : Item(status='A '),
+ })
+ expected_mergeinfo_output = wc.State(A_COPY2_path, {
+ '' : Item(status=' U'),
+ 'C/X/Y' : Item(status=' G'), # Added with explicit mergeinfo so mergeinfo
+ }) # describing the merge shows as mer'G'ed.
+ expected_elision_output = wc.State(A_COPY2_path, {
+ })
+ expected_status = wc.State(A_COPY2_path, {
+ '' : Item(status=' M', wc_rev=11),
+ 'B' : Item(status=' ', wc_rev=11),
+ 'mu' : Item(status=' ', wc_rev=11),
+ 'B/E' : Item(status=' ', wc_rev=11),
+ 'B/E/alpha' : Item(status=' ', wc_rev=11),
+ 'B/E/beta' : Item(status='M ', wc_rev=11),
+ 'B/lambda' : Item(status=' ', wc_rev=11),
+ 'B/F' : Item(status=' ', wc_rev=11),
+ 'C' : Item(status=' ', wc_rev=11),
+ 'C/X' : Item(status='A ', wc_rev='-', copied='+'),
+ 'C/X/Y' : Item(status=' M', wc_rev='-', copied='+'),
+ 'C/X/Y/Z' : Item(status=' ', wc_rev='-', copied='+'),
+ 'C/X/Y/Z/nu' : Item(status=' ', wc_rev='-', copied='+'),
+ 'D' : Item(status=' ', wc_rev=11),
+ 'D/G' : Item(status=' ', wc_rev=11),
+ 'D/G/pi' : Item(status=' ', wc_rev=11),
+ 'D/G/rho' : Item(status='M ', wc_rev=11),
+ 'D/G/tau' : Item(status=' ', wc_rev=11),
+ 'D/gamma' : Item(status=' ', wc_rev=11),
+ 'D/H' : Item(status=' ', wc_rev=11),
+ 'D/H/chi' : Item(status=' ', wc_rev=11),
+ 'D/H/psi' : Item(status='M ', wc_rev=11),
+ 'D/H/omega' : Item(status='M ', wc_rev=11),
+ })
+ expected_disk = wc.State('', {
+ '' : Item(props={SVN_PROP_MERGEINFO : '/A:3-11'}),
+ 'B' : Item(),
+ 'mu' : Item("This is the file 'mu'.\n"),
+ 'B/E' : Item(),
+ 'B/E/alpha' : Item("This is the file 'alpha'.\n"),
+ 'B/E/beta' : Item("New content"),
+ 'B/lambda' : Item("This is the file 'lambda'.\n"),
+ 'B/F' : Item(),
+ 'C' : Item(),
+ 'C/X' : Item(),
+ 'C/X/Y' : Item(props={
+ SVN_PROP_MERGEINFO : '/A/C/X/Y:8-11\n/A_COPY/C/X/Y:10*',
+ 'branch-prop-foo' : 'bar'}),
+ 'C/X/Y/Z' : Item(),
+ 'C/X/Y/Z/nu' : Item("This is the file 'nu'.\n"),
+ 'D' : Item(),
+ 'D/G' : Item(),
+ 'D/G/pi' : Item("This is the file 'pi'.\n"),
+ 'D/G/rho' : Item("New content"),
+ 'D/G/tau' : Item("This is the file 'tau'.\n"),
+ 'D/gamma' : Item("This is the file 'gamma'.\n"),
+ 'D/H' : Item(),
+ 'D/H/chi' : Item("This is the file 'chi'.\n"),
+ 'D/H/psi' : Item("New content"),
+ 'D/H/omega' : Item("New content"),
+ })
+ expected_skip = wc.State(A_COPY_path, { })
+ svntest.actions.run_and_verify_merge(A_COPY2_path, None, None,
+ sbox.repo_url + '/A', None,
+ expected_output,
+ expected_mergeinfo_output,
+ expected_elision_output,
+ expected_disk,
+ expected_status,
+ expected_skip,
+ None, None, None, None,
+ None, 1, 0)
+
########################################################################
# Run the tests
@@ -17322,6 +17567,8 @@ test_list = [ None,
merge_adds_subtree_with_mergeinfo,
record_only_merge_adds_new_subtree_mergeinfo,
reverse_merge_with_rename,
+ merge_adds_then_deletes_subtree,
+ merge_with_added_subtrees_with_mergeinfo,
]
if __name__ == '__main__':
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/prop_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/prop_tests.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/prop_tests.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/prop_tests.py Tue May 15 12:39:14 2012
@@ -893,8 +893,7 @@ def prop_value_conversions(sbox):
svntest.actions.set_prop('svn:executable', '*', lambda_path)
for pval in (' ', '', 'no', 'off', 'false'):
svntest.actions.set_prop('svn:executable', pval, mu_path,
- ["svn: warning: To turn off the svn:executable property, use 'svn propdel';\n",
- "setting the property to '" + pval + "' will not turn it off.\n"])
+ "svn: warning: W125005.*use 'svn propdel'")
# Anything else should be untouched
svntest.actions.set_prop('svn:some-prop', 'bar', lambda_path)
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/stat_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/stat_tests.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/stat_tests.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/stat_tests.py Tue May 15 12:39:14 2012
@@ -946,6 +946,22 @@ def status_in_xml(sbox):
svntest.actions.run_and_verify_status_xml(expected_entries, file_path, '-u')
+ svntest.actions.run_and_verify_svn(None, None, [],
+ 'rm', '-m', 'repo delete',
+ sbox.repo_url + '/A/B/E/alpha')
+
+ expected_entries = {sbox.ospath('A/B/E/alpha')
+ : {'wcprops' : 'none',
+ 'wcitem' : 'normal',
+ 'wcrev' : '1',
+ 'crev' : '1',
+ 'author' : svntest.main.wc_author,
+ 'rprops' : 'none',
+ 'ritem' : 'deleted'}}
+
+ svntest.actions.run_and_verify_status_xml(expected_entries,
+ sbox.ospath('A/B/E/alpha'), '-u')
+
#----------------------------------------------------------------------
def status_ignored_dir(sbox):
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/actions.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/actions.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/actions.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/actions.py Tue May 15 12:39:14 2012
@@ -1878,7 +1878,7 @@ def create_failing_post_commit_hook(repo
# set_prop can be used for properties with NULL characters which are not
# handled correctly when passed to subprocess.Popen() and values like "*"
# which are not handled correctly on Windows.
-def set_prop(name, value, path, expected_err=None):
+def set_prop(name, value, path, expected_re_string=None):
"""Set a property with specified value"""
if value and (value[0] == '-' or '\x00' in value or sys.platform == 'win32'):
from tempfile import mkstemp
@@ -1887,11 +1887,18 @@ def set_prop(name, value, path, expected
value_file.write(value)
value_file.flush()
value_file.close()
- main.run_svn(expected_err, 'propset', '-F', value_file_path, name, path)
+ exit_code, out, err = main.run_svn(expected_re_string, 'propset',
+ '-F', value_file_path, name, path)
os.close(fd)
os.remove(value_file_path)
else:
- main.run_svn(expected_err, 'propset', name, value, path)
+ exit_code, out, err = main.run_svn(expected_re_string, 'propset',
+ name, value, path)
+ if expected_re_string:
+ if not expected_re_string.startswith(".*"):
+ expected_re_string = ".*(" + expected_re_string + ")"
+ expected_err = verify.RegexOutput(expected_re_string, match_all=False)
+ verify.verify_outputs(None, None, err, None, expected_err)
def check_prop(name, path, exp_out, revprop=None):
"""Verify that property NAME on PATH has a value of EXP_OUT.
Modified: subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/main.py
URL: http://svn.apache.org/viewvc/subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/main.py?rev=1338671&r1=1338670&r2=1338671&view=diff
==============================================================================
--- subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/main.py (original)
+++ subversion/branches/1.7.x-issue4153/subversion/tests/cmdline/svntest/main.py Tue May 15 12:39:14 2012
@@ -1710,7 +1710,7 @@ def execute_tests(test_list, serial_only
'jsvndumpfilter' + _bat)
svnversion_binary = os.path.join(options.svn_bin,
'jsvnversion' + _bat)
- svnversion_binary = os.path.join(options.svn_bin, 'jsvnmucc' + _bat)
+ svnmucc_binary = os.path.join(options.svn_bin, 'jsvnmucc' + _bat)
else:
if options.svn_bin:
svn_binary = os.path.join(options.svn_bin, 'svn' + _exe)