# # patch "ChangeLog" # from [966c2ad1b5c6a81e2149b928cbe60a292c6c0a1b] # to [4788040681360b54139bf140f9a602cae52fe0e3] # # patch "tests/t_multiple_heads_msg.at" # from [209dc3a0ecffe7258fb04712d8f92ef91d93cae5] # to [e662d7470063759b847c0d98362dddb90ee7d0b6] # # patch "transforms.cc" # from [7e3fd7a145e67cbbaa04487eeb734064059fb5af] # to [233bde2df66b304082ae7b35746451498cc79073] # --- ChangeLog +++ ChangeLog @@ -1,5 +1,13 @@ 2005-04-23 Nathaniel Smith + * transforms.cc (filesystem_is_ascii_extension_impl): Add EUC to + the list of ascii-extending encodings. + + * tests/t_multiple_heads_msg.at: Make more robust, add tests for + branching. + +2005-04-23 Nathaniel Smith + * app_state.cc (restriction_includes): Remove some L()'s that were taking 5-6% of time in large tree diff. --- tests/t_multiple_heads_msg.at +++ tests/t_multiple_heads_msg.at @@ -15,7 +15,7 @@ AT_CHECK(MONOTONE add f, [], [ignore], [ignore]) AT_CHECK(MONOTONE --branch=branch1 commit --message blah-blah, [], [ignore], [stderr]) -AT_CHECK(grep -qv 'has multiple heads' stderr, []) +AT_CHECK(grep -q 'creates divergence' stderr, [1]) ROOT_R_SHA=`BASE_REVISION` AT_CHECK(MONOTONE --branch=branch1 heads, [], [stdout], [ignore]) @@ -31,7 +31,8 @@ AT_DATA(f, [child1 data ]) -AT_CHECK(MONOTONE --branch=branch1 commit --message blah-blah, [], [ignore], [ignore]) +AT_CHECK(MONOTONE --branch=branch1 commit --message blah-blah, [], [ignore], [stderr]) +AT_CHECK(grep -q 'creates divergence' stderr, [1]) CHILD1_R_SHA=`BASE_REVISION` AT_CHECK(MONOTONE --branch=branch1 heads, [], [stdout], [ignore]) @@ -50,9 +51,37 @@ AT_DATA(f, [child2 data ]) AT_CHECK(MONOTONE --branch=branch1 commit --message blah-blah, [], [ignore], [stderr]) +CHILD2_R_SHA=`BASE_REVISION` AT_CHECK(grep -q 'this revision creates divergence' stderr, []) AT_CHECK(MONOTONE --branch=branch1 update, [], [ignore], [stderr]) AT_CHECK(grep -q 'has multiple heads' stderr, []) +# Create a new branch +# +# root (branch1) +# / \ +# child1 (branch1) child2 (branch1) +# / +# new1 (branch2) +# +# branch1 heads: child1, child2 +# branch2 heads: new2 + +REVERT_TO($CHILD1_R_SHA) + +AT_DATA(f, [new1 data +]) +AT_CHECK(MONOTONE --branch=branch2 commit --message blah-blah, [], [ignore], [stderr]) +NEW1_R_SHA=`BASE_REVISION` +AT_CHECK(grep -q 'this revision creates divergence' stderr, [1]) + +REVERT_TO($CHILD2_R_SHA) + +AT_DATA(f, [new2 data +]) +AT_CHECK(MONOTONE --branch=branch2 commit --message blah-blah, [], [ignore], [stderr]) +NEW2_R_SHA=`BASE_REVISION` +AT_CHECK(grep -q 'this revision creates divergence' stderr, []) + AT_CLEANUP --- transforms.cc +++ transforms.cc @@ -577,7 +577,12 @@ // it here for a speed boost. return (lc_encoding.find("ascii") != std::string::npos || lc_encoding.find("8859") != std::string::npos - || lc_encoding.find("ansi_x3.4") != std::string::npos); + || lc_encoding.find("ansi_x3.4") != std::string::npos + // http://www.cs.mcgill.ca/~aelias4/encodings.html -- "EUC (Extended + // Unix Code) is a simple and clean encoding, standard on Unix + // systems.... It is backwards-compatible with ASCII (i.e. valid + // ASCII implies valid EUC)." + || lc_encoding.find("euc") != std::string::npos); } static inline bool