You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/07/26 03:03:28 UTC

svn commit: r1507168 [5/5] - in /subversion/branches/javahl-1.8-extensions: ./ build/ac-macros/ build/generator/ subversion/bindings/swig/perl/libsvn_swig_perl/ subversion/bindings/swig/perl/native/ subversion/include/ subversion/libsvn_client/ subvers...

Modified: subversion/branches/javahl-1.8-extensions/subversion/svn/conflict-callbacks.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/svn/conflict-callbacks.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/svn/conflict-callbacks.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/svn/conflict-callbacks.c Fri Jul 26 01:03:26 2013
@@ -453,7 +453,7 @@ static const resolver_option_t text_conf
                                   -1 },
   { "df", N_("show diff"),        N_("show all changes made to merged file"),
                                   -1 },
-  { "r",  N_("resolved"),         N_("accept merged version of file"),
+  { "r",  N_("mark resolved"),   N_("accept merged version of file"),
                                   svn_wc_conflict_choose_merged },
   { "",   "",                     "", svn_wc_conflict_choose_unspecified },
   { "dc", N_("display conflict"), N_("show all conflicts "
@@ -473,13 +473,13 @@ static const resolver_option_t text_conf
                                      "(same)  [theirs-full]"),
                                   svn_wc_conflict_choose_theirs_full },
   { "",   "",                     "", svn_wc_conflict_choose_unspecified },
-  { "p",  N_("postpone"),         N_("mark the conflict to be resolved later"
-                                     "  [postpone]"),
-                                  svn_wc_conflict_choose_postpone },
   { "m",  N_("merge"),            N_("use internal merge tool to resolve "
                                      "conflict"), -1 },
   { "l",  N_("launch tool"),      N_("launch external tool to resolve "
                                      "conflict  [launch]"), -1 },
+  { "p",  N_("postpone"),         N_("mark the conflict to be resolved later"
+                                     "  [postpone]"),
+                                  svn_wc_conflict_choose_postpone },
   { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
                                   svn_wc_conflict_choose_postpone },
   { "s",  N_("show all options"), N_("show this list (also 'h', '?')"), -1 },
@@ -489,9 +489,6 @@ static const resolver_option_t text_conf
 /* Resolver options for a property conflict */
 static const resolver_option_t prop_conflict_options[] =
 {
-  { "p",  N_("postpone"),         N_("mark the conflict to be resolved later"
-                                     "  [postpone]"),
-                                  svn_wc_conflict_choose_postpone },
   { "mf", N_("my version"),       N_("accept my version of entire file (even "
                                      "non-conflicts)  [mine-full]"),
                                   svn_wc_conflict_choose_mine_full },
@@ -501,8 +498,11 @@ static const resolver_option_t prop_conf
   { "dc", N_("display conflict"), N_("show conflicts in this property"), -1 },
   { "e",  N_("edit property"),    N_("change merged property value in an editor"
                                      "  [edit]"), -1 },
-  { "r",  N_("resolved"),         N_("accept edited version of property"),
+  { "r",  N_("mark resolved"),    N_("accept edited version of property"),
                                   svn_wc_conflict_choose_merged },
+  { "p",  N_("postpone"),         N_("mark the conflict to be resolved later"
+                                     "  [postpone]"),
+                                  svn_wc_conflict_choose_postpone },
   { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
                                   svn_wc_conflict_choose_postpone },
   { "h",  N_("help"),             N_("show this help (also '?')"), -1 },
@@ -512,15 +512,15 @@ static const resolver_option_t prop_conf
 /* Resolver options for an obstructued addition */
 static const resolver_option_t obstructed_add_options[] =
 {
-  { "p",  N_("postpone"),         N_("mark the conflict to be resolved later"
-                                     "  [postpone]"),
-                                  svn_wc_conflict_choose_postpone },
   { "mf", N_("my version"),       N_("accept pre-existing item (ignore "
                                      "upstream addition)  [mine-full]"),
                                   svn_wc_conflict_choose_mine_full },
   { "tf", N_("their version"),    N_("accept incoming item (overwrite "
                                      "pre-existing item)  [theirs-full]"),
                                   svn_wc_conflict_choose_theirs_full },
+  { "p",  N_("postpone"),         N_("mark the conflict to be resolved later"
+                                     "  [postpone]"),
+                                  svn_wc_conflict_choose_postpone },
   { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
                                   svn_wc_conflict_choose_postpone },
   { "h",  N_("help"),             N_("show this help (also '?')"), -1 },
@@ -530,10 +530,10 @@ static const resolver_option_t obstructe
 /* Resolver options for a tree conflict */
 static const resolver_option_t tree_conflict_options[] =
 {
+  { "r",  N_("mark resolved"),    N_("accept current working copy state"),
+                                  svn_wc_conflict_choose_merged },
   { "p",  N_("postpone"),         N_("resolve the conflict later  [postpone]"),
                                   svn_wc_conflict_choose_postpone },
-  { "r",  N_("resolved"),         N_("accept current working copy state"),
-                                  svn_wc_conflict_choose_merged },
   { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
                                   svn_wc_conflict_choose_postpone },
   { "h",  N_("help"),             N_("show this help (also '?')"), -1 },
@@ -542,30 +542,46 @@ static const resolver_option_t tree_conf
 
 static const resolver_option_t tree_conflict_options_update_moved_away[] =
 {
-  { "p",  N_("postpone"),         N_("resolve the conflict later  [postpone]"),
-                                  svn_wc_conflict_choose_postpone },
-  { "mc", N_("my side of conflict"), N_("apply update to the move destination"
-                                        "  [mine-conflict]"),
+  { "mc", N_("apply update (recommended)"),
+                                  N_("apply update to the move destination"
+                                     "  [mine-conflict]"),
                                   svn_wc_conflict_choose_mine_conflict },
-  { "r",  N_("resolved"),         N_("mark resolved "
-                                     "(the move will become a copy)"),
+  { "r",  N_("discard update (breaks move)"), N_("discard update, mark "
+                                                 "resolved, the move will "
+                                                 "will become a copy"),
                                   svn_wc_conflict_choose_merged },
+  { "p",  N_("postpone"),         N_("resolve the conflict later  [postpone]"),
+                                  svn_wc_conflict_choose_postpone },
   { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
                                   svn_wc_conflict_choose_postpone },
   { "h",  N_("help"),             N_("show this help (also '?')"), -1 },
   { NULL }
 };
 
-static const resolver_option_t tree_conflict_options_update_deleted[] =
+static const resolver_option_t tree_conflict_options_update_edit_moved_away[] =
 {
+  { "mc", N_("apply update to move destination"),
+                                  N_("apply incoming update to move destination"
+                                     "  [mine-conflict]"),
+                                  svn_wc_conflict_choose_mine_conflict },
   { "p",  N_("postpone"),         N_("resolve the conflict later  [postpone]"),
                                   svn_wc_conflict_choose_postpone },
-  { "mc", N_("my side of conflict"), N_("keep any moves affected "
-                                        "by this deletion  [mine-conflict]"),
+  { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
+                                  svn_wc_conflict_choose_postpone },
+  { "h",  N_("help"),             N_("show this help (also '?')"), -1 },
+  { NULL }
+};
+
+static const resolver_option_t tree_conflict_options_update_deleted[] =
+{
+  { "mc", N_("keep affected local moves"), N_("keep any local moves affected "
+                                              "by this deletion  [mine-conflict]"),
                                   svn_wc_conflict_choose_mine_conflict },
-  { "r",  N_("resolved"),         N_("mark resolved (any affected moves will "
-                                     "become copies)"),
+  { "r",  N_("mark resolved (breaks moves)"),  N_("mark resolved, any affected "
+                                                  "moves will become copies"),
                                   svn_wc_conflict_choose_merged },
+  { "p",  N_("postpone"),         N_("resolve the conflict later  [postpone]"),
+                                  svn_wc_conflict_choose_postpone },
   { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
                                   svn_wc_conflict_choose_postpone },
   { "h",  N_("help"),             N_("show this help (also '?')"), -1 },
@@ -574,14 +590,14 @@ static const resolver_option_t tree_conf
 
 static const resolver_option_t tree_conflict_options_update_replaced[] =
 {
-  { "p",  N_("postpone"),         N_("resolve the conflict later  [postpone]"),
-                                  svn_wc_conflict_choose_postpone },
-  { "mc", N_("my side of conflict"), N_("keep any moves affected by this "
-                                        "replacement  [mine-conflict]"),
+  { "mc", N_("keep affected local moves"), N_("keep any moves affected by this "
+                                              "replacement  [mine-conflict]"),
                                   svn_wc_conflict_choose_mine_conflict },
-  { "r",  N_("resolved"),         N_("mark resolved (any affected moves will "
-                                     "become copies)"),
+  { "r",  N_("mark resolved (breaks moves)"), N_("mark resolved (any affected "
+                                                 "moves will become copies)"),
                                   svn_wc_conflict_choose_merged },
+  { "p",  N_("postpone"),         N_("resolve the conflict later  [postpone]"),
+                                  svn_wc_conflict_choose_postpone },
   { "q",  N_("quit resolution"),  N_("postpone all remaining conflicts"),
                                   svn_wc_conflict_choose_postpone },
   { "h",  N_("help"),             N_("show this help (also '?')"), -1 },
@@ -925,7 +941,7 @@ handle_text_conflict(svn_wc_conflict_res
               SVN_ERR(svn_cmdline_fprintf(
                         stderr, iterpool,
                         _("Invalid option; use diff/edit/merge/launch "
-                          "before choosing 'resolved'.\n\n")));
+                          "before choosing 'mark resolved'.\n\n")));
               continue;
             }
 
@@ -1078,7 +1094,12 @@ handle_tree_conflict(svn_wc_conflict_res
           desc->operation == svn_wc_operation_switch)
         {
           if (desc->reason == svn_wc_conflict_reason_moved_away)
-            tc_opts = tree_conflict_options_update_moved_away;
+            {
+              if (desc->action == svn_wc_conflict_action_edit)
+                tc_opts = tree_conflict_options_update_edit_moved_away;
+              else
+                tc_opts = tree_conflict_options_update_moved_away;
+            }
           else if (desc->reason == svn_wc_conflict_reason_deleted)
             tc_opts = tree_conflict_options_update_deleted;
           else if (desc->reason == svn_wc_conflict_reason_replaced)

Modified: subversion/branches/javahl-1.8-extensions/subversion/svn/file-merge.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/svn/file-merge.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/svn/file-merge.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/svn/file-merge.c Fri Jul 26 01:03:26 2013
@@ -655,6 +655,8 @@ merge_chunks(apr_array_header_t **merged
   svn_stringbuf_appendcstr(
     prompt,
     _("Select: (1) use their version, (2) use your version,\n"
+      "        (12) their version first, then yours,\n"
+      "        (21) your version first, then theirs,\n"
       "        (e1) edit their version and use the result,\n"
       "        (e2) edit your version and use the result,\n"
       "        (eb) edit both versions and use the result,\n"
@@ -679,6 +681,24 @@ merge_chunks(apr_array_header_t **merged
           *merged_chunk = chunk2;
           break;
         }
+      if (strcmp(answer, "12") == 0)
+        {
+          *merged_chunk = apr_array_make(result_pool,
+                                         chunk1->nelts + chunk2->nelts,
+                                         sizeof(svn_stringbuf_t *));
+          apr_array_cat(*merged_chunk, chunk1);
+          apr_array_cat(*merged_chunk, chunk2);
+          break;
+        }
+      if (strcmp(answer, "21") == 0)
+        {
+          *merged_chunk = apr_array_make(result_pool,
+                                         chunk1->nelts + chunk2->nelts,
+                                         sizeof(svn_stringbuf_t *));
+          apr_array_cat(*merged_chunk, chunk2);
+          apr_array_cat(*merged_chunk, chunk1);
+          break;
+        }
       else if (strcmp(answer, "p") == 0)
         {
           *merged_chunk = NULL;

Modified: subversion/branches/javahl-1.8-extensions/subversion/svn/svn.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/svn/svn.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/svn/svn.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/svn/svn.c Fri Jul 26 01:03:26 2013
@@ -484,9 +484,19 @@ const svn_opt_subcommand_desc2_t svn_cl_
     {'r', 'q', 'N', opt_depth, opt_force, opt_ignore_externals} },
 
   { "cleanup", svn_cl__cleanup, {0}, N_
-    ("Recursively clean up the working copy, removing locks, resuming\n"
+    ("Recursively clean up the working copy, removing write locks, resuming\n"
      "unfinished operations, etc.\n"
-     "usage: cleanup [WCPATH...]\n"),
+     "usage: cleanup [WCPATH...]\n"
+     "\n"
+     "  Finish any unfinished business in the working copy at WCPATH, and remove\n"
+     "  write locks (shown as 'L' by the 'svn status' command) from the working\n"
+     "  copy. Usually, this is only necessary if a Subversion client has crashed\n"
+     "  while using the working copy, leaving it in an unusable state.\n"
+     "\n"
+     "  WARNING: There is no mechanism that will protect write locks still\n"
+     "           being used by other Subversion clients. Running this command\n"
+     "           while another client is using the working copy can corrupt\n"
+     "           the working copy beyond repair!\n"),
     {opt_merge_cmd} },
 
   { "commit", svn_cl__commit, {"ci"},

Propchange: subversion/branches/javahl-1.8-extensions/subversion/svn/svn.c
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Fri Jul 26 01:03:26 2013
@@ -0,0 +1,84 @@
+/subversion/branches/1.5.x-r30215/subversion/svn/svn.c:870312
+/subversion/branches/1.7.x-fs-verify/subversion/svn/svn.c:1146708,1161180
+/subversion/branches/1.8.x/subversion/svn/svn.c:1483275-1507165
+/subversion/branches/1.8.x-busted-proxy/subversion/svn/svn.c:1499222-1502434
+/subversion/branches/1.8.x-libsvnjavahl-version/subversion/svn/svn.c:1483910-1485054
+/subversion/branches/1.8.x-r1477876/subversion/svn/svn.c:1477981-1487716
+/subversion/branches/1.8.x-r1481625/subversion/svn/svn.c:1481637-1482135
+/subversion/branches/1.8.x-r1495063/subversion/svn/svn.c:1495804-1501074
+/subversion/branches/1.8.x-r1497310-partial/subversion/svn/svn.c:1497500-1501063
+/subversion/branches/1.8.x-svn_fs_info-removal/subversion/svn/svn.c:1467420-1468159
+/subversion/branches/1.8.x-tristate-chunked-request/subversion/svn/svn.c:1502435-1503894
+/subversion/branches/10Gb/subversion/svn/svn.c:1388102,1388163-1388190,1388195,1388202,1388205,1388211,1388276,1388362,1388375,1388394,1388636,1388639-1388640,1388643-1388644,1388654,1388720,1388789,1388795,1388801,1388805,1388807,1388810,1388816,1389044,1389276,1389289,1389662,1389867,1390017,1390209,1390216,1390407,1390409,1390414,1390419,1390955
+/subversion/branches/atomic-revprop/subversion/svn/svn.c:965046-1000689
+/subversion/branches/auto-props-sdc/subversion/svn/svn.c:1384106-1401643
+/subversion/branches/bdb-reverse-deltas/subversion/svn/svn.c:872050-872529
+/subversion/branches/diff-callbacks3/subversion/svn/svn.c:870059-870761
+/subversion/branches/diff-optimizations/subversion/svn/svn.c:1031270-1037352
+/subversion/branches/diff-optimizations-bytes/subversion/svn/svn.c:1037353-1067789
+/subversion/branches/dont-save-plaintext-passwords-by-default/subversion/svn/svn.c:870728-871118
+/subversion/branches/double-delete/subversion/svn/svn.c:870511-872970
+/subversion/branches/ev2-export/subversion/svn/svn.c:1325914,1332738,1413107
+/subversion/branches/explore-wc/subversion/svn/svn.c:875486,875493,875497,875507,875511,875514,875559,875580-875581,875584,875587,875611,875627,875647,875667-875668,875711-875712,875733-875734,875736,875744-875748,875751,875758,875782,875795-875796,875830,875836,875838,875842,875852,875855,875864,875870,875873,875880,875885-875888,875890,875897-875898,875905,875907-875909,875935,875943-875944,875946,875979,875982-875983,875985-875986,875990,875997
+/subversion/branches/file-externals/subversion/svn/svn.c:871779-873302
+/subversion/branches/fs-rep-sharing/subversion/svn/svn.c:869036-873803
+/subversion/branches/fsfs-pack/subversion/svn/svn.c:873717-874575
+/subversion/branches/gnome-keyring/subversion/svn/svn.c:870558-871410
+/subversion/branches/gpg-agent-password-store/subversion/svn/svn.c:1005036-1150766
+/subversion/branches/http-protocol-v2/subversion/svn/svn.c:874395-876041
+/subversion/branches/in-memory-cache/subversion/svn/svn.c:869829-871452
+/subversion/branches/in-repo-authz/subversion/svn/svn.c:1414342-1424779
+/subversion/branches/inheritable-props/subversion/svn/svn.c:1297080-1395089
+/subversion/branches/integrate-cache-item-serialization/subversion/svn/svn.c:1068724-1068739
+/subversion/branches/integrate-cache-membuffer/subversion/svn/svn.c:998649-998852
+/subversion/branches/integrate-compression-level/subversion/svn/svn.c:1068651-1072287
+/subversion/branches/integrate-io-improvements/subversion/svn/svn.c:1068684-1072297
+/subversion/branches/integrate-is-cachable/subversion/svn/svn.c:1072568-1074082
+/subversion/branches/integrate-partial-getter/subversion/svn/svn.c:1072558-1076552
+/subversion/branches/integrate-readline-speedup/subversion/svn/svn.c:1072553-1072555
+/subversion/branches/integrate-stream-api-extensions/subversion/svn/svn.c:1068695-1072516
+/subversion/branches/integrate-string-improvements/subversion/svn/svn.c:1068251-1190617
+/subversion/branches/integrate-txdelta-caching/subversion/svn/svn.c:1072541-1078213
+/subversion/branches/issue-2779-dev/subversion/svn/svn.c:965496-984198
+/subversion/branches/issue-2843-dev/subversion/svn/svn.c:871432-874179
+/subversion/branches/issue-3000/subversion/svn/svn.c:871713,871716-871719,871721-871726,871728,871734
+/subversion/branches/issue-3067-deleted-subtrees/subversion/svn/svn.c:873375-874084
+/subversion/branches/issue-3148-dev/subversion/svn/svn.c:875193-875204
+/subversion/branches/issue-3220-dev/subversion/svn/svn.c:872210-872226
+/subversion/branches/issue-3242-dev/subversion/svn/svn.c:879653-896436
+/subversion/branches/issue-3334-dirs/subversion/svn/svn.c:875156-875867
+/subversion/branches/issue-3975/subversion/svn/svn.c:1152931-1160746
+/subversion/branches/issue-4116-dev/subversion/svn/svn.c:1424719-1425040
+/subversion/branches/issue-4194-dev/subversion/svn/svn.c:1410507-1414880
+/subversion/branches/javahl-ra/subversion/svn/svn.c:1342682,1344977
+/subversion/branches/kwallet/subversion/svn/svn.c:870785-871314
+/subversion/branches/log-g-performance/subversion/svn/svn.c:870941-871032
+/subversion/branches/merge-skips-obstructions/subversion/svn/svn.c:874525-874615
+/subversion/branches/multi-layer-moves/subversion/svn/svn.c:1239019-1300930
+/subversion/branches/nfc-nfd-aware-client/subversion/svn/svn.c:870276,870376
+/subversion/branches/node_pool/subversion/svn/svn.c:1304828-1305388
+/subversion/branches/performance/subversion/svn/svn.c:979193,980118,981087,981090,981189,981194,981287,981684,981827,982043,982355,983398,983406,983430,983474,983488,983490,983760,983764,983766,983770,984927,984973,984984,985014,985037,985046,985472,985477,985482,985487-985488,985493,985497,985500,985514,985601,985603,985606,985669,985673,985695,985697,986453,986465,986485,986491-986492,986517,986521,986605,986608,986817,986832,987865,987868-987869,987872,987886-987888,987893,988319,988898,990330,990533,990535-990537,990541,990568,990572,990574-990575,990600,990759,992899,992904,992911,993127,993141,994956,995478,995507,995603,998012,998858,999098,1001413,1001417,1004291,1022668,1022670,1022676,1022715,1022719,1025660,1025672,1027193,1027203,1027206,1027214,1027227,1028077,1028092,1028094,1028104,1028107,1028111,1028354,1029038,1029042-1029043,1029054-1029055,1029062-1029063,1029078,1029080,1029090,1029092-1029093,1029111,1029151,1029158,1029229-1029230,1029232,1029335-1029336,10293
 39-1029340,1029342,1029344,1030763,1030827,1031203,1031235,1032285,1032333,1033040,1033057,1033294,1035869,1035882,1039511,1043705,1053735,1056015,1066452,1067683,1067697-1078365
+/subversion/branches/py-tests-as-modules/subversion/svn/svn.c:956579-1033052
+/subversion/branches/ra_serf-digest-authn/subversion/svn/svn.c:875693-876404
+/subversion/branches/reintegrate-improvements/subversion/svn/svn.c:873853-874164
+/subversion/branches/revprop-cache/subversion/svn/svn.c:1298521-1326293
+/subversion/branches/revprop-packing/subversion/svn/svn.c:1143907,1143971,1143997,1144017,1144499,1144568,1146145
+/subversion/branches/subtree-mergeinfo/subversion/svn/svn.c:876734-878766
+/subversion/branches/svn-mergeinfo-enhancements/subversion/svn/svn.c:870119-870195,870197-870288
+/subversion/branches/svn-patch-improvements/subversion/svn/svn.c:918519-934609
+/subversion/branches/svn_mutex/subversion/svn/svn.c:1141683-1182099
+/subversion/branches/svnpatch-diff/subversion/svn/svn.c:865738-876477
+/subversion/branches/svnraisetc/subversion/svn/svn.c:874709-875149
+/subversion/branches/svnserve-logging/subversion/svn/svn.c:869828-870893
+/subversion/branches/tc-issue-3334/subversion/svn/svn.c:874697-874773
+/subversion/branches/tc-merge-notify/subversion/svn/svn.c:874017-874062
+/subversion/branches/tc-resolve/subversion/svn/svn.c:874191-874239
+/subversion/branches/tc_url_rev/subversion/svn/svn.c:874351-874483
+/subversion/branches/tree-conflicts/subversion/svn/svn.c:868291-873154
+/subversion/branches/tree-conflicts-notify/subversion/svn/svn.c:873926-874008
+/subversion/branches/tristate-chunked-request/subversion/svn/svn.c:1502401,1502673
+/subversion/branches/tweak-build-take-two/subversion/svn/svn.c:1424288-1425049,1425051-1425613
+/subversion/branches/uris-as-urls/subversion/svn/svn.c:1060426-1064427
+/subversion/branches/verify-at-commit/subversion/svn/svn.c:1462039-1462408
+/subversion/branches/wc-collate-path/subversion/svn/svn.c:1407642
+/subversion/trunk/subversion/svn/svn.c:1467440,1467450,1467481,1467587,1467597,1467668,1467675,1467803,1467807,1468151,1468347,1468395,1468439,1468487,1468565-1468566,1469248,1469363,1469478,1469489,1469512-1469513,1469550,1469556,1469645,1469674,1469862,1469866,1469871,1469994,1470031,1470037,1470238,1470246,1470248,1470537,1470738,1470781,1470898,1470904,1470908,1470913,1470936,1470993-1470994,1471028-1471029,1471107,1471153,1471302,1471443,1471490,1471744,1475704,1475724,1475772,1475963,1476092,1476155,1476181,1476193,1476254,1476359,1476366,1476607,1477294,1477359,1477729-1477730,1477876,1477891,1478001,1478220-1478221,1478465,1478897,1478951,1478987,1478998,1479320-1479321,1479323,1479326,1479329,1479540,1479563,1479605,1479896,1480054,1480077,1480080,1480082,1480119,1480149,1480344,1480412,1480442,1480616,1480641-1480642,1480664,1480669,1480723,1480738,1480765,1481010,1481594,1481596,1481625,1481627-1481628,1481631-1481632,1481772,1481800,1481813,1481847,1481944,1481981,148228
 2,1482327,1482338,1482350,1482354,1482436,1482479,1482524,1482528,1482536,1482554,1482558,1482592,1482724,1482759,1482779,1482829,1482969-1482970,1482973,1483015,1483077,1483101,1483116,1483125,1483391,1483397,1483555,1483557,1483575,1483580,1483781,1483927,1483939,1483947,1483964-1483965,1483968,1483972,1483975,1483977,1483984,1484006,1484016-1484017,1484023,1484755,1485018,1485127,1485350,1485413,1485427,1485447,1485449,1485497,1485501,1485650,1486072,1486457,1486572,1486809,1486915,1486931,1487083,1487094,1488183,1488267,1488294,1488425,1488639,1488693,1488878,1489114,1489116-1489117,1489203,1489339,1489935,1490045,1490326,1490679,1490684,1490721,1491432,1491499,1491707,1491739,1491755-1491756,1491762,1491770,1491816,1491868,1492005,1492020,1492145,1492148,1492152,1492164,1492264,1492295,1493424,1493475,1493703,1493720,1493951,1494089,1494171,1494223,1494287,1494298,1494318,1494342,1494657,1494913,1494967,1495063,1495104,1495204,1495209,1495214,1495256,1495329,1495428,1495432,149
 5446,1495597,1495805,1495850,1495978,1496007,1496110-1496111,1496132,1496151,1496470,1496938,1496957,1497002,1497310,1497318-1497319,1497551,1497804,1497975,1497980,1498012,1498136,1498449,1498455-1498456,1498483-1498484,1498486,1498550,1498564,1498851,1498885,1498997,1499034,1499064,1499095-1499096,1499100,1499403,1499423,1499438,1499447,1499460,1499483,1499492,1499496,1499498,1499595,1499727,1500074,1500175,1500226,1500680,1500695,1500762,1500799,1500801-1500802,1500904,1500928,1502097,1502577,1502909,1502952,1503009-1503010,1503528,1503884

Modified: subversion/branches/javahl-1.8-extensions/subversion/svn/util.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/svn/util.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/svn/util.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/svn/util.c Fri Jul 26 01:03:26 2013
@@ -1012,19 +1012,6 @@ svn_cl__local_style_skip_ancestor(const 
   return svn_dirent_local_style(relpath ? relpath : path, pool);
 }
 
-/* Return a string of the form "PATH_OR_URL@REVISION". */
-static const char *
-path_for_display(const char *path_or_url,
-                 const svn_opt_revision_t *revision,
-                 apr_pool_t *pool)
-{
-  const char *rev_str = svn_opt__revision_to_string(revision, pool);
-
-  if (! svn_path_is_url(path_or_url))
-    path_or_url = svn_dirent_local_style(path_or_url, pool);
-  return apr_psprintf(pool, "%s@%s", path_or_url, rev_str);
-}
-
 svn_error_t *
 svn_cl__propset_print_binary_mime_type_warning(apr_array_header_t *targets,
                                                const char *propname,

Modified: subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/lock_tests.py?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/lock_tests.py Fri Jul 26 01:03:26 2013
@@ -1840,6 +1840,56 @@ def commit_stolen_lock(sbox):
                                         err_re,
                                         wc_dir)
 
+# When removing directories, the locks of contained files were not 
+# correctly removed from the working copy database, thus they later 
+# magically reappeared when new files or directories with the same
+# pathes were added.
+@Issue(4364)
+def drop_locks_on_parent_deletion(sbox):
+  "drop locks when the parent is deleted"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  # lock some files, and remove them.
+  sbox.simple_lock('A/B/lambda')
+  sbox.simple_lock('A/B/E/alpha')
+  sbox.simple_lock('A/B/E/beta')
+  sbox.simple_rm('A/B')
+  
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+  expected_status.remove_subtree('A/B')
+  
+  svntest.actions.run_and_verify_commit(wc_dir,
+                                        [],
+                                        expected_status,
+                                        None,
+                                        wc_dir)
+
+  # now re-add entities to the deleted pathes.
+  sbox.simple_mkdir('A/B')
+  sbox.simple_add_text('new file replacing old file', 'A/B/lambda')
+  sbox.simple_add_text('file replacing former dir', 'A/B/F')
+  # The bug also resurrected locks on directories when their path
+  # matched a former file.
+  sbox.simple_mkdir('A/B/E', 'A/B/E/alpha')
+    
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+  expected_status.tweak('A/B',
+						'A/B/E',
+						'A/B/E/alpha',
+						'A/B/F',
+						'A/B/lambda',
+						wc_rev='3')
+  expected_status.remove('A/B/E/beta')
+   
+  svntest.actions.run_and_verify_commit(wc_dir,
+                                        [],
+                                        expected_status,
+                                        None,
+                                        wc_dir)
+	
+										
 ########################################################################
 # Run the tests
 
@@ -1892,6 +1942,7 @@ test_list = [ None,
               locks_stick_over_switch,
               lock_unlock_deleted,
               commit_stolen_lock,
+              drop_locks_on_parent_deletion,
             ]
 
 if __name__ == '__main__':

Modified: subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/wc_tests.py
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/wc_tests.py?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/wc_tests.py (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/tests/cmdline/wc_tests.py Fri Jul 26 01:03:26 2013
@@ -200,6 +200,25 @@ def cleanup_below_wc_root(sbox):
   svntest.actions.run_and_verify_svn("Cleanup below wc root", None, [],
                                      "cleanup", sbox.ospath("A"))
 
+@SkipUnless(svntest.main.is_posix_os)
+@Issue(4383)
+def update_through_unversioned_symlink(sbox):
+  """update through unversioned symlink"""
+
+  sbox.build(read_only = True)
+  wc_dir = sbox.wc_dir
+  state = svntest.actions.get_virginal_state(wc_dir, 1)
+  symlink = sbox.get_tempname()
+  os.symlink(os.path.abspath(sbox.wc_dir), symlink)
+  expected_output = []
+  expected_disk = []
+  expected_status = []
+  # Subversion 1.8.0 crashes when updating a working copy through a symlink
+  svntest.actions.run_and_verify_update(wc_dir, expected_output,
+                                        expected_disk, expected_status,
+                                        None, None, None, None, None, 1,
+                                        symlink)
+
 ########################################################################
 # Run the tests
 
@@ -218,6 +237,7 @@ test_list = [ None,
               status_without_wc_db_and_entries,
               status_with_missing_wc_db_and_maybe_valid_entries,
               cleanup_below_wc_root,
+              update_through_unversioned_symlink,
              ]
 
 if __name__ == '__main__':

Modified: subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_fs/fs-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_fs/fs-test.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_fs/fs-test.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_fs/fs-test.c Fri Jul 26 01:03:26 2013
@@ -27,6 +27,7 @@
 
 #include "../svn_test.h"
 
+#include "svn_hash.h"
 #include "svn_pools.h"
 #include "svn_time.h"
 #include "svn_string.h"
@@ -4946,12 +4947,14 @@ filename_trailing_newline(const svn_test
   svn_fs_root_t *txn_root, *root;
   svn_revnum_t youngest_rev = 0;
   svn_error_t *err;
-  svn_boolean_t allow_newlines;
+  svn_boolean_t legacy_backend;
+  static const char contents[] = "foo\003bar";
 
-  /* Some filesystem implementations can handle newlines in filenames
-   * and can be white-listed here.
-   * Currently, only BDB supports \n in filenames. */
-  allow_newlines = (strcmp(opts->fs_type, "bdb") == 0);
+  /* The FS API wants \n to be permitted, but FSFS never implemented that,
+   * so for FSFS we expect errors rather than successes in some of the commits.
+   * Use a blacklist approach so that new FSes default to implementing the API
+   * as originally defined. */
+  legacy_backend = (!strcmp(opts->fs_type, SVN_FS_TYPE_FSFS));
 
   SVN_ERR(svn_test__create_fs(&fs, "test-repo-filename-trailing-newline",
                               opts, pool));
@@ -4969,17 +4972,59 @@ filename_trailing_newline(const svn_test
   SVN_ERR(svn_fs_txn_root(&txn_root, txn, subpool));
   SVN_ERR(svn_fs_revision_root(&root, fs, youngest_rev, subpool));
   err = svn_fs_copy(root, "/foo", txn_root, "/bar\n", subpool);
-  if (allow_newlines)
+  if (!legacy_backend)
     SVN_TEST_ASSERT(err == SVN_NO_ERROR);
   else
     SVN_TEST_ASSERT_ERROR(err, SVN_ERR_FS_PATH_SYNTAX);
 
   /* Attempt to create a file /foo/baz\n. This should fail on FSFS. */
   err = svn_fs_make_file(txn_root, "/foo/baz\n", subpool);
-  if (allow_newlines)
+  if (!legacy_backend)
     SVN_TEST_ASSERT(err == SVN_NO_ERROR);
   else
     SVN_TEST_ASSERT_ERROR(err, SVN_ERR_FS_PATH_SYNTAX);
+  
+
+  /* Create another file, with contents. */
+  if (!legacy_backend)
+    {
+      SVN_ERR(svn_fs_make_file(txn_root, "/bar\n/baz\n", subpool));
+      SVN_ERR(svn_test__set_file_contents(txn_root, "bar\n/baz\n",
+                                          contents, pool));
+    }
+
+  if (!legacy_backend)
+    {
+      svn_revnum_t after_rev;
+      static svn_test__tree_entry_t expected_entries[] = {
+        { "foo", NULL },
+        { "bar\n", NULL },
+        { "foo/baz\n", "" },
+        { "bar\n/baz\n", contents },
+        { NULL, NULL }
+      };
+      const char *expected_changed_paths[] = {
+        "/bar\n",
+        "/foo/baz\n",
+        "/bar\n/baz\n",
+        NULL
+      };
+      apr_hash_t *expected_changes = apr_hash_make(pool);
+      int i;
+
+      SVN_ERR(svn_fs_commit_txn(NULL, &after_rev, txn, subpool));
+      SVN_TEST_ASSERT(SVN_IS_VALID_REVNUM(after_rev));
+
+      /* Validate the DAG. */
+      SVN_ERR(svn_fs_revision_root(&root, fs, after_rev, pool));
+      SVN_ERR(svn_test__validate_tree(root, expected_entries, 4, pool));
+
+      /* Validate changed-paths, where the problem originally occurred. */
+      for (i = 0; expected_changed_paths[i]; i++)
+        svn_hash_sets(expected_changes, expected_changed_paths[i],
+                      "undefined value");
+      SVN_ERR(svn_test__validate_changes(root, expected_changes, pool));
+    }
 
   return SVN_NO_ERROR;
 }

Modified: subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/config-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/config-test.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/config-test.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_subr/config-test.c Fri Jul 26 01:03:26 2013
@@ -336,6 +336,22 @@ test_stream_interface(apr_pool_t *pool)
   return SVN_NO_ERROR;
 }
 
+static svn_error_t *
+test_ignore_bom(apr_pool_t *pool)
+{
+  svn_config_t *cfg;
+  svn_string_t *cfg_string = svn_string_create("\xEF\xBB\xBF[s1]\nfoo=bar\n",
+                                               pool);
+  svn_stream_t *stream = svn_stream_from_string(cfg_string, pool);
+
+  SVN_ERR(svn_config_parse(&cfg, stream, TRUE, TRUE, pool));
+
+  if (! svn_config_has_section(cfg, "s1"))
+    return fail(pool, "failed to find section s1");
+
+  return SVN_NO_ERROR;
+}
+
 /*
    ====================================================================
    If you add a new test to this file, update this array.
@@ -359,5 +375,6 @@ struct svn_test_descriptor_t test_funcs[
                    "test case-sensitive option name lookup"),
     SVN_TEST_PASS2(test_stream_interface,
                    "test svn_config_parse"),
+    SVN_TEST_PASS2(test_ignore_bom, "test parsing config file with BOM"),
     SVN_TEST_NULL
   };

Modified: subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/op-depth-test.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/op-depth-test.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/op-depth-test.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/tests/libsvn_wc/op-depth-test.c Fri Jul 26 01:03:26 2013
@@ -1109,6 +1109,7 @@ base_dir_insert_remove(svn_test__sandbox
   SVN_ERR(svn_wc__db_base_remove(b->wc_ctx->db, dir_abspath,
                                  FALSE /* keep_as_Working */,
                                  FALSE /* queue_deletes */,
+                                 FALSE /* remove_locks */,
                                  SVN_INVALID_REVNUM,
                                  NULL, NULL, b->pool));
   SVN_ERR(svn_wc__wq_run(b->wc_ctx->db, dir_abspath,

Modified: subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.c
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.c?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.c (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.c Fri Jul 26 01:03:26 2013
@@ -516,6 +516,42 @@ svn_test__validate_tree(svn_fs_root_t *r
 
 
 svn_error_t *
+svn_test__validate_changes(svn_fs_root_t *root,
+                           apr_hash_t *expected,
+                           apr_pool_t *pool)
+{
+  apr_hash_t *actual;
+  apr_hash_index_t *hi;
+
+  SVN_ERR(svn_fs_paths_changed2(&actual, root, pool));
+
+#if 0
+  /* Print ACTUAL and EXPECTED. */
+  {
+    int i;
+    for (i=0, hi = apr_hash_first(pool, expected); hi; hi = apr_hash_next(hi))
+      SVN_DBG(("expected[%d] = '%s'\n", i++, svn__apr_hash_index_key(hi)));
+    for (i=0, hi = apr_hash_first(pool, actual); hi; hi = apr_hash_next(hi))
+      SVN_DBG(("actual[%d] = '%s'\n", i++, svn__apr_hash_index_key(hi)));
+  }
+#endif
+
+  for (hi = apr_hash_first(pool, expected); hi; hi = apr_hash_next(hi))
+    if (NULL == svn_hash_gets(actual, svn__apr_hash_index_key(hi)))
+      return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
+                               "Path '%s' missing from actual changed-paths",
+                               svn__apr_hash_index_key(hi));
+
+  for (hi = apr_hash_first(pool, actual); hi; hi = apr_hash_next(hi))
+    if (NULL == svn_hash_gets(expected, svn__apr_hash_index_key(hi)))
+      return svn_error_createf(SVN_ERR_TEST_FAILED, NULL,
+                               "Path '%s' missing from expected changed-paths",
+                               svn__apr_hash_index_key(hi));
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
 svn_test__txn_script_exec(svn_fs_root_t *txn_root,
                           svn_test__txn_script_command_t *script,
                           int num_edits,

Modified: subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.h
URL: http://svn.apache.org/viewvc/subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.h?rev=1507168&r1=1507167&r2=1507168&view=diff
==============================================================================
--- subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.h (original)
+++ subversion/branches/javahl-1.8-extensions/subversion/tests/svn_test_fs.h Fri Jul 26 01:03:26 2013
@@ -112,6 +112,14 @@ svn_test__validate_tree(svn_fs_root_t *r
                         int num_entries,
                         apr_pool_t *pool);
 
+/* Verify that svn_fs_paths_changed2(ROOT) returns a hash with exactly
+   the same keys as EXPECTED_KEYS.  Values are not currently verified.
+ */
+svn_error_t *
+svn_test__validate_changes(svn_fs_root_t *root,
+                           apr_hash_t *expected_keys,
+                           apr_pool_t *pool);
+
 /* Structure for describing script-ish commands to perform on a
    transaction using svn_test__txn_script_exec().  */
 typedef struct svn_test__txn_script_command_t