1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661
|
Sat Mar 26 10:53:47 UTC 2011
1.0 release.
Changes
- The database scheme was changed; please execute 'mtn db migrate'
on all your local and remote databases.
- In 'mtn conflicts resolve_first interactive', the result
file name now defaults to _MTN/resolutions/<left_path>.
(fixes monotone issue 103)
- The French monotone translation has been updated and is
now part of the main distribution again. Many thanks to
Steve Petruzzello <dlist@bluewin.ch> for the outstanding
work!
- get_netsync_(read|write)_permitted have been extended to not
only read the files read-permissions and write-permissions,
but also the files in the subdirectories read-permissions.d
and write-permissions.d.
- monotone now also tracks the workspaces of databases which
do not reside in a "managed" location.
- automate now resets the locale to "POSIX" internally. This
means that all scripts can expect the same untranslated
messages from mtn automate, regardless of the locale of the
calling process.
- The hook 'get_netsync_key' has been split up into two separate
hooks, one for client usage ('get_netsync_client_key', with
the same arguments as the original 'get_netsync_key') and one
for server usage ('get_netsync_server_key', with a single table
argument containing all the given '--bind' options). Please
review your custom hooks accordingly.
- Short options ('-b', '-d', ...) are no longer completed. This
fixes an invariant failure originating from wrong option usage.
(closes monotone issue 141)
New Features
- 'mtn conflicts store' now outputs a count of the conflicts,
and the name of the conflicts file.
(fixes monotone issue 108)
- New 'mtn list workspaces' command which outputs all the
known workspaces for a specific database.
(closes monotone issue 129)
Bugs fixed
- The internal line merger will actually preserve your line
endings now, instead of changing everything to "\n".
- Improved the help and fixed the argument indexing in
'conflicts resolve_first' (fixes monotone issue 101)
- A regression from 0.48 prevented monotone from ordering the
diff output of individual files alphabetically.
(fixes monotone issue 102)
- 'mtn privkey' did not recognize private keys solely available
in the key store. This has been fixed.
- Added compatibility with Botan 1.9.9 and newer.
(fixes monotone issue 104)
- 'mtn pull' and 'mtn sync' would always say that your workspace
has not been updated. Now, it only does that when you used
the '--update' option and there were no updates.
(fixes monotone issue 106)
- 'mtn automate remote' and 'mtn automate remote_stdio' now use
a given database given by an alias to read, store and validate
a remote server's key fingerprint (fixes monotone issue 95)
- monotone gives a proper error message now if a netsync URI
with the 'mtn' scheme misses the required host part
(fixes monotone issue 110)
- Whenever a binary file was removed and one would try to get
a diff using mtn diff, it would report that "/dev/null is
binary". This has been changed to it reports the actual
name of the removed file instead.
(fixes monotone issue 111)
- monotone no longer wrongly falls back on a :memory: database
when no database option is given. It also prints out an
informational message for commands like 'setup' and 'clone'
that fall back on the configured default database, again,
if no database is specified for these commands.
(fixes monotone issue 113)
- If 'mtn serve' is called with one or more '--bind' options,
then the arguments to these options can now be specified
again as follows:
'<ip-or-host>'
to listen to IP or host on the default port
'<ip-or-host>:<port>'
to listen to IP or host on the specified port - or
':<port>'
to listen on all interfaces on the specified port
(fixes monotone issue 119)
- monotone no longer enforces ".mtn" as file extension for
managed databases. A new Lua hook, get_default_database_glob(),
is used instead to determine a pattern which matches
accepted database filenames and this pattern by default
accept files ending with both, ".mtn" and ".db".
(fixes monotone issue 128)
- monotone now gives a proper error message when an incomplete
or partial identifier contains non-hex digits.
(fixes monotone issue 143)
- Performance of "mtn ls changed" has been improved and is now
comparable to "mtn status". (fixes monotone issue 120)
Internal
- The source tree has been reorganized. Sources, tests and
documentation now reside in specific directories and many
smaller improvements in terms of source code cleanup,
developer documentation and general build infrastructure
accompany this big change.
Other
- Added a new directory extra/, which contains monotone hooks and
related scripts that have been shown to work. Most of these get
installed, usually somewhere under $(prefix)/share/monotone.
Please read extra/README for further information.
- Added the mtn-cleanup Perl script that returns a workspace to its
pristine state with the minimum amount of change. This script is
in the extra/bin directory.
Sun Oct 31 21:51:16 UTC 2010
0.99.1 release.
Bugs fixed
- monotone crashed on x86_64 when a netsync action required
the parsing of an URL. This has been fixed.
(closes monotone issue 100)
- monotone's automation interface version was reported wrongly
as 12.1, where it should have been 13.0.
Thu Oct 28 21:07:18 UTC 2010
0.99 release.
Changes
- The database scheme was changed; please execute 'mtn db migrate'
on all your local and remote databases.
- Normal and automate sync, push, and pull now take a
--dry-run option; no data is transferred, but the connection
is made and a summary of what would be transferred is
output.
- The changelog editor format was simplified; user entered text
is back at the top of file and the instructions have been reduced.
The edited text is saved now even if a commit is canceled.
- Selectors are much more powerful now and selector functions to
calculate common sets of revisions have been introduced.
The characters '(', ')', and ';' need to be quoted if mean literally
(just like '/') because of this. See section 3.2 in the documentation
for details.
(fixes monotone bug #18302).
- The SERVER [BRANCH] call syntax for network-related commands
has been deprecated in favour of the existing, universal
URI syntax. Additionally, file:// and ssh:// URIs are now
parsed for include and exclude patterns just as the native
mtn:// URIs.
The possibility to specify include patterns by using
'include=' and exclude patterns by using 'exclude='
in the query string has been removed. Patterns are separated
by ';' and will be treated as include patterns unless prefixed
with '-'. Where you could previously specify
'mtn://host/?include=foo,exclude=bar', you would now give
'mtn://host/?foo;-bar' instead.
The URI parser was made a bit more standards compliant and
treats the scheme and host in a case insensitive manner.
The path and query parts are now automatically URL-decoded.
We deviate from RFC 3986 however by recognizing the authority
part in scheme-less URLs, where the standard would force us
to recognize a path instead. For example, for the URL
'code.monotone.ca/monotone'
we'd normally parse 'code.monotone.ca/monotone' as path, but our
implementation parses 'code.monotone.ca' as authority and
'/monotone' as path, so you are not forced to type 'mtn://' on
command line, just as you are not forced to type 'http://' in
your browser. Monotone's native scheme / protocol 'mtn' is by
the way set as default in cases like this.
The format for the server part of the 'default-server',
'known-server', 'server-include' and 'server-exclude'
database variables has been changed and now always includes
the complete (normalized) URI resource, consisting of the
used protocol, user, host, port and path parts. Older entries
in existing databases which do not match the new format are
preserved and not changed by monotone.
Please check the manual section 5.3 for more details on the
URI syntax.
- Naturally, the 'clone' command now also accepts mtn:// URIs,
though the use of branch globs is forbidden unless a branch is
specified separately with the new --branch option.
To avoid confusion with an existing workspace, clone no longer
looks for and loads the options of such a workspace, therefor
it now also falls back to the configured default database and
no longer to the database used in the workspace if no explicit
database is given.
- Server defaults for netsync operations are now only saved if
the exchange was successful. The progress messages which have
been issued for this previously have been removed, since they
would come up now unexpectedly and would clutter the output of
commands such as 'clone', 'automate remote' and
'automate remote_stdio'.
- The following characters have been deprecated in branch names
?,;*%+{}[]!^
as they denote either meta characters in monotone's URI syntax
or are used in globs to resolve branch patterns.
Furthermore, branch names should no longer start with a dash
(-), since this character is used to denote an exclude pattern
in the aforementioned URI syntax.
monotone warns on the creation of branches which violate these
restrictions and gives further directions.
- The 'cert' command can now operate on multiple revisions at once.
- The command 'db kill_rev_locally' has been renamed to
'local kill_revision', and 'db kill_tag_locally' and
'db kill_branch_certs_locally' have been replaced with a more
flexible command 'local kill_certs'.
- The 'import' command now keeps the created bookkeeping root if
--dry-run is not specified. This makes it possible to re-use
the import directory as workspace and is also more closely
to what our documentation states, when it says that import
is basically "setup with a twist".
- On Win32 native, the option '--no-format-dates' which disables
the localized date format, is now the default for 'commit', since
dates are not parseable on Win32 native.
- The automate commands sync, push, and pull now output information
about each transferred revision, cert and key, in basic_io format.
- monotone no longer passes syntactically correct, but non-existent
revision ids through the selector machinery. The most visible
place for this change is 'automate select', which no longer
echoes every possible 40 hex-byte string.
- The 'automate genkey' command has been renamed to
'automate generate_key'
New features
- Options can now be overridden; you can specify '--no-unknown
--unknown' on the command line and effectively get back the original
state in the application. Similarly, you can specify '--no-unknown'
in the 'get_default_command_options' hook and then override that
with '--unknown' on the command line.
- New global options:
--no-ignore-suspend-certs undo previous --ignore-suspend-certs
--use-default-key undo previous --key
--allow-default-confdir undo previous --no-default-confdir
--allow-workspace undo previous --no-workspace
--interactive undo previous --non-interactive
--no-standard-rcfiles replaces --norc
--standard-rcfiles undo previous --no-standard-rcfiles
--no-builtin-rcfile replaces --nostd
--builtin-rcfile undo previous --no-builtin-rcfile
--clear-rcfiles undo previous --rcfile
--verbose [-v] increase verbosity (opposite of --quiet)
- Global options now hidden:
--roster-cache-performance-log
- New command options:
add
--no-recursive undo previous --recursive
--respect-ignore undo previous --no-respect-ignore
--no-unknown undo previous --unknown
bisect *, checkout, pivot_root, pluck, update, automate update
--no-move-conflicting-paths undo previous --move-conflicting-paths
diff
--without-header undo previous --with-header
--show-encloser undo previous --no-show-encloser
disapprove, suspend
--no-update undo previous --update
drop
--no-recursive undo previous --recursive
explicit_merge, merge, merge_into_dir propagate
--no-resolve-conflicts undo previous --resolve-conflicts
--no-update undo previous --update
log
--no-brief undo previous --brief
--no-diffs undo previous --diffs
--clear-from undo previous --from
--files undo previous --no-files
--graph undo previous --no-graph
--merges undo previous --no-merges
--clear-to undo previous --to
import
--no-dry-run undo previous --dry-run
--respect-ignore undo previous --no-respect-ignore
mkdir
--respect-ignore undo previous --no-respect-ignore
serve
--no-pid-file undo previous --pid-file
sync, pull, push, automate remote_stdio, automate remote
automate pull, automate push, automate sync
--no-set-default undo previous --set-default
sync, pull, push, automate pull, automate push, automate sync
--dry-run just report what would be sent/received
automate inventory
--corresponding-renames undo previous --no-corresponding-renames
--ignored undo previous --no-ignored
--unchanged undo previous --no-unchanged
--unknown undo previous --no-unknown
automate content_diff
--without-header undo previous --with-header
automate show_conflicts
--no-ignore-suspend-certs undo previous --ignore-suspend-certs
automate log
--clear-from undo previous --from
--merges undo previous --no-merges
--clear-to undo previous --to
- Command options now hidden:
(several commands) --no-prefix
serve --stdio --no-transport-auth
(all netsync/remote commands) --min-netsync-version --max-netsync-version
- Deprecated options:
--norc use --no-standard-rcfiles
--nostd use --no-builtin-rcfile
--reallyquiet use --quiet --quiet
--debug use --verbose
- To aid command line typing, partial option names are tried to
be expanded; if the expansion leads to multiple possibilities,
all matches and an accompanying short description of the
particular expansion are displayed.
Two types of expansions are available: simple prefix matching
and word abbreviation matching. Single-word options like '--update'
are easier to expand from prefixes, as they're unique after a few
characters, in this example '--up' already matches.
Multi-word options like for example '--ignore-suspend-certs' might
collide however with single-worded ones and are best expanded from
abbreviations, in this case '--isc'.
- The 'disapprove' command now accepts a revision range in
addition to a single revision.
- A new 'manpage' command has been added which dumps the monotone
command help including all global and command specific options in
standard troff format. If this command is used interactively, its
output is automatically processed through nroff and less, in case
both are available on your system. If not, you can change the default
command by overwriting the 'get_man_page_formatter_command' hook.
The 'manpage' command is also used to create a static version of
mtn(1) which is now installed with the rest of monotone's docs.
- New 'k:' selector type to query revisions where at least one
certificate was signed with the given key.
- New automate command 'log' which behaves identical to the
normal 'log' command, except that it only outputs the
revision ids.
- New automate command 'checkout' which works just as its
non-automate counterpart.
- Monotone now tracks file size information (hence the previously
mentioned schema change).
File sizes are currently only queryable via the automation
interface, directly for specific files via 'get_file_size' or
as part of the extended manifest (see below), but these
information may become visible as part of the user UI later on
as well.
- New automate command 'get_extended_manifest_of', which prints
a beefed-up manifest format with file size and extensive marking
information. This can be used to easily determine when specific
nodes have been changed or moved at last.
- New automate commands 'put_public_key', 'get_public_key' and
'drop_public_key'. (closes monotone bug #30345)
Bugs fixed
- The 'mv' command now warns when a source is being renamed onto
itself or one of its children (fixes monotone bug #29484).
- The 'mv' command now also handles this usage properly, where
'foo' is a directory:
$ mv foo bar
$ mtn mv --bookkeep-only foo bar
- monotone no longer asks to pick a branch from a set of branches
of a revision in which all but one branch have been suspended
(fixes monotone bug #29843)
- The annotate command no longer fails if it should print out
empty or untrusted date cert values
(fixes monotone bug #30150)
- monotone now tries harder to find the cancel hint in a commit
message and only aborts if it can't find it anywhere
(fixes monotone bug #30215)
- The import command no longer warns about not being able
to write out _MTN/options on --dry-run
(fixes monotone bug #30225)
- 'automate remote' and 'automate remote_stdio' can now be used
without transport authentication (e.g. on file:// or ssh://
transports) as well as anonymously over netsync
(fixes monotone bug #30237)
- monotone does no longer warn about missing implicit includes
when dealing with restricted file sets
(fixes monotone bug #30291)
- The 'passphrase' and 'dropkey' commands now handle private keys
in old-style key files (without the hash part in the file name)
properly.
monotone also makes it very sure now that the key file of a
private key which is about to be deleted really and only
contains the key which should be deleted and nothing else
(fixes monotone bug #30376)
- monotone no longer throws an unrecoverable error if a public or
private key is addressed with some non-existing key id
(fixes monotone bug #30462)
- A globish that contains a bracket pair with an empty sub-pattern
such as "{,.foo}", "{.foo,}" or even "{.foo,,.bar}" now correctly
expands the empty target, so e.g. the branch pattern
"net.venge.monotone{,.*}"
now matches "net.venge.monotone" and "net.venge.monotone.*"
as expected. (fixes monotone bug #30655)
- A regression in 0.48 made a path-restricted 'mtn log' show
revisions, in which not the picked path(s), but one of its parents
were changed. This has been fixed.
- 'mtn trusted' will no longer accept single bogus revision ids,
but instead validates if the given revision really exists in the
current database.
- 'mtn read' (and also 'mtn automate read_packets') now tests public
and private key data more thoroughly and aborts if it encounters
invalid data.
- 'mtn conflicts store' now gives a proper error message when
run outside a workspace (fixes monotone bug #30473)
- monotone did not properly parse URIs which missed a scheme or
which did not mark the start of the authority with a double slash.
This has been fixed.
(fixes monotone issue 94)
Thu Oct 21 23:45:45 UTC 2010
0.48.1 bugfix release.
Security related changes:
- Running "mtn ''" or "mtn ls ''" doesn't cause an internal
error anymore. In monotone 0.48 and earlier this behavior
could be used to crash a server remotely (but only if it was
configured to allow execution of remote commands).
Therefore everyone running such a server should update as
soon as possible.
Other changes:
- The --no-format-dates option is now set per default on Win32
for the commit command, because there's no date parsing
method in the Win32 API. In the changelog editor dates are
thus showed and (expected to be entered) in monotone's
internal datetime format (YYYY-MM-DDTHH:MM:SS).
- Using mtn:// style URIs for netsync operations didn't work
with 0.48 on systems which only have a 'monotone' entry in
/etc/services. Failing to find a corresponding entry for the
schema in a given URI isn't considered fatal now, instead
mtn falls back to its default port.
- Compilation issues on Win32 have been fixed.
Sun Jun 13 22:13:53 UTC 2010
0.48 release.
Changes
- Much more information is now passed to the editor when composing a
commit message for a new revision. The Author, Date, Branch and
Changelog values may now all be changed directly in the editor
allowing new branches to be created without using the --branch option.
Changes to other lines of this information must not be made or the
commit will abort.
- The edit_comment lua hook now only takes one argument which is the
text to be passed to the editor to edit a commit. Existing hooks that
override the default hook will need to be changed to work properly.
- The long date/time format used by 'status', 'commit' and 'log' must
be sufficient to preserve a date through a formatting and parsing
cycle. The 'status' command now checks for this and warns if the
format is unsuitable and 'commit' will refuse to operate with an
unsuitable format.
- The output of the 'status' and 'log' commands has changed to align
with the new information displayed by 'commit' so that all three
commands display revisions similarly.
- The 'setup' as well as the 'clone' command check if no managed default
database exists and if no database is given either as command line
or as workspace option and eventually create a new default database
outside of the bookkeeping directory of the new workspace (see below
for more information on the new management features).
- The output of monotone diff has changed to use /dev/null as the source
for added files and as the target for deleted files. This is
compatible with patch(1) and will cause it to add and delete files
where appropriate. As part of this change diff will now include the
removed contents of deleted files which were omitted in earlier
versions of monotone.
- Monotone will only warn about bad certs if there are not also matching
trusted certs. So if someone commits a bad branch cert, monotone will
only warn about that bad cert until someone else approves that
revision into the same branch (fixes monotone bug #8033).
- 'db check' now checks for errors in the branch heads cache,
and 'db regenerate_caches' fixes them.
- The output of the Lua functions print() and io.write() is now
redirected to the standard progress message stream of monotone.
See chapter 6.3 in the documentation for details.
New features
- Monotone has now database management capabilities: If you place your
databases in one or more specific locations (defaults to
%APPDIR%/monotone/databases on Windows and $HOME/.monotone/databases
on Linux, configurable by a hook), it is able to discover these
databases and access them only by giving the (base) name of their
filename, for example ":my-database.mtn".
You can also directly create new databases in the first found default
location by issuing 'mtn db init -d ":my-database.mtn".
Some commands, like 'setup' and 'clone' automatically fall back to
a default database (":default.mtn", also configurable by a hook) if
no database option is explicitely given.
Additionally, monotone remembers checked out workspaces for every
managed database and displays these "known" registered paths together
with other information in the new 'list databases' command
(closes monotone bug #8916).
- A set of accompanying management commands - 'register_workspace',
'unregister_workspace' and 'cleanup_workspace_list' - to handle moved
or removed workspaces for managed databases have been added.
- Many commands that change the heads of a branch (approve, disapprove,
pull, merge, etc) can now take an option "--update". If run from
a workspace which is based on a head of the branch and has no local
changes, this option makes these commands update that workspace to
the new head. If you always want this behavior, you can define the
get_default_command_options(cmd)
hook in your monotonerc (fixes monotone bug #17878).
- New command 'undrop' which undoes a 'drop' done by mistake
(fixes monotone bug #13604).
- New automation command 'update' which behaves identical to
the normal 'update' command.
- 'ls tags' now outputs the branch name(s) a tagged revision is on.
The revision id is shortened to the first ten characters to get some
more space for this (fixes monotone bug #12773).
- Default include and exclude patterns are now remembered per server.
This means that you can have for example one server that you sync
everything to, and one that you only sync some branches to, and you
don't have to worry about forgetting to give the include pattern and
accidentally trying to sync everything to the second server.
- A new Lua extension function change_workspace(directory) has been
added. This should be most useful for custom commands which need
to work on multiple workspaces from the same monotone instance.
- There is also the new server_set_listening(bool) Lua extention
function available since 0.47, which can be used to let a monotone
server exit gracefully instead of having to be killed.
Bugs fixed
- A regression in 0.47 prevent successful execution of push / pull /
sync over pipes (Debian bug 574512); this has been fixed.
- A bug in 0.46 and 0.47 could lead to pulls or possibly commits taking
approximately forever, if any of the previous branch heads was not a
"close" relation of the new head. This has been fixed.
- Several bugs related to restrictions not including the required parent
directories of included files have been fixed. It is now possible to
say 'mtn add a/b/c' followed by 'mtn commit a/b/c' and have the commit
succeed. See the restrictions section in the manual for more details
(fixes monotone bugs #15994, #17499, #20447 and #22044).
- monotone no longer saves changed options from the command line back
to _MTN/options in case the command execution was unsuccessful
(fixes monotone bug #22928).
- When monotone reads packets from files, like f.e. keys in a directory
given by the --keydir option, and these files are large and do
not contain packet data at all, monotone no longer uses an excessive
amount of time and memory to figure this out
(fixes monotone bug #28799).
- The 'log' command no longer crashes if it is executed in a workspace
whose parent revision(s) do not exist in the specified database
(fixes monotone bug #29677).
- The 'clone' command no longer removes an existing bookkeeping
directory if the target directory "." points to a workspace
(fixes monotone bug #29927).
- The commands in monotone's help output are now sorted alphabetically.
- monotone on Windows will now have a non-zero exit code when
interrupted (^C). This was broken in 0.47 when it was fixed to not
throw an exception on being interrupted.
- In 0.46 and 0.47, monotone could sometimes get confused
about which revisions were the heads of a particular branch.
This would happen when a new branch cert was added to a
revision that was an ancestor of one or more of the current
heads of the branch, most commonly during netsync when
multiple people had performed identical merges. This is
fixed now. 'db check' will identify the problem; if your
database currently gives incorrect 'heads' results, or 'mtn
bug' on 'merge', you can fix it by running 'mtn db
regenerate_caches'.
- In 0.46, spurious network disconnects could occur when transferring
sufficiently large items (files, diffs, revisions). This was fixed
in 0.47 but not noted in the release notes at that time
(fixes monotone bug #28991).
- monotone on Windows will now have a non-zero exit code when
interrupted (^C). This was broken in 0.47 when it was fixed to not
throw an exception on being interrupted.
- the 'mv' command now warns when a source is being renamed onto
itself (fixes monotone bug #29484).
Other
- Support for the diffuse merger (http://diffuse.sourceforge.net)
has been added.
Sun Mar 14 21:15:06 UTC 2010
0.47 release.
Changes
- The default '<unknown>' author used by the git_export command has
changed to 'Unknown <unknown>' and must be changed in existing author
map files. The old '<unknown>' author will be rejected by the new
validate_git_author lua hook.
- The 'git_export' command now validates all git author and committer
values using a new 'validate_git_author' lua hook before they are
written to the output stream. The export will fail if any value is
rejected by this hook.
- The 'git_export' command now calls a new 'unmapped_git_author' lua
hook for all git author values not found in the author map file. The
default implementation of this hook attempts to produce valid git
authors using several default pattern replacements.
- The 'get_date_format_spec' lua hook now has an additional parameter
which hints at the wanted format (f.e. a short date or a long date
time). The default implementation now returns '%x' for short and
long dates, '%X' for short and long times (currently unused) and
'%x %X' for short and long date times.
- The options '--date-format' and '--no-format-dates' are no longer
specific to the 'log' command, but can now be used globally.
- monotone now prompts only three times for a key password.
New features
- Added portuguese translation (thanks to Américo Monteiro)
Bugs fixed
- 'passphrase' now allows an empty new password to be given
(fixes monotone bug #28809)
- 'automate remote' and 'automate remote_stdio' no longer
require an existing database (fixes monotone bug #28885)
- monotone no longer throws an exception on Windows if it is
interrupted (^C); a couple of other bug have been fixed for this
platform as well which generally improve the compatibility.
- The annotation of 'annotate' is now localized.
- The various occurrences where a revision is described by its
certs now come with proper localized date output.
- Fix problems with newer Lua versions especially when
LUA_COMPAT_VARARG not set.
Other
- Roster handling has been sped up significantly, and roster cache
performance has been fixed for the case of overly large rosters.
This should be mostly noticable when digging through history
(especially initial pulls, since those send so many revisions),
and be more noticable for projects with larger trees.
The most significant internal change from this is that rosters and
marking_maps are now copy-on-write. A longer overview of the internal
changes is at:
http://lists.gnu.org/archive/html/monotone-devel/2010-02/msg00043.html
- Improve the compatibility with newer Botan versions.
Sun Jan 17 21:40:35 UTC 2010
0.46 release.
Changes
- "automate stdio" (and "automate remote_stdio", see below)
use separate streams to encode out-of-band information like
informational messages, warnings or tickers. A special
"header" section has been added to the standard output to
identify future stdio version changes. The error codes used
in the output of both stdio and remote_stdio, have also
slightly changed: errors which are the result of a wrong
call (unknown command, invalid options, parsing errors, ...)
are returned with code 1, while errors which happened while
the actual command executed are returned with code 2. Error
codes are no longer echoed with every packet, but only as
the payload of the final 'l' ("last") packet.
Please consult the manual section "mtn automate stdio" for a
detailed description of the new format.
- The 'heads' command should be significantly faster now (not
that it was particularly slow before). This probably isn't
terribly noticable unless you're in the habit of using "h:*"
(heads of all branches) as a selector, it's primarily meant
to enable future changes that will depend on fast 'heads'.
The database schema has been changed, so you will need to
run 'mtn db migrate' (preferably after making a backup copy
of your db).
- the 'status' command now includes the current (to be committed)
revision number and will indicate when the branch option in
_MTN/options has been changed and does not match one of the
revision's parent branches.
- Cert labels in the output of the 'log' command are now
localized.
New features
- There's a new command "automate remote_stdio" that makes it
possible to execute automate commands on a remote server
(for example, to permit a single database to be used both
for serving netsync connections and for running a viewmtn
instance). This requires that the server be running monotone
0.46 or later. Access control on the server uses a new lua
hook "get_remote_automate_permitted(identity, command_line,
options)".
- There's also a new command "automate remote" that's very much
the same, but executes only a single command and does not
stdio-encode the output.
- A new 'bisect' command has been added to allow searching for a
specific revision within a range of revisions. This can be useful for
locating the exact revision that broke something or removed a
particular feature.
- Three new commands - 'push', 'pull' and 'sync' - have been added
to the automation interface. They work just as their non-automate
counterparts.
- The global option '--timestamps' has been added which prefixes
the current local timestamp before diagnostic messages such as
warnings, progress messages, errors and tickers. For example,
this option can be used to log the date and time when clients
connect to a monotone server.
Bugs fixed
- A regression from 0.45's key migration prevented the proper
output of the `committer` field in 'git_export'.
- 'db info --full' no longer crashes when executed on a database
with only one revision.
- The mtn_automate Lua function which can be used for custom
commands now properly handles binary data.
- `db info` now returns a correct byte count for certs again.
- If a public key was read in via the `read` or
`automate read_packets`, an invariant was triggered if the
key was already existing in the database. This has been fixed.
- `annotate` no longer crashes if the annotated file is empty.
Other
- Added the script of the Lua-based contributed Monotone
extension command "mtn remote_export" to contrib/command/
with which a remote revision can be exported locally without
having to fetch all of the history before.
Fri Sep 11 20:50:00 UTC 2009
0.45 release.
Changes
- Certs now link to the key that signed them by the key's
hash, instead of its name. This should provide some
security and usability improvements.
The database schema has been changed, so you will need to
run 'mtn db migrate' (preferably after making a backup copy
of your db).
The netsync protocol version has also changed. However, we
found space to implement full protocol version negotiation,
so no flag day is needed. If your particular project has a
situation where there are multiple keys with the same name,
you will receive errors when trying to sync certs signed by
those keys to older netsync peers.
A number of commands have slightly different output now,
particularly 'ls certs', 'ls tags', 'automate keys',
'automate tags' and 'automate certs'. There is a new Lua
hook associated with these changes,
'get_local_key_name(identity)', and all Lua hooks that used
to take a key name as an argument now instead take a table
with several fields.
Commands which previously accepted a key name now also
accept the key's hash or local name, which is a local alias
for equally named keys. 'read-permissions' and
'write-permissions' accept either the key name or the hash.
There is also a new 'db fix_certs' command which fixes wrong
key assignments in migrated databases if you have the correct
key available.
- The 'resolved_user' conflict resolution is no longer
reported by 'automate show_conflicts' for file content
conflicts; 'resolved_user_left' is used instead.
- 'format_version' was removed from 'automate tags' and
'automate get_attributes' which both do not need this
additional versioning information.
New features
- The 'log' command now, by default, converts all dates it
prints to your timezone instead of leaving them in UTC, and
uses a somewhat more friendly format for the dates.
You can customize the date format with the new
"get_date_format_spec" Lua hook, which returns a strftime(3)
format string. You can also override the format for one
command with the new --date-format option, disable date
conversion for one command with --no-format-dates, or
disable it by default by having the above Lua hook return an
empty string.
- The 'diff' and 'automate content_diff' commands take a
'--reverse' option when one revision is specified, to
control the order of the diff with the workspace.
- The 'update', 'checkout', 'pluck', and 'pivot_root' commands
take an option '--move-conflicting-paths', to handle
unversioned files that are blocking the action. The
unversioned files are moved to
_MTN/resolutions/<workspace_path>, so the action can
succeed, and the user can recover the files if necessary.
- Resolution of orphaned file conflicts is now supported by
'merge --resolve-conflicts' and the 'conflicts' commands.
- Duplicate name conflicts now support the 'keep' resolution.
- Monotone now accepts ':memory:' as argument to the --db option
and sets up a memory-only SQLite database.
- 'clone' allows cloning into the current directory when
'.' is given as argument.
Bugs fixed
- Monotone now sanely skips paths with invalid characters
it encounters during 'add' or 'automate inventory'.
- Key names, cert names, and var domains with non-ASCII
characters should work properly now. Previously, they would
be (usually) converted to punycode on input, and not decoded
on output. They will now not be converted to punycode at
all.
- The 'conflict' commands can now handle duplicate name
conflicts for directories.
- 'cvs_import' now properly parses CVS timestamps (again).
- Windows' cmd.exe is recognized as smart terminal and thus
monotone should create more readable output in
netsync operations.
Tue May 12 20:44:00 UTC 2009
0.44 release.
Changes
- Private keys no longer have a separate hash from the associated
public key. This changes the hashes output by 'ls keys', and also
changes the format of 'automate keys' and 'automate genkey'.
New features
- New 'w:' selector type for selecting the revision the workspace
is based on.
Bugs fixed
- C++ exceptions in Lua extension functions are now converted into
Lua errors catchable with pcall, instead of causing a crash.
- In 0.43 revert became excessively noisy and would report changes to
all attributes on included files and directories regardless of whether
the attributes had been changed or not. This has been silenced.
Monotone will now specifically report changes to execute permissions
only when they occur.
- In 0.43 monotone would lose execute permissions on all files modified
during an update operation. Execute permissions are now reset on
updated files that have the mtn:execute attribute set to true.
- Invalid revision selectors now cause an immediate error instead of
being dropped from the selection. The old behavior could produce
undesired effects from typoed commands, such as spewing a list of
all revisions in the database.
- If "automate stdio" is in use, invalid selectors are reported via
the automate protocol rather than on stderr.
- "Best-effort" character set conversions now work again; 'mtn log'
will not crash just because there is a change log entry with a
character not representable in your locale. However, if your system
iconv(3) implementation does not support the //TRANSLIT extension,
you may see garbage characters in the above scenario.
Internal
- Various small code changes to make monotone compile under (Open)
Solaris using Sun Studio, and under Windows with Visual C++.
- monotone.spec has been removed from the distribution.
Sun Mar 22 22:26:00 UTC 2009
0.43 release.
Changes
- The Monotone source distribution no longer includes copies of
several third-party libraries. This means they must be downloaded
and built separately, before building monotone. See INSTALL for a
complete list of necessary libraries.
This allows monotone's developers to concentrate on monotone
itself, rather than tracking external library updates, which in
practice did not happen. By way of illustration, we were still
shipping sqlite 3.4.1, which is years out of date. This has also
been a long-standing request of various redistributors of binary
packages, who prefer the use of globally shared libraries.
- There is a new db var "database delta-direction", which can have
values "reverse" (default), "forward", and "both". This controls
what kind of deltas are stored for new file versions. Forward
deltas are very fast for netsync, but slow for most other uses.
Set this to "both" (or perhaps "forward" if you're very short on
disk space) on an empty db and pull everything into it, to get a
database which will be much faster for server usage (especially
initial pulls).
- 'mtn help <command_or_group>' or 'mtn <command_or_group> --help' no
longer print global options, thus making the output of specific help
requests more compact. You still see all available global options
by executing 'mtn help' without any arguments.
- 'mtn automate get_current_revision' now returns an empty changeset
instead of an error if a workspace contains no changes.
New features
- A monotone database may be exported in the git fast-import format
using the git_export command. The output from this command may be
piped into git fast-import or other tools supporting this format.
- Additional 'u:' and 'm:' selector types for selecting the revision the
workspace was last updated from and revisions matching specified
message globs in changelog and comment certs.
- Additional '--revision' option for 'mtn log' allows logging of
selected sets of revisions.
- Additional '--full' option for 'mtn db info' to display some
statistic analysis of the date certs in the database.
- Command line options in the EDITOR and/or VISUAL environment
variables are honored; for instance, EDITOR="emacs -nw"
works now. (Debian bug #320565.)
- The `mtn_automate' lua function now correctly parses and sets
options for executed automate commands.
- The 'commit' command accepts a non-empty _MTN/log as the log
message when '--message-file=_MTN/log' is given.
Bugs fixed
- Performance of the log command has been improved significantly.
Previous versions of monotone loaded individual certs by name for each
printed revision and this caused sqlite to not use the correct
index. Now, all certs are loaded for each printed revision once and
individual certs are selected from the full list which allows sqlite
to use the preferred index.
- In 0.42, a netsync writer would attempt to queue up all outgoing
data as soon as it knew what data to send, in a single operation,
without servicing the event loop. If there was a large amount of
data to send, this would cause very long pauses and sometimes
timeouts and dropped connections (for pauses over 10 minutes).
The bug that caused this is fixed, and that operation now has a
safety timer that should prevent it from coming back.
- When the netsync server receives garbage over the network, it
should be much better about only terminating the offending connection
instead of the entire server.
- The log command was missing '--depth' and '--exclude' options used to
restrict revisions printed to those touching specific paths. Log now
allows these options and uses them properly.
- The update command previously did not clear execute permissions from
files that had their associated 'mtn:execute' attribute cleared.
- Several minor problems with workspace attributes have been fixed.
Earlier versions of monotone would reset attributes such as
mtn:execute on all files when any workspace modifying command was
executed. Applying attribute changes to workspace files is now done
much more selectively in the same manner that content and name changes
are applied.
- In certain cases, especially also on FreeBSD and Mac OS X, netsync
called select() even after read() returned 0 bytes to indicate the
end of the file, resulting in a confusing error message. This
is fixed by treating EOF specially and prevent further calls
to select() on the file handle, as recommended by the
select_tut man page.
- If given a filename, `mtn ssh_agent_export' now creates that
file with the correct permissions (i.e. mode 600), creates
directories as necessary, and does not throw an internal
error if creation or writing fails. (You're still on your
own for directory creation and permissions if you take the
key on standard output and redirect it to a file.)
- The `p:' selector now accepts single character revision ids.
- `mtn merge_into_workspace' no longer crashes if one tries to merge
in an ancestor or descendant of a workspace, but gives a helpful
error message.
- Several bugfixes to `mtn automate stdio':
* It now correctly distinguishs between syntax and command errors by
returning error code 1 for the former and error code 2 for the
latter - just as advertised in the documentation.
* The stdio event loop no longer quits if a syntax error occurs, but
rather discards the wrong state and accepts new (valid) commands.
* Option errors haven't been catched properly and thus weren't encoded
in stdio either; this has been fixed as well.
* Global options, which were set or changed by a previously executed
command, weren't properly reset before the next command was issued.
It was f.e. not possible to "unignore" suspended branches for
the `branches' command when `--ignore-suspend-certs' was given in
a previous run. Now only those global options persist between
executed commands which were given to stdio directly.
Internal
- Using 64 bit integer values to represent dates internally. This
has no user visible effect.
- The unit test code has been separated from the main source, thus
building the tests no longer requires a full recompilation. Also,
the number of modules which are linked into unit tester has
decreased tremendously.
- A couple of debug commands have been added to the `database'
command group to aid performance timing. See `mtn help --hidden db'
for a list of available commands.
- Our internal error handling has been overhauled. N() is gone, and E()
takes three arguments instead of 2: E(bool, origin::type, i18n_format).
origin::type is an enum describing the source of the error, eg network,
user, internal. Data types can publically inherit origin_aware (as the
vocab types do) to obtain a public origin::type member named
'made_from'; this can then be supplied to E() when sanity-checking
that data. origin_aware and origin::type are in origin_type.hh.
I() will throw a unrecoverable_failure, and E() will throw either a
unrecoverable_failure or a recoverable_failure depending on the
origin::type provided. informative_failure is gone.
Fri Dec 26 22:08:00 UTC 2008
0.42 release.
Changes
- The output of 'automate show_conflicts' has been changed; a
default resolution for file content conflicts and user resolutions
for other conflict types has been added. 'directory_loop_created'
changed to 'directory_loop'.
- The French, Brazilian-Portuguese and Japanese translations were
outdated and thus have been removed from the distribution. In case
you care about them and want them back, drop us a note at
monotone-devel@nongnu.org.
Bugs fixed
- 'mtn db kill_rev_locally' did not update the inodeprint
cache when executed from a workspace on which the
revision's changes where applied.
- Some recent performance issues have been corrected:
* since 0.40, there is much more use of hex encoding/decoding.
These functions have been sped up considerably.
* since 0.40, every command in an 'automate stdio' session
would reinitialize the database. This was rather slow, so
monotone will now keep the database open between commands.
- The Lua-based contributed Monotone extension introduced in
0.38 haven't been added to the tarball; this has been fixed.
- Monotone died if _MTN/options contained an empty / not-existing
'keydir' entry. This has been fixed. Also, invalid options are now
better detected and give a more useful error message.
- Monotone crashed if it was called with more than 2048 command
line arguments. This has been fixed.
- If vim is used as merger, it no longer prompts the user for an
enter key press.
- Decoding errors f.e. through to garbage from the network no longer
results in informative failures, but in warning. This was made
possible by introducing the concept of origin-aware sanity checks.
- Monotone crashed if it was called with nested wildcards such as
'a.{i.{x,y},j}'. This has been fixed.
- The standard implementation of the 'ignore_file' hook now accepts
windows and unix line endings in .mtn-ignore files.
New features
- New 'mtn ls duplicates' command which lets you list
duplicated files in a given revision or the workspace.
- New option --no-workspace, to make monotone ignore any
workspace it might have been run in.
- New command group 'mtn conflicts *'; provides asynchronous
conflict resolutions for merge and propagate.
- New 'automate file_merge' command which runs the internal line
merger on two files from two revisions and outputs the result.
- New 'automate lua' command with which lua functions, like
monotone hooks, can be called over automate. This is particularily
useful to get user defaults, like ignorable files, branch keys and
passwords, which are managed through one or more monotonerc files.
- New 'automate read_packets' command which reads data packets like
public keys similar to 'mtn read'.
- 'merge' and 'propagate' accept user commit messages; the
'merge rev rev' or 'propagate branch branch' message will be
prefixed to the user message. --no-prefix removes the prefix.
Internal
- Update Botan to 1.7.12.
Wed Sep 3 21:13:18 UTC 2008
0.41 release.
Changes
- 'mtn clone' now takes a branch argument rather than a branch
option which is more what people expect given the fact that
mtn push/pull/sync do not use a branch option either.
- 'mtn automate inventory' will show the birth revision for
any file that has been committed.
Bugs fixed
- If the options '--db' or '--keydir' were previously
specified for a command which was executed inside a
workspace and one or both option arguments were invalid
(f.e. invalid paths), they were still written to
_MTN/options of the particular workspace. This lead to
errors on any subsequent command which used these
options. This bug is fixed in so far that basic file type
checks are applied on both options, so its no longer
possible to set non-existing paths accidentally or use a
path to a directory as option argument for '--db'.
- If a key clash occurs on a netsync operation, i.e. two
different keys with the same key id are encountered, mtn now
fails cleanly and provides further guidance how to proceed.
- It was previously not possible to clone a branch / database
anonymously; this has been fixed.
- If the client tries to use an unknown key, try to fall back
to anonymous pull instead of failing immediately.
- 'mtn automate identify' was broken in 0.40 when used over
stdio, i.e. the output of the command did not get into the
right output channel; this has been fixed.
- Monotone would produce a warning if executed from the root
directory of a Windows drive; this has been fixed.
- The 'note_commit' hook now returns the new revision id
hex-encoded again - the bug was introduced in 0.40.
New features
- New 'mtn suspend' command which lets you mark certain
revisions and thus whole branches as discontinued
("suspended") by attaching a special suspend cert to the
revision. All relevant mtn commands (f.e. mtn heads,
mtn ls branches) honor this cert by default. To ignore it,
simply add '--ignore-suspend-certs' to your command line.
Suspended revisions can have children, which are in no
way affected by the cert of their parent, i.e. suspended
development lines or branches can simply be "unsuspended"
by committing to them.
This feature was already added in monotone 0.37, but was
forgotten to be mentioned in NEWS back then.
- New 'get_default_command_options' lua hook which lets you
specify default options for a given, triggered command.
Useful f.e. if you always want to have your 'mtn add'
command executed with '-R' / '--recursive'.
- Add 'automate show_conflicts' command.
- Add 'automate get_workspace_root' command.
- Add Lua hooks 'note_netsync_revision_sent',
'note_netsync_cert_sent' and 'note_netsync_pubkey_sent'.
Fri Apr 11 22:50:44 UTC 2008
0.40 release.
Changes
- The vim merger has been improved and now uses diff3 to merge
non-conflict changes automatically before executing vimdiff.
- Values used with the --depth option used to control recursion with
node and path restrictions have changed. Using --depth=0 now means
exactly the specified directories and *not* their children. Using
--depth=1 now means the specified directories and their immediate
children. Previously --depth=0 included children and --depth=1
included grandchildren and it was not possible to exclude children
using --depth. The simple fix for anyone using --depth is to add 1 to
the values they are using.
- Document that ssh: and file: sync transports are not supported on
native Win32.
Bugs fixed
- `commit' now uses keydir specified in _MTN/options
- duplicate name conflicts now show a proper error message, even if
a parent directory got renamed as well. In that case, the error
message now shows both names for the directory and the offending
file name.
New features
- The bare parent selector 'p:' can now be used in a workspace to
query the parent(s) of the workspace' base revision. This is
equivalent to "mtn au select p:`mtn au get_base_workspace_revision`".
- push, pull, and sync can be run with a single argument, which looks
like
mtn://hostname?include_pattern/-exclude_pattern
or
mtn://hostname?include=include_pattern/exclude=exclude_pattern
Internal
- Update Botan to 1.7.4.
- Usage of the internal app_state object has been reduced, objects
are better encapsulated now. The database interface has been
enhanced to ease reduction of locking contention in the future.
- Merged the two indexes on revision_certs into a single one.
- The database schema has been changed so that it now stores
binary SHA1 hashes rather than their hexadecimal encoding,
in most places where these are used. This reduces the
database size and speeds up operations a little.
Users who like to fiddle with the database directly are
advised to use the sqlite functions hex() and quote() to
print columns that store hashes (including IDs), and the
hexadecimal literal notation x'DEADBEEF' to input them.
- Binary SHA1 hashes are also used for most in-memory
processing, avoiding conversions and saving memory.
Mon Feb 25 15:55:36 UTC 2008
0.39 release.
Changes
- 'mtn di' is now an alias for 'mtn diff'.
- 'automate db_set' has been renamed to 'automate set_db_variable'.
- 'automate db_get' has been replaced by 'automate get_db_variables'
which returns all database variables similar to 'list vars' in
basic_io format, optionally restricted by domain.
- The REVID argument of 'automate get_revision' is now mandatory;
to retrieve the current workspace revision, use the new command
'automate get_current_revision'
- messages describing conflicts from all of the various merge commands
have been reworked and should be much more informative.
- mtn show_conflicts now outputs much more detailed and descriptive
messages, however it may report content conflicts that will be
resolved automatically by the line merger.
- The internal copy of PCRE has been updated to version 7.6.
If you use the '--with-system-pcre' configure switch, it
will insist on at least this version.
- "emacs" has been removed from the list of dumb terminal types;
tickers should now default to --ticker=count with emacs terminals
- extensive section on merge conflicts and ways to resolve them
added to the manual.
Bugs fixed
- for changes near the beginning of a file, mtn's unified diff
output sometimes contained too many leading context lines.
- the path handling of 'mtn revert' was improved and fixed two bugs:
now a restricted revert on a node "dir1/file1" reverts only the
content changes in "file1", but leaves renames of any of its
ancestor nodes untouched; furthermore, if "dir0/" was renamed to
"dir1" and "dir1/file1" was dropped, mtn now re-creates file1 at the
proper place ("dir1/") and leaves no missing files around because
of the non-existing "dir0/".
- a few changes needed to build with gcc 4.3.
New features
- 'automate drop_db_variables' which drops one database variable
(like the 'unset' command) or all variables within a given domain.
- 'automate inventory' now accepts the options '--no-ignored',
'--no-unknown', '--no-unchanged' and '--no-corresponding-renames'.
Please consult the monotone documentation for more information about
these new options.
In addition, 'automate inventory' no longer recurses into ignored
directories. The typical case of listing files that need attention
now runs at least four times faster.
- 'automate get_current_revision' which outputs the revision text of
changes in the current workspace
Wed Dec 12 21:21:15 UTC 2007
0.38 release.
Changes
- mtn log now prints a single dot for a project's root
directory instead of an empty string.
- mtn now warns if changes to a file will be ignored because
the file has been deleted on one side of a merge.
- mtn now errors if your chosen private key doesn't match the public
key of the same name in your database.
- mtn now checks for your key before a merge action takes place to
ensure that any manually merged file isn't lost in an error case
Bugs fixed
- a bug introduced in 0.37 prevented an external merger from being
executed unless the MTN_MERGE environment variable was set
- mtn read successfully reads revision data, and cert packets again
- mtn consistently supports certs with empty values
(fixed 'ls certs' and 'read')
Internal
- Update Botan to 1.7.2.
- Moved the gzip implementation out of the Botan directory.
Other
- Added the scripts of the following Lua-based contributed
Monotone extension commands to contrib/command/:
"mtn base", "mtn fuse", "mtn revision", "mtn conflicts".
- Added a hooks version of the contributed ciabot script,
contrib/ciabot_monotone_hookversion.lua
- The monotone manual is now licensed under the GPL rather than
the GFDL.
Fri Oct 25 22:35:33 UTC 2007
0.37 release.
Changes
- mtn db kill_rev_locally now checks for an existing workspace
before the revision is killed and tries to apply the changes
of this particular revision back to the workspace to allow
easy re-committing afterwards
- the "--brief" switch for mtn annotate has been renamed to
"--revs-only" for clarity
- mtn help now lists the commands (and their aliases) available
within a group, so its easier to get an overview which commands
are available at all
- the "MTN_MERGE=diffutils" merger (provided by std_hooks.lua)
was improved. It now accepts a MTN_MERGE_DIFFUTILS environment
variable which can be used to control its behaviour
through comma-separated "key[=value]" entries. Currently
supported entries are "partial" for doing a partial
batch/non-modal 3-way merge conflict "resolution" which uses
embedded content conflict markers and "diff3opts=[...]" and
"sdiffopts=[...]" for passing arbitrary options to the used
"diff3" and "sdiff" tools. When used in combination with "mtn
merge_into_workspace" this way one especially can achieve a
CVS/SVN style non-modal workspace-based merging.
- There is a new revision selector: "p:REV" selects the
parent(s) of revision REV. For example, if a revision has
one parent,
mtn diff -r p:REV -r REV
will show the changes made in that revision.
- Monotone now uses the Perl-Compatible Regular Expression
(PCRE) library for all regular expressions, instead of the
boost::regex library. This means that external Boost
libraries are no longer required to build or use Monotone.
If building from source, you will still need the Boost headers
available somewhere. See INSTALL for details.
PCRE's syntax for regular expressions is a superset of
boost::regex's syntax; it is unlikely that any existing
.mtn-ignore files or other user uses of regexps will break.
The manual now contains detailed documentation of the regexp
syntax, borrowed from PCRE itself.
- the format of "mtn automate inventory" has changed to basic_io.
This fixes a couple of corner cases where the old format
returned wrong information and introduces new capabilities like
restricted output, recognized attribute changes, and more.
For a complete overview on the new format, please take a look
in the appropriate manual section.
Bugs fixed
- mtn automate heads called without a branch argument now properly
returns the head revisions of the workspace's branch if called
over mtn automate stdio
- mtn commit no longer crashes if it creates a revision whose
roster already exists, i.e. was left behind by the command
`mtn db kill_rev_locally REV` (savannah #18990)
Documentation changes
- the documentation of the "--revs-only" (formerly "--brief")
switch for the annotate command didn't match its actual
behavior, this has been fixed
- documentation for the "ssh_agent_add" command was missing
and has been added
Other
- contrib/usher.cc has been removed. Please use the
net.venge.monotone.contrib.usher branch instead.
Internal
- Update SQLite to 3.4.1.
- Update Lua to 5.1.2 plus latest bug fixes.
- Update Botan to 1.5.10.
- Internal use of regular expressions has been almost eliminated.
(Regular expressions are still used for .mtn-ignore and the
--show-encloser feature of mtn diff, and are still available to
Lua hooks.)
Fri Aug 3 06:08:36 UTC 2007
0.36 release.
Changes
- The help command is now able to show documentation on subcommands
(such as 'attr set').
- The help command now shows a brief abstract of each command,
instead of only listing their names.
- The command `list changed` now outputs the new path of any
renamed item making it easier to copy and paste these paths
for external program usage.
- `automate attributes` has been renamed to `automate get_attributes`,
also a bug has been fixed there so resurrected attributes are now
properly outputted as "new" and not "changed".
New features
- Two new commands to set and drop attributes over automate:
`automate set_attribute` and `automate drop_attribute`
- There is a new function available to the lua hooks,
'server_request_sync(what, address, include, exclude)', which will
initate a netsync connection to the server at "address", with the
given include and exclude patterns, and will sync, push, or pull,
as given in the "what" argument. If called from a monotone instance
which is not acting as a server, this function will do nothing.
- There is a new hook available,
'get_netsync_key(server, include, exclude)', which is called to
determine which key to use for netsync operations. Note that the
server calls this once at startup with the address it is listening
on, "*", and "" as arguments, rather than for each connection.
Other
- Giving the --confdir argument will automatically set the key store
directory to keys/ under that directory, unless --keydir is also
given. This is a bugfix.
- Fixed a regression in 0.35 that resulted in some databases
becoming significantly larger when storing new revisions. Existing
databases with this problem can be fixed by pulling into a fresh
database using 0.36.
- contrib/lua-mode.el, a Lua mode for GNU emacs.
- contrib/monotone-buildbot-notification.lua, a netsync hook to have a
server notify a buildbot when new changes have arrived. Useful for
anyone who uses a buildbot with monotone as source.
- contrib/monotone-cluster-push.lua, a netsync hook script to have
arriving changes be forwarded to other servers automatically. It
uses the new internal lua function 'server_request_sync'.
- contrib/mtn_makepermissions, a simple script to create
read-permissions and write-permissions from files in the directories
read-permissions.d and write-permissions.d, Debian style.
- contrib/Monotone.pm, a first attempt to write a Perl module to
interface with 'monotone automate stdio'.
- contrib/monotone-import.pl has been removed since monotone now has
an internal import command.
Internal
- Commands are now defined as a tree of commands instead of a
plain list, which allows the help system to look up information
of a command at an level in the tree.
- The command class, the automate class and all the associated
macros have been cleaned up.
- All C++ files now depend on base.hh, which includes the few things
that are used virtually everywhere. 'make distcheck' will check for
the presence of base.hh in all source files and will protest if
it's not there. This is explained further in HACKING.
- Update the internal SQLite to version 3.4.0.
- Updated Visual C building system, which now also builds the test
programs. The script visualc/runtests.bat can be used to run the
tests.
- Monotone can now be built successfully with Boost 1.34. Older
versions of monotone would sometimes seem to work depending on
the compiler used, but would have bugs in path normalization.
- Monotone now requires Boost 1.33 or later.
- The Boost filesystem library is no longer required.
- The Boost unit test system is no longer required.
Mon May 7 14:08:44 UTC 2007
0.35 release.
Changes
- 'mkdir --no-respect-ignore PATH' now really skips any
ignore directives from .mtn-ignore or Lua hooks
- Private keys are now stored more safely, using file
permissions.
- The editable log summary (what you get in an editor when
committing without -m) now includes information about which
branch the commit applies to.
- The status command and the editable log summary now show
the same details about the change.
New features
- 'automate identify', an automate version of 'mtn identify'.
- 'automate roots', prints the roots of the revision graph,
i.e. all revisions that have no parents.
Other
- You can't drop the workspace root any more.
Internal
- Update the internal Lua to version 5.1.2.
- Added build files for Mac OS X.
- Update the internal SQLite to version 3.3.17.
- Code cleanup of app_state.
Sun Apr 1 08:23:34 UTC 2007
0.34 release.
The internal data format has changed with this release;
migration is straight-forward. To upgrade your databases,
you must run:
$ mtn -d mydb.mtn db migrate
All of these operations are completely lossless, and 0.34
remains compatible with earlier versions all the way back
to 0.26 with regards to netsync.
Changes
- Text is now output at best of the environment's possibilities,
transliterating them or substituting '?' as needed.
- The lua hook get_author() now takes a second argument, a
key identity, in case someone wants to create an author based
on that and not only the branch name.
- The command 'chkeypass' became 'passphrase'.
- The commands 'drop', 'rename' and 'pivot_root' default to
always perform the operation in the file system as well.
They do not accept '--execute' any more, but will instead
take '--bookkeep-only' in case the user only wants to affect
bookkeeping files.
New features
- New hook note_mtn_startup(), which is called when monotone is
started.
- New Lua support function spawn_pipe(), which is used to run
a command and get back its standard input and standard output
file handles as well as the pid.
- Monotone will automatically add a monotone key in a resident
ssh-agent when it's first used, and will then use ssh-agent
for all subsequent signing. Thus, you will only need to give
the password once in one session.
- New command 'ssh_agent_export' to export a monotone key into
an SSH key.
- New command 'ssh_agent_add' to add a monotone key explicitly
to a resident ssh-agent.
- New command 'clone' that combines 'pull' and 'checkout'.
- 'automate put_file' and 'automate put_revision' stores a file
and a revision in the database.
- 'automate cert', an automate version of 'mtn cert'.
- 'automate db_set', an automate version of 'mtn set'.
- 'automate db_get', an automate version of 'mtn ls vars' with
a twist.
Other
- contrib/ciabot_monotone_hookversion.py now uses a real
basic_io parser and thus should send more precise
information to the cia server. Furthermore, it has become
more careful with creating zombies.
- contrib/monotone-log-of-pulled-revs-hook.lua, a lua hook
to display information about incoming revisions.
- contrib/monotone-mirror-postaction-push.sh, a post action
script that should be executed by contrib/monotone-mirror.sh
to automatically push data on to other servers.
- contrib/monotone-mirror.lua, a lua hook that executes
contrib/monotone-mirror.sh after any netsync session is done.
- contrib/monotone-mirror.sh now takes keydir and keyid
configuration and has better protection against overlapping
duplicate runs.
- contrib/monotone.bash_completion now handles signals.
- contrib/monotone.el now includes a commit button.
Internal
- Date and time display has now been reimplemented internally
to avoid Boost more. This means that we have lowered our
dependency from Boost 1.33.0 to 1.32.0.
- Lots of code cleanup.
- The heights cache got an index, making the processing faster.
- Update the internal SQLite to version 3.3.13.
- Algorithm to find uncommon ancestors has been rewritten, so
'pull' and 'regenerate_caches' should be faster.
Wed Feb 28 22:02:43 UTC 2007
0.33 release.
The internal data format has changed with this release;
migration is straight-forward. To upgrade your databases,
you must run:
$ mtn -d mydb.mtn db migrate
All of these operations are completely lossless, and 0.33
remains compatible with earlier versions with regards to
netsync.
Changes
- "mtn ls unknown" no longer recurses into unknown directories.
- update will fail rather than clobbering unversioned files
that exist in the workspace.
- update will detect directories with unversioned files before
attempting to drop them and will refuse to run rather than
corrupting the workspace. such unversioned files must be
removed manually.
- the character set and line separator conversion hooks
(get_system_linesep, get_charset_conv and get_linesep_conv)
have been removed. Similar functionality (probably based on
file type attributes) is planned and will be added in a future
release.
- update will switch to the branch of a given revision if it
differs from the current workspace branch.
- add will now accept combinations of --unknown, --recursive and
--no-respect-ignore.
- import now imports unknown directory trees properly.
- use SQLite 3.3.12.
- schema migrator rebuilt and will now properly detect and report
if the database used is created by a newer monotone than the one
currently used.
- removed the man page mtn.1, as it hadn't been updated for a long
time.
New features
- "mtn merge_into_workspace" (still to be documented). This command
will allow you to review and fix up a merge in your workspace
before committing it to the repository. However, the conflict
resolution interface remains the same as that of the 'merge'
command for now (i.e. monotone will invoke your specified merge
tool on all files with conflicts and you must resolve them as they
are presented). Work on in-workspace conflict presentation and
resolution is planned for the future.
- "mtn log" will now print an ASCII revision graph alongside the
usual log text.
Speed improvements
- "mtn annotate file" should run even faster now. it exploits
the fact that we store deltas of rosters. by peeking at
these deltas, it can avoid reconstruction of whole rosters
in many cases.
Other
- contrib/monotone-mirror.sh and
contrib/monotone-mirror-postaction-update.sh, two scripts
to mirror and update directories automatically.
- contrib/monotone-run-script-post-netsync.lua, to automatically
update a directory as soon as new revisions or certs arrive for
a given branch.
- contrib/monotone.bash_completion had some improvemens.
- contrib/monotone.el had some improvements.
Internal
- Internally, the concept of "projects" has been introduced. It
currently doesn't mean anything, but will be used later, with
policy branches and similar.
Wed Dec 27 09:57:48 UTC 2006
0.32 release.
Changes
- "mtn serve" no longer takes patterns on the command line.
Use the permissions hooks instead.
- the name of the option that denoted the revision from which
"mtn log" should start logging was renamed from "--revision"
to "--from"
- author selectors no longer have implicit wildcarding
- if you manually add entries to MTN/log while you are
working, in preparation for an eventual commit, you will now
be required to remove a "magic" template line from the file
before the commit will succeed. This, like the test for an
empty log file, helps to prevent accidents.
- the "db regenerate_caches" migration command replaces the
previous "db regenerate_rosters", generalising the task of
rebuilding or generating cached data that may be added
across an upgrade. Like "db migrate", which upgrades the
database schema, this command fills in the data for new
features. In this release, as well as rosters, it also adds
"heights" information used to speed up topology operations.
Speed improvements
- "mtn annotate file" and "mtn log file" are generally much
faster now, dependant on the number of revisions that
changed the file. Both commands as well as "mtn automate
toposort" make use of data called "heights" caching the
topological order of all revisions. In order to create and
use this data, the following must be run once for each db
after upgrading:
$ mtn -d mydb.mtn db regenerate_caches
New features
- "mtn automate content_diff"
- "mtn automate get_file_of" (same as get_file, but expects
a file path and optionally a revision)
- "mtn import" command
- "mtn log --to"
- netsync_note_* hooks are given much more information,
inlcuding a http/smtp/etc style status code
- includedirpattern(dir, fileglob) function for hooks
Bugs fixed
- bug in "automate stdio" that would result in monotone
garbling its input in some circumstances fixed
- "mtn annotate file" and "mtn log file" are generally much
faster now, dependant on the number of revisions that
changed the file. Both commands as well as "mtn automate
toposort" make use of data called "heights" caching the
topological order of all revisions.
- spawn_redirected hook function now understands a blank
filename to mean not to redirect that stream
- "mtn log" is now in proper topological order, also due to
the use of cached "heights" data
- reset options between "automate stdio" commands
- another compile fix for gcc3
- bug in localization code where option strings where not
always properly translated
Other
- botan library upgraded to 1.6.0
- accommodate changes in boost 1.34
- documentation for "mtn automate get_option"
- notes/ directory
Sat Nov 11 11:06:44 PST 2006
0.31 release. Code cleanups and bug fixes.
New features:
- If multiple --message (or -m) arguments are passed to
'commit', then they will be concatenated on separate lines.
- The validate_commit_message hook is now told what branch the
commit is on.
Bugs fixed:
- The typo that prevented building with gcc 3.3 has been
fixed.
- Attempting to commit without a signing key available now
fails earlier.
- Command-line option parsing has been redone yet again; this
should fix a number of bugs caused by the use of
boost::program_options. For instance, command line error
messages are now l10nized again, "--depth=asdf" now gives a
sensible error message instead of crashing, and --key= now
works as an alternative to -k "".
- A bug in the new roster caching logic that caused assertion
failures on very large trees has been fixed.
- A rare bug in the "epoch refinement" phase of the netsync
protocol has been fixed.
- Accidental (and undocumented) change to 'automate inventory'
output format reverted; documentation is now correct again.
- Some obscure error conditions with 'pivot_root' fixed.
Many fixes to 'automate stdio':
- IO handling has been rewritten, to remove some
obscure bugs and clean up the code.
- automate commands can now take options (even when used with
'automate stdio').
- The default block size has been increased to 32k (which
should considerably reduce overhead).
- Many automate commands were flushing their output far too
often, causing major slowdowns when used with 'automate
stdio'; this has been fixed.
- Syntax errors now cause 'automate stdio' to exit, rather
than attempting to provide usage information for the calling
program to read.
Other:
- New large-coverage random testsuite for delta reconstruction
path finding algorithm.
- Miscellaneous code cleanups and improved error messages.
- Enhancements to debian packaging.
- New translation to es (Spanish).
Sun Sep 17 12:27:08 PDT 2006
0.30 release. Speed improvements, bug fixes, and improved
infrastructure.
Several internal data formats have changed with this release;
migration is straight-forward, but slightly more complicated
than usual:
-- The formats used to store some cached data in the
database have changed. To upgrade your databases, you
must run:
$ mtn -d mydb.mtn db migrate
$ mtn -d mydb.mtn db regenerate_rosters
-- The metadata stored in _MTN in each workspace has been
rearranged slightly. To upgrade your workspaces, you
must run
$ mtn migrate_workspace
in each workspace.
All of these operations are completely lossless, and 0.30
remains compatible with earlier versions with regards to
netsync.
Speed improvements:
- Algorithm used to find branch heads rewritten, to use vastly
less memory and cpu. This not only makes 'mtn heads'
faster, but also 'mtn commit', 'mtn update', and other
commands, which were spending most of their time in this
code.
- The format used in the database to store the roster cache
was rewritten. This makes initial pull approximately twice
as fast, and somewhat improves the speed of restricted log,
annotate, and so on.
- The xdelta algorithm was further optimized.
- A memory leak in Botan was fixed, which was causing
excessive memory and CPU time to be spent during 'mtn
checkout'.
- Monotone has fast-paths for doing character set conversion
when the system it is running on uses plain ASCII. These
fast-paths now know that "646" is another name used for
ASCII, and systems that use this name (like some BSDs) now
benefit from the fast-paths.
- Miscellaneous other improvements.
Workspace format changes:
- It is now possible to write down a multi-parent (merge)
workspace. However, monotone will still refuse to work with
such a workspace, and there is no way to create one. This
change merely sets up infrastructure for further changes.
- _MTN/revision no longer contains only the parent revision
id; if you depended on this in scripts, use 'mtn automate
get_base_revision_id' instead. Also, _MTN/work has been
removed.
UI changes:
- 'mtn status' now includes the branch name and parent
revision id in its output.
- The output of 'mtn annotate' and 'mtn annotate --brief' has
been switched. The more human-readable output is now the
default.
- 'mtn pluck' now gives an error message if the requested
operation would have no effect.
- On command line syntax errors, usage information is now
printed to stderr instead of stdout. (Output requested with
--help still goes to stdout.) This should make it easier to
find bugs in scripts.
Bug fixes:
- While changelog messages have always been defined to UTF-8,
we were not properly converting messages from the user's
locale. This has now been fixed.
- An off-by-one error that caused some operations to abort
with an error message about "cancel_size <
pending_writes_size" has been fixed.
- In 0.29, --help output was not localized. This has been
fixed.
- In 0.29, setting merger = "emacs" would not work unless
EDITOR was also set to "emacs" (and similar for vi). This
has been fixed.
- A rare invariant violation seen when performing certain
sequences of renames/adds in the workspace has been fixed.
- If a user failed to resolve the conflicts in a text file, we
would continue asking them to resolve conflicts in remaining
files, even though the merge could not succeed. We now exit
immediately on failure.
- Work around some g++ 3.3 brokenness.
Documentation changes:
- Imported *-merge documents into the manual (they still need
to be cleaned up to fit in better).
Changes to automate:
- Bug fix in 'attributes': this command is supposed to list
attributes that were removed from a file in the current
revision; instead, it was listing all attributes that had
ever been removed from that file. Now fixed.
- New command 'get_corresponding_path': given a revision A, a
path P, and a revision B, looks up the file with name P in
revision A, and states what path it had in revision B.
- New command 'get_content_changed': given a revision A and a
path P, gives the ancestor of A in which P was last
modified.
- New command 'get_option': Fetches variables from
_MTN/options (e.g., the current workspace's branch and
database).
- New command 'genkey': an automate-friendly way to generate a
new monotone key.
Sun Aug 20 15:58:08 PDT 2006
0.29 release. Code cleanups and bug fixes.
New features:
- The output of 'mtn status' has been changed significantly; the
output formerly used by 'mtn status --brief' has become the
default. For output similar to the old 'mtn status', see
'mtn automate get_revision'.
- It is now significantly easier to control what merger
monotone uses to resolve conflicts; for instance, to use
emacs to resolve conflicts, add:
merger = "emacs"
to your .monotonerc file. To override temporarily, you can
also use the environment variable MTN_MERGE, which takes the
same strings. Currently recognized strings are "kdiff3",
"xxdiff", "opendiff", "tortoisemerge", "emacs", "vim", and
"meld".
- Formerly, monotone's sync-over-ssh support required that an
absolute path be used, with a URL like:
ssh://venge.net/home/njs/my-db.mtn
The following syntaxes are now supported as well:
ssh://venge.net/~/my-db.mtn
ssh://venge.net/~njs/my-db.mtn
Bugs fixed:
- The bug where monotone would sometimes respond to a control-C
(or several other signals) by locking up and refusing to exit,
has been fixed.
- Monotone now properly respects SIGPIPE. In particular, this
means that 'mtn log | less' should now exit promptly when
'less' is exited.
- 'mtn log' now flushes its output after each message; this
makes 'mtn log <FILES>' significantly more usable.
- 'mtn log <FILES>' formerly listed irrelevant revisions (in
particular, any revision which contained a delete of any files
or directories, was always included). This has been fixed.
- If, during an update, two files both had conflicts, which,
when resolved, resulting the two files becoming identical, the
update would error out. This has been fixed.
- If _MTN/log exists and does not end in a newline, we now add a
newline before using the log message. This removes a problem
where the string "MTN:" would end up appended to the last line
of the log message.
- We no longer buffer up an arbitrarily large number of pending
writes in the database. This improves speed and memory usage
for 'commit', and fixes the problem where 'cvs_import' would
run out of memory.
- Monotone's tree walking code (used by 'ls unknown', 'ls
missing', and friends) now uses much less memory, especially
on reiserfs.
Automate changes:
- 'mtn automate stdio' now uses a configurable block size,
controlled by command-line option --automate-stdio-size. This
is mostly useful for testing speed/memory trade-offs.
- 'automate attributes' has a new format, which includes more
information.
Code cleanup:
- We now use boost::program_options to parse command line
options, rather than popt. The only user-visible change
should be that --option="" no longer works as a way to set
some option to the empty string; use --option "". (This
change also removes a lot of orphaned and historically buggy
code from monotone.)
Other:
- zsh completion script significantly revised and updated (see
contrib/monotone.zsh_completion).
Sat Jul 22 01:39:51 PDT 2006
0.28 release. Cherrypicking, a new testsuite, and some fixes
and enhancements.
New features:
- Cherrypicking with the new "pluck" command. This takes (a restricted
subset of) the changes in a revision, or between two
revisions, and applies them to your workspace. That this
has happened is not recorded in history; it as if you
happened to make some very similar changes by hand in your
workspace.
- New automate commands, "automate tags" and "automate branches".
- "diff" now knows how to find enclosing function (or
whatever) bodies, just like GNU diff's "-p" option.
-- The regex that defines "enclosing function" can be chosen
on a per-file basis by a hook function; the default hook
knows about LaTeX, Texinfo, and most programming
languages.
-- This is enabled by default; use --no-show-encloser to
disable.
Enhancements:
- When netsync fails due to permission errors, the server returns a
semi-intelligible message before dropping the connection.
- When merging a branch with 3 or more heads, the order in which to
merge the heads will now automatically be chosen to minimize
the amount of repeated work that must be done.
- Crash dumps are now written to $CONFDIR/dump when no workspace is
available
- Path validation routines are faster.
- Inodeprints should be slightly more robust now.
- New hook get_mtn_command, used to determine the path to the
mtn binary on a remote host, when using ssh support.
- "diff" now accepts "-u" and "-c" as short for "--unified"
(the default) and "--context", respectively.
Bug fixes:
- "revert --missing" now works when run in a subdirectory.
- "revert --missing" now works without any additional files
being specified. (You don't have to say "mtn revert
--missing .".)
- Fix an edge case where monotone would crash if there was a
content conflict in a merge for which there was no lca.
- Fix a case where netsync would sometimes hang during refinement.
- "mtn help" and "mtn --help" now exit with return code 0.
Build environment:
- automake 1.9 is now required.
- The testsuite has been rewritten, and should be much faster now. It
also no longer relies on the presence of a *nix userland.
- Add workaround for gcc 4.1.[01] bug causing "multiple
definition" errors.
Internal:
- Restrictions have been split into path_restrictions and
node_restrictions, and generally cleaned up more.
Sat Jun 17 14:43:12 PDT 2006
0.27 release. Minor bug fixes and enhancements, plus ssh
support.
Major new features:
- Monotone can now push/pull/synchronize over arbitrary
bidirectional streams, not just raw TCP.
- File-to-file synchronization is enabled out of the box,
e.g.:
$ mtn -d db1.mtn sync file:/path/to/db2.mtn
- SSH synchronization is enabled out of the box, e.g.:
$ mtn -d local.mtn sync ssh://njs@venge.net/home/njs/remote.mtn
Note that this requires mtn be installed on the remote
computer, and locks the remote database while running; it
is not ideal for groups accessing a shared database.
- New protocols can be defined with Lua hooks -- for
example, someone could in principle make "$ mtn sync
xmpp://njs@jabber.org" do something interesting.
- See section "Other Transports" under "Advanced Uses" in the
for more details.
Minor new features:
- Selectors now support escaping, e.g., b:foo\/bar can be used
to refer to a branch with name "foo/bar" (normally / is a
metacharacter that separates multiple selectors).
- Visual C++ can now build monotone on Windows. (Mostly
important because it allows better Windows debugging.)
- --quiet now turns tickers off, and does not turn warnings
off. New option --reallyquiet disables warnings as well.
- New command 'automate common_ancestors'.
- 'ls branches' now takes a pattern, e.g.:
$ mtn ls branches "*contrib*"
Speed improvements:
- Bug in select() loop fixed, server should no longer pause in
processing other clients while busy with one, but multiplex
fairly.
- The database has a new write buffer which gives significant
speed improvements in initial pulls by cancelling redundant
database writes.
- There's been a fair bit of performance tuning all around.
Bug fixes:
- Merge tools that exit in failure are now detected.
- Better reporting of operating system errors on Win32.
- Passphrases stored in ~/.monotonerc are no longer written to
the log file. (Passphrases entered at the terminal were
never written to the log file.)
- Fix sql injection bugs in selectors, making it safe to
expose slectors in web interfaces etc.
- Files marked with the mtn:execute attr now respect umask.
- 'automate' commands on Win32 now disable newline translation
on their output; this is especially important for 'automate
stdio'.
- 'db check' now calls the sqlite "PRAGMA integrity_check", to
validate the integrity of things like sqlite indices.
- 'mtn annotate nonexistent-file' now gives a proper error
message, instead of an assertion error.
- 'mtn revert --missing' now works correctly when run in a
subdirectory.
- 'automate inventory' no longer fails when _MTN/work contains
patch stanzas.
Other:
- Many, many internal code cleanups
- Including changes to somewhat reduce the size of the
binary
- New tutorial on using packets added to the manual
- Updated translations, improved error messages, etc.
Reliability considerations:
- In the two months since 0.26 was released, zero serious bugs
have been reported in the new code.
Sat Apr 8 19:33:35 PDT 2006
0.26 release. Major enhancements and internal rewrites.
Please read these notes carefully, as significant changes are
described. In particular, you _cannot_ upgrade to 0.26
without some attention to the migration, especially if you are
working on a project with other people. See UPGRADE for
details of this procedure.
The changes are large enough that there were 3 pre-releases of
this code; the changes that occurred in each can be seen
below. However, for the convenience of those following
releases, all changes since 0.25 will be summarized in these
release notes. There is no need to read the pre-release notes
individually.
Major changes since 0.25:
- The most user-visible change is that the default name of the
monotone binary has changed to 'mtn'. So, for example, you
would now run 'mtn checkout', 'mtn diff', 'mtn commit',
etc., instead of 'monotone checkout', 'monotone diff',
'monotone commit'.
- Similarly, the name of the workspace bookkeeping directory
has changed from "MT" to "_MTN". As workspaces will
generally be recreated when migrating to this release,
this should not cause any problems.
- Similarly, built-in attrs like 'execute' have had 'mtn:'
prepended to their names. For example, executable files
should now have the attr 'mtn:execute' set to 'true' on
them. The migration code will automatically add this
prefix; no user intervention is needed.
- Similarly, the name of the ignore file has changed from
'.mt-ignore' to '.mtn-ignore'. The migration code will
automatically rename this file; no user intervention is
needed.
- Similarly, the recommended suffix for monotone db files is
now '.mtn'.
These changes are all purely cosmetic, and have no affect on
functionality.
- The most developer-visible change is that the data
structure for representing trees has been completely
replaced, and all related code rewritten. The new data
structure is called a 'roster'. You don't really need to
know this name; unless you are hacking on monotone or using
various debug operations, you will never see a roster.
It's mostly useful to know that when someone says something
about 'roster-enabled monotone' or the like, they're
referring to this body of new code.
This change has a number of consequences:
- The textual format for revisions and manifests changed.
There is no conceptual change, they still contain the same
information and work the same way. The formats were
merely cleaned up to correct various problems experience
showed us, and allow various enhancements now and in the
future. However, this change means that a flag-day
migration is required. See UPGRADE for details.
- Directories are now first-class objects. You can add an
empty directory, must drop a directory if you want it to
go away, etc.
- Attrs are now first-class objects. '.mt-attrs' no longer
exists; attrs are now described directly in the manifest,
and changes to them appear directly in revisions. The
migration code will automatically convert existing
.mt-attrs files to the new first-class attrs. If you have
custom attrs, those may require special handling -- if
this is the case, then the upgrader will tell you.
- The merge code has been rewritten completely. The
interface is currently the same (though this rewrite makes
it easier to improve the interface going forward); if you
have found merging in monotone to be easy in the past,
then you will not notice anything different. If you have
run into problems, then the new merger should make your
life substantially simpler. It has full support for
renames (of both directories and files), intelligent
merging of attrs, improved handling of file content
merges. Is the first known merger implementation based on
a provably correct algorithm (the "multi-*-merge"
algorithm), has exhaustive automated tests, and generally
should give accurate, conservative merges.
- The new code is generally faster, though not yet as
fast as it could be.
Netsync changes:
- The default netsync port has changed 5253 to 4691. 4691 is
our official IANA-assigned port. Please adjust firewalls
appropriately.
- Netsync code has also been largely reworked; new code should
provide better opportunities for optimizations going
forward.
- The protocol is incompatible with earlier versions of
monotone. This should not be a surprise, since the data it
carries is also incompatible (see above)...
New features:
- New option --brief to 'annotate', gives somewhat more
friendly output.
- Several enhancements to log:
- New option --next, to display descendent revisions
(rather than ancestor revisions).
- When 'log -r' is given an ambiguous selector, it now just
logs all matching revisions, instead of requiring the
selector be disambiguated.
- New option --no-files.
- New command 'show_conflicts', performs a dry run merge.
- New command 'ls changed'.
- 'rename' (and its alias 'mv') now accept a broader range of
syntax:
mtn rename foo some_dir
-> renames foo to some_dir/foo
mtn rename foo bar baz some_dir
-> moves foo, bar, and baz to some_dir/foo,
some_dir/bar, and some_dir/baz
- New hook 'validate_commit_message', which may be used to
verify that all commit messages meet arbitrary user-defined
rules.
- New option --log, to log monotone's output to a file.
- New option 'drop --recursive', to remove a directory and its
contents in one swoop.
- The root dir may now be renamed. This is a somewhat exotic
feature, but has some interesting uses related to splitting
up or joining together projects; see new commands
'pivot_root', 'merge_into_dir'.
Minor bug fixes:
- 'serve' with no --bind argument should now work on systems
where the C library has IPv6 support, but the kernel does
not.
- Stricter checking on the internal version of filenames to
ensure that they are valid UTF-8.
- If the database is in the workspace, then it is always
ignored.
- Monotone no longer errors out when using a French (fr)
locale with a non-Unicode codeset.
Other changes:
- Packet commands ('rdata', 'fdata', etc.) have been moved to
'automate'.
- Database storage now uses sqlite's blob support; database
files should be ~1/4 smaller as a result.
- Monotone now uses sqlite 3.3; this means that older versions
of the command line client (e.g., an 'sqlite3' command built
against sqlite version 3.2) cannot be used to poke at a
monotone 0.26 database. Solution is to upgrade your sqlite3
program. Hopefully this is irrelevant to most users...
- Translations updated, and 3 new translations added (de, it,
sv).
Reliability considerations:
- This new codebase has received much less testing under real
world conditions than the codebase used in 0.25, simply
because it is newer. It has been in active use for monotone
development since 8 January 2006, and only a small number of
bugs have been found; all bugs found so far have been very
minor, and none stood any danger of corrupting data.
Furthermore, we are much more confident in the theoretical
underpinnings of the new approach than the old, and the test
suite attempts to exhaustively exercise all new code paths.
However, none of this is or can be a substitute for real
world experience. We advise caution in upgrading to this
version of monotone, and suggest that (especially) those who
upgrade aggressively should pay extra attention to the
monotone mailing list before and after doing so.
Wed Mar 29 05:20:10 PST 2006
0.26pre3 release. This release may be considered a "release
candidate", in that while we need to write some tests and make
sure some bugs are fixed, all features are in and we hope that
no further bug fixes will be needed either. It is still a
pre-release for testing. Do not package it. DO NOT USE THIS
RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
But, PLEASE PLEASE TEST this release. There are some
non-trivial changes since 0.26pre2, and this is your last
chance!
Major changes since 0.26pre2:
- The name of the monotone binary has changed to 'mtn'.
- Similarly, the name of the bookkeeping directory in
workspaces has changed from 'MT' to '_MTN' (if you have an
existing 0.26-line workspace, just rename the MT directory
to _MTN).
- Similarly, the name of the ignore file has changed from
".mt-ignore" to ".mtn-ignore". 'rosterify' will rename
these automatically (if you have already rosterified, you
get to rename them by hand).
- Similarly, the recommended suffix for monotone db files is
now ".mtn".
- We now perform stricter checking to make sure that filenames
are valid UTF-8. It is in principle possible that this
stricter checking will cause histories that used to work to
break; if you have non-ascii filenames, it is strongly
recommended to test with this release.
- Root dir renaming is now supported. See new commands
'pivot_root', 'merge_into_dir'.
- As a side-effect, it is now possible to run 'rosterify' on
histories in which two independent lines of history were
merged.
- The security fix released in 0.25.2 has been forward-ported
to this release; this prevents some security exposure to
people running monotone as a client on case-insensitive file
systems.
Minor change since 0.26pre2:
- Database now uses sqlite blobs for storage; should be ~1/4
smaller.
- New command: show_conflicts, does a dry-run merge.
- New option 'drop --recursive', to remove a directory and all
its contents in one swoop.
- Changes to 'log':
- New option --no-files
- Including merges is again the default (i.e., it now acts
like 0.25, and not like 0.26pre2).
- When 'log -r' is given an ambiguous selector, it now just
logs all matching revisions, instead of requiring the
selector be disambiguated.
- New option --log, to log monotone output to a file.
- Netsync changes:
- Was sending far too much data in some cases; now does not.
- Several bugs that caused it to lock up fixed
- Tweak to allow 'usher' proxy to transparently redirect
based on client's protocol version, to ease migration
between incompatible protocol versions.
- Packet commands have been moved to 'automate'.
- Fixed bugs in 'db kill_rev_locally', should no longer leave
an inconsistent db behind.
- Translation updates
Other projects receiving notable work:
- Monotone's "dumb server" support (repo distribution over
HTTP/FTP/SFTP etc.) has been ported to 0.26, a first command
line version written, etc.
- The 'usher' netsync proxy used for hosting many databases on
a single machine has received significant cleanups, and the
'webhost' project to provide a simple interface to shared
monotone hosting providers has received even more work.
Sat Feb 11 13:32:51 PST 2006
0.26pre2 release. Inching towards 0.26. If you are using
0.25 or earlier, then make sure to read the very important
notes for 0.26pre1, below. In particular, like 0.26pre1, this
is a pre-release for testing. Do not package it. DO NOT USE
THIS RELEASE UNLESS YOU WANT TO BE A DAREDEVIL.
(Though, in fact, in a month of usage, only one bug has been
found in the new history code, and it was both minor and
harmless. It has additionally been fixed.)
Database changes:
- SQLite 3.3.3 has been imported. 3.3 introduces a new database
format that is not backwards compatible with earlier 3.x releases.
New databases will be created using this new format. Existing
databases remain compatible, and are not converted automatically.
Existing databases can be converted by performing a database
vacuum ('monotone db execute vacuum').
New features:
- New hook validate_commit_message -- use to verify that all
commit messages meet arbitrary user-defined rules.
UI improvements:
- rename (and mv) commands now accept a broader range of
syntax:
monotone rename foo some_dir
-> renames foo to some_dir/foo
monotone rename foo bar baz some_dir
-> moves foo, bar, and baz to some_dir/foo,
some_dir/bar, and some_dir/baz
- Print a warning if it looks like a user has made a quoting
mistake on push/pull/sync/serve (windows cmd.exe has
confusing rules here).
- New command "ls changed".
- New option "--next" to log, which displays descendents of
the start revision.
- Updating to an arbitrary revision now works again (as it did
in 0.25 and earlier). This allows one to, for instance,
switch a working copy to another head, or back up to an
earlier version, while preserving uncommitted changes.
- New option --brief to annotate, gives somewhat more friendly
output.
- Fixed bug that made ticker output from netsync inaccurate.
- In 'log', --no-merges is now the default, use --merges to
override.
- If the database is in the working copy, then it is always
ignored.
Bugs:
- 'serve' with no --bind should now work on systems where the
C library has IPv6 support, but the kernel does not.
- Compile fixes for GCC 4.1 pre-releases.
Other:
- Better detection when users have not run "rosterify", and
more helpful suggestions on what to do in this case.
- Documentation, translation, error message,
etc. improvements.
- Updates to contrib/mtbrowse.sh, simple shell-based monotone
interface.
- Updates to many other contrib/ files, mostly to maintain
compatibility with monotone changes.
Sun Jan 8 01:08:56 PST 2006
0.26pre1 release. Massive rewrites, released for shakedown.
This release is also dedicated to Shweta Narayan.
This release includes massive changes compared to 0.25. The
core versioning code has all been replaced with a completely
different mechanism. Data formats and the netsync protocol
have changed in incompatible ways.
Migration to 0.26pre1 or later is irreversible and requires a
flag day for your project. See UPGRADE for details. Note
that we DO NOT recommend upgrading at this time; see below.
If you have been following the development list for the last
few months, you may have heard about "rosters" -- this is the
name for the new core data structure we use. While the code
is completely different, the user experience should not be
very different. You will never see a roster, unless you are
debugging monotone itself; everything still revolves around
revisions, manifests, and certs.
While this new code has extensive tests, because of these
incompatibilities, it has never been used for real work. The
purpose of this release is to make a version available for the
monotone developers to begin using for day-to-day work, to
shake out bugs.
Let's say that again in caps: THIS CODE IS PROBABLY BUGGY, DO
NOT USE IT IN PRODUCTION UNLESS YOU WANT TO BE A DAREDEVIL.
However, testing of this version with real databases is a good
idea, and we'd very much appreciate hearing about your
experiences.
Some of the many changes:
- New textual format for revisions and manifests; they remain
conceptually the same, but have been tweaked. Manifests
now use the same "basic_io" format as everything else in
monotone, and contain entries for directories, revisions
record file adds slightly differently and record directory
adds for the first time, etc. Because of this format
change, revision hashes are now different; converting
rosters requires a full history rebuild and reissue of certs.
- Directories are now first class. To get rid of a directory
you must remove it; to create a directory, you must add it.
You can add an empty directory.
- Attrs are now first class. The .mt-attrs file is gone;
attributes are now stored directly in the manifest.
- New merge algorithm, based on "multi-*-merge", and more
aggressive, less buggy merge ancestor selection code
- Netsync's core has been largely rewritten. Code is now much
clearer and more reliable, and now includes the ability to
resume interrupted partial transfers. The netsync protocol
version number has been bumped, and netsync now runs on the
IANA-assigned port 4691 by default.
- 100% fewer change_set.cc related bugs. 100% more roster.cc
related bugs. But the idea of touching roster.cc does not
terrify people.
Thu Dec 29 23:10:03 PST 2005
0.25 release.
Incompatible command line changes:
- 'monotone revert' now requires an argument. To revert your
entire working copy,
$ monotone revert
no longer works; instead, go to the root of your working
copy and run
$ monotone revert .
New features:
- Netsync now supports IPv6 (where OS support exists)
Bugs fixed:
- 'revert' gives feedback describing what it changes
- Database locking further tweaked, to allow more concurrent
access in situations where this is safe.
- On win32, ticker display was fixed, so that it no longer
prints a new line at each update.
- 'read' can now understand (and migrate) privkey packets
generated by monotone version 0.23 or earlier.
- 'log --diffs <files>' now prints only diffs for the given
files (previously, it would print only revisions in which
the given files changed, but would print all diffs for those
revisions).
- Win9x and WinNT 4 compatibility fixes.
New translations:
- pt_BR
Sat Nov 27 22:29:38 PST 2005
0.24 release.
Configuration change (Windows only):
- Configuration directory on Windows has changed. It used to
be some complicated and varying function of %HOME%,
%USERPROFILE%, %HOMEDRIVE%\%HOMEPATH%, whether you were
running in mingw/cygwin, etc. It is now, always,
%APPDATA%\monotone. For instance, if your configuration
file used to be named
...\Documents and Settings\user\.monotone\monotonerc
it will now be named
...\Documents and Settings\user\Application Data\monotone\monotonerc
Please rename files appropriately.
Major key management changes:
- Private keys are no longer stored in your database. They
are stored in ~/.monotone/keys/ (Unix, OS X) or
%APPDATA%\monotone\keys\ (Windows). 'db migrate' will
automatically move your keys out of your database and into
their proper location. Consequences:
- 'genkey' no longer requires a database. Simply run it
once when you first start using monotone, even before you
have created a database.
- Running 'genkey' once will suffice to give all databases
on one computer access to your key. No more fiddling with
'read'.
- When you want to make your key available on another
computer, simply copy over the appropriate file from your
'keys' directory to the corresponding directory on the new
computer.
- Private keys also use a more standard on-disk envelope
encoding ("PBE-PKCS5v20(SHA-1,TripleDES/CBC)") instead of
previous ARC4. More secure, and with extra crypto karma.
Netsync changes:
- Command line syntax for 'serve' changed; administrators WILL
have to adjust scripts.
monotone serve my.host.com "*"
becomes
monotone serve --bind=my.host.com "*"
or simply
monotone serve "*"
(to serve on the default port, on all interfaces).
- Speaking of which, we can now bind to all interfaces; run
'serve' without passing --bind, or with passing
--bind=:port, and monotone will listen on all interfaces.
- New option '--key-to-push' for 'push', 'sync', allows
administrator to push a new user's public key into a running
server without restarting it.
- Netsync permission hooks have new defaults that read a
description of allowed access out of a standard,
basic_io-based textfile (the same stanza-based format that
revisions use). Current hooks will continue to work, but
users may prefer to transition to this format; see manual
for details.
- Between these, it is now straightforward to change
permissions and add users without restarting your server.
- Improvements to experimental "usher" facility.
UI improvements:
- New convenience options "add --unknown", "drop --missing",
"revert --missing" do what you'd expect -- add all
non-ignored non-versioned files, drop all
deleted-but-undropped files, and restore all
deleted-but-undropped files, respectively.
- New selector "h:" to select heads of a branch. "h:" means
heads of current branch, "h:mybranch" means heads of
mybranch.
- Similarly, "b:" selector with no argument now refers to
current branch.
- Commit messages now have a blank line at the top so you can
start typing directly.
- No more obscure error messages when multiple monotone
processes attempt to access a single database at the same
time; we now fail early with a more sensible error message.
(Concurrent access has never caused database corruption;
this simply makes the corruption prevention less frustrating
for the user.)
- New handlers for SIGTERM, SIGINT to rollback database
transactions. Not visible to users (unless you're really
looking carefully). (Again, killing monotone has never been
able to cause database corruption; this simply causes the
transactions to be rolled back immediately, rather than the
next time monotone runs, which improves robustness in some
theoretical way.)
Changes in 'automate':
- New command 'automate keys' to get information on existing
keys in basic_io format.
Updated translations:
- fr
Smaller changes:
- Improved handling of multibyte characters in message
displays.
- Fixes to Botan's memory allocator, to avoid pathological
slowdowns in some rare cases.
- Fix bug in delta-storage code; we were not being as aggressive
about delta-compressing files and manifests as we should
have been.
- Minor bugs fixed, error messages improved.
- Upgrading from 0.23: You must run 'db migrate' and
provide your password, for each database.
Fri Sep 30 02:50:05 PDT 2005
0.23 release.
Possibly incompatible changes:
- hook_note_commit and hook_note_netsync_revision_received
take a new argument containing the text of the revision that
was received. (Timothy Brownawell <tbrownaw@gmail.com>)
- 'cat FILENAME' now acts like the old 'cat file REV
FILENAME'; use new commands 'automate get_revision',
'automate get_manifest', 'automate get_file' to fetch
objects by hash. (Grahame Bowland <grahame@angrygoats.net>)
General improvements:
- .mt-ignore support (Martin Dvorak
<jezek2@advel.cz>, Timothy Brownawell <tbrownaw@gmail.com>)
- much work on making monotone more i18n friendly (Benoît
Dejean <benoit@placenet.org>, Matt Johnston
<matt@ucc.asn.au>)
- support for more interactive merge tools:
- FileMerge.app (comes with OS X) (Marcel van der Boom
<marcel@hsdev.com>)
- TortoiseMerge (Win32; comes with TortoiseSVN) (Matthew
Gregan <kinetik@orcon.net.nz>)
- rename and drop now actually perform the specified rename or
deletion when the argument --execute is passed. (Richard
Levitte <richard@levitte.org>)
- 'help' command, same as --help (Matt Johnston
<matt@ucc.asn.au>).
- 'usher' support: experimental method for proxying multiple
netsync servers through a single port (similar concept to
vhosts) (Timothy Brownawell <tbrownaw@gmail.com>)
- support long passphrases (Matt Johnston <matt@ucc.asn.au>)
- Faster binary file detection (Eric Anderson
<anderse-monotone@cello.hpl.hp.com>)
- netsync speedups:
- when handling large files (Eric Anderson
<anderse-monotone@cello.hpl.hp.com>)
- when handling many branches (Marcel van der Boom
<marcel@hsdev.com>)
- new system to allow crash logs to contain not just execution
traces, but also dumps of data being handled when the error
was detected -- greatly improves debuggability of user
crashes.
- complete rework of path handling code, for clarity,
robustness, and speed. No user visible changes, except for
the many bugs fixed. (Special thanks to Matthew Gregan
<kinetik@orcon.net.nz> and Grahame Bowland
<grahame@angrygoats.net>.)
- however, if you have non-normalized paths in your history
(symptom: fresh pulls with 0.18 work, but fresh pulls with
0.19 do not), then 0.23 will report an error and refuse to
handle the affected revisions. Since it is believed this
only affects one project, and to conserve core developer
time, implementing a migration was put off for now. If
this causes problems or for more details, please send an
email to monotone-devel@nongnu.org.
- as always, many small bug fixes, speedups, and improved
messages.
New translations:
- fr (Benoît Dejean <benoit@placenet.org>)
- ja (Satoru SATOH <ss@gnome.gr.jp>)
Other new monotone-related projects since 0.22:
- mtsh by Timothy Brownawell:
https://netfiles.uiuc.edu/brownawe/www/mtsh/
GTK+ wrapper for monotone focusing on working copy
operations -- add/drop/revert/rename/commit/update/diff and
browsing. Has a mechanism for per-file commit comments.
- "dumb server" support by Nathaniel Smith (share your
monotone repositories via HTTP/FTP, no netsync daemon
needed):
http://viewmtn.angrygoats.net//branch.psp?branch=net.venge.monotone.dumb
Still needs a command-line frontend to be usable, among
other things. Help wanted. In python.
- m7 by Larry Hastings <larry@hastings.org>
http://www.midwinter.com/~lch/programming/m7/
Experimental drop-in command-line wrapper for monotone.
Uses certs to add local incrementing version numbers, and an
enhanced annotate front-end.
Mon Aug 8 23:23:53 PDT 2005
0.22 release. new crypto library, bug fixes, ui improvements
- switch from crypto++ to botan as underlying crypto library.
this should not cause any user-visible changes; let us know
if it does. special thanks to Matt Johnston
<matt@ucc.asn.au>, Kaushik Veeraraghavan
<kaushikv@gmail.com>, Matthew Gregan
<kinetik@orcon.net.nz>.
- incompatible change to netsync permission hooks: the
get_netsync_anonymous_read_permitted hook has been removed;
instead, get_netsync_read_permitted will be called with a
key name of nil. server administrators should update/review
their configuration
- new option for merge and propagate: --lca. Until we get a
long-term solution to the various 3-way merge problems, this
should be more convenient than using explicit_merge.
- many small improvements to error messages, fixes of minor
annoyances, netsync tickers more accurate, etc.
Sun Jul 17 16:48:26 PDT 2005
0.21 release. bug fixes, performance improvements, and ui
improvements.
- fixes a number of major performance bugs in 0.20's netsync
implementation. special thanks to Matt Johnston
<matt@ucc.asn.au>.
- fixes a number of major bugs in 0.20's (rewritten)
cvs_import command.
- configury kluges to work around g++ 4.0/boost 1.32
incompatibilities. special thanks to Christof Petig
<christof@petig-baender.de>, Matthew Gregan
<kinetik@orcon.net.nz>, Jordan Breeding
<jordan.breeding@mac.com>.
- ui enhancements:
- new netsync option "--exclude": branches are included if
they match any of the given globs, unless they match any
of the given --exclude globs. special thanks to Timothy
Brownawell <tbrownaw@gmail.com>.
- new netsync option client "--set-default": makes it easy
to change default server/branches.
- "diff" now takes options "--context" and "--external", to
output context diffs and to invoke an external diff
program for full control over output formatting. new
option "--diff-args" pass arguments to external diff
program; new hook "external_diff" allows further
configuration. special thanks to Vladimir Vukicevic
<vladimirv@gmail.com>.
- b: and t: selectors now match exactly, instead of matching
as substrings. globbing is supported for inexact
matching. special thanks to Brian Downing
<bdowning@lavos.net>, Jordan Breeding
<jordan.breeding@mac.com>.
- new command 'db kill_tag_locally'. special thanks to Jordan
Breeding <jordan.breeding@mac.com>.
- now uses sqlite3 prepared statements. special thanks to
Derek Scherger <derek@echologic.com>.
- 'db migrate' is now a complete no-op if there is no
migration to do; automated scripts can now call it
optimistically and cheaply to guarantee up-to-dateness.
- new hash correctness tests. special thanks to Kaushik
Veeraraghavan <kaushikv@gmail.com>.
- upgrading from 0.20: you must run 'monotone db
migrate' once against each of your databases, to add
new sql indexes.
Tue Jul 5 23:57:10 PDT 2005
0.20 release. features, ui improvements, performance
improvements, and bug fixes.
- major changes in netsync UI: serve/sync/push/pull now take a
list of globs; clients can request arbitrary sets of
branches, not just predefined "collections". write
permissions are now granted on a per-db level (they were
before anyway).
- where you used to say, e.g., "monotone pull
net.venge.monotone", you should instead say
"monotone pull net.venge.monotone*". This may
require shell-quoting.
- 'get_netsync_write_permitted' hooks must be changed
to take only one argument, the 'identity'.
'get_netsync_{read,anonymous_read}_permitted' hooks
now take a branch argument instead of a collection,
and will be called for each branch that a client
requests.
- 0.19 clients cannot talk to 0.20 servers, and vice-versa.
- special thanks to Timothy Brownawell
<tbrownaw@gmail.com>, Richard Levitte
<richard@levitte.org>.
- other major changes:
- cvs_import re-written; many bugs fixed. now
supports tags.
- many minor netsync changes:
- netsync traffic is now cryptographically authenticated
against corruption and man-in-the-middle attacks.
special thanks to Ethan Blanton <elb@elitists.net>,
Matt Johnston <matt@ucc.asn.au>.
- new hooks that are called when server receives data:
note_netsync_*_received. special thanks to Timothy
Brownawell <tbrownaw@gmail.com>.
- ancestry graphs that pass outside the given branch
are now synchronized correctly. special thanks to
Timothy Brownawell <tbrownaw@gmail.com>.
- UI improvements:
- 'log' options changed: --depth has become --last;
new options --no-merges, --diffs, --brief.
- 'status' has new option --brief. special thanks to
Derek Scherger <derek@echologic.com>.
- 'serve' has new option --pid-file. special thanks
to Matthew Gregan <kinetik@orcon.net.nz>.
- all commands taking restrictions now take option
--depth, to limit recursion through subdirectories.
special thanks to Joel Reed <joelwreed@comcast.com>.
- merge command all take --author, --date now.
- 'checkout', 'update' take --revision, instead of
using positional arguments. special thanks to Derek
Scherger <derek@echologic.com>, Richard Levitte
<richard@levitte.org>.
- 'commit' takes new --message-file option.
- new features:
- new commands: "db kill_branch_locally", "db
kill_revision_locally", useful for correcting some
mistakes. special thanks to Brian Campbell
<brian.p.campbell@dartmouth.edu>, Sebastian Spaeth
<Sebastian@sspaeth.de>.
- new file attribute 'manual_merge', to prevent invocation of
merger on binary files. hook added to guess correct
value at 'add' time. special thanks to Riccardo
Ghetta <birrachiara@tin.it>.
- new 'earlier than', 'later than' selectors. special
thanks to Riccardo Ghetta <birrachiara@tin.it>.
- new automate commands:
- 'stdio', for efficient use by
front-ends. special thanks to Timothy Brownawell
<tbrownaw@gmail.com>.
- 'certs', for fetching certs on a revision in a
parseable (basic io-based) format. special thanks
to Grahame Bowland <grahame@angrygoats.net>.
- 'inventory' output changed incompatibly; should be
much more usable now, and stable. special thanks to
Derek Scherger <derek@echologic.com>.
- better memory/performance when handling large files.
special thanks to Eric Anderson
<anderse-monotone@cello.hpl.hp.com>, Timothy Brownawell
<tbrownaw@gmail.com>, Matt Johnston <matt@ucc.asn.au>,
Matthew Gregan <kinetik@orcon.net.nz>.
- new text mode browser in contrib/mtbrowse.sh, by Henry
Nestler <Henry@BigFoot.de>.
- improved zsh completion in contrib/monotone.zsh_completion,
by Joel Reed <joelwreed@comcast.com>.
- upgrading from 0.19: database and working copies are
fully compatible. netsync clients and servers need
to be upgraded together, as described above. the
many ui changes may require script updates.
Tue May 3 00:31:37 PDT 2005
0.19 release. performance improvements, features, ui
improvements, and bug fixes.
- many operations sped up by another factor of 2 or better.
- special thanks to Matt Johnston <matt@ucc.asn.au>.
- first steps towards automated benchmarking. Thanks
to Timothy Brownawell <tbrownaw@gmail.com>.
- new major features:
- "annotate" command; still requires optimization.
Thanks to Emile Snyder <emile@alumni.reed.edu>.
- "inodeprints" for fast change detection in large
working dirs now fully supported; see manual for
details.
- new minor features:
- new selector "c:name=value" for selecting on
arbitrary certs. Thanks to Richard Levitte
<richard@levitte.org>.
- new hooks to automatically initialize attributes on
add; monotone now automatically sets execute bit on
executables. Thanks to Joel Reed
<joelwreed@comcast.net>.
- new automate command "select", to do selector
expansion. Thanks to Richard Levitte
<richard@levitte.org>.
- new automate commands "graph", "parents",
"children", "ancestors", to easily inspect history.
Special thanks to Sebastian Spaeth
<Sebastian@SSpaeth.de>.
- new command "db kill_rev_locally". Thanks to
Sebastian Spaeth <Sebastian@sspaeth.de>.
- new arguments to "commit": --author, --date; useful
for patch attribution and importing history.
- new automate command "inventory" (output format will
change in next release, however). Thanks to Derek
Scherger <derek@echologic.com>.
- ui improvements:
- netsync progress ticker in kilobytes/megabytes.
Thanks to Matt Johnston <matt@ucc.asn.au> and
Sebastian Spaeth <Sebastian@sspaeth.de>.
- tickers do not cause annoying scrolling when wider
than window. Special thanks to Matthew Gregan
<kinetik@orcon.net.nz>.
- warn users when a commit creates divergence, and
when an update ignores it. Thanks to Jeremy Cowgar
<jeremy@cowgar.com>.
- support for command-specific options (there is still
no rule that such options must appear after the
command on the command line, though). Thanks to
Richard Levitte <richard@levitte.org>.
- bug fixes:
- many cvs_import bugs fixed. Special thanks to Jon
Bright <jon@siliconcircus.com>, Emile Snyder
<emile@alumni.reed.edu>, Hansjoerg Lipp
<hjlipp@web.de>, Matthew Gregan
<kinetik@orcon.net.nz>.
- windows/unix working copy line ending conversion now
works correctly. Thanks to Emile Snyder
<emile@alumni.reed.edu>.
- many fixes to i18n-ized filename support
- "drop" and "rename" now affect file attributes as
well. Thanks to Richard Levitte
<richard@levitte.org> and Joel Reed
<joelwreed@comcast.com>.
- better error reporting in netsync. Thanks to
Grahame Bowland <grahame@angrygoats.net>.
- only set working directory's default branch on some
commands (update, commit). Thanks to Florian Weimer
<fw@deneb.enyo.de>.
- "db check" now sets exit status correctly, for use
in scripts. Thanks to Derek Scherger
<derek@echologic.com>.
- many others...
- fantastic emacs integration in contrib/monotone.el. Thanks
to Harley Gorrell <harley@panix.com>.
- 45 new integration tests. total line coverage: ~84%.
- upgrading from 0.18: database and working copies are
fully compatible. NOTE that the configuration file
is now ~/.monotone/monotonerc, rather than old
~/.monotonerc. Simply create ~/.monotone, and
rename any existing configuration file.
Sun Apr 10 17:49:25 PDT 2005
0.18 release. performance improvements, features, and bug fixes.
This release is dedicated to Shweta Narayan.
- most operations sped up by a factor of 2 or better; many sped up
by up several orders of magnitude.
- special thanks to Matt Johnston <matt@ucc.asn.au>, Derek
Scherger <derek@echologic.com>, Linus Torvalds
<torvalds@osdl.org>.
- new concept: "database vars". Used in several features below.
- new features:
- new file "MT/log" can be edited while you work,
sets default changelog. (no change in behaviour if
you do not edit it.) Thanks to Jeremy Cowgar
<jeremy@cowgar.com>.
- monotone now stores default netsync
server/collection, initialized on first use of
netsync.
- you no longer need to manually import server
keys, monotone will fetch the key from the server on
first netsync.
- monotone keeps track of keys of servers you have
previously synced with, to prevent man-in-the-middle
attacks.
- several powerful new "automate" commands added.
- new command 'ls known', lists files that are under version
control. Thanks to Florian Weimer <fw@deneb.enyo.de>.
- preliminary "inodeprints" functionality -- speeds up diff,
status, etc. No UI or documentation yet -- in a working
copy, 'touch MT/inodeprints' to enable, then commit or
update to populate cache.
- UI improvements:
- Added short options -r, -b, -k, -m.
- default to 'dot' ticker-style when stderr is
not a tty, thanks to Derek Scherger
<derek@echologic.com>.
- New "-@/--xargs" option, helpful when using new
automate commands. Thanks to Richard Levitte
<richard@levitte.org>.
- New "--depth" argument to 'log'. Thanks to Richard
Levitte <richard@levitte.org>.
- 'db info' gives statistics on space usage.
- new command 'dropkey'. Thanks to Jeremy Cowgar
<jeremy@cowgar.com>.
- robustness improvement: if monotone crashes in a working
directory and --dump and --debug were not specified, saves
debug dump to "MT/debug" for analysis, instead of
discarding.
- new contributed scripts: CIA (cia.navi.cx) notification,
email notification, Bash completion.
- 33 new integration tests. total line coverage: ~82%.
- many bug fixes
- Special thanks to Matt Johnston <matt@ucc.asn.au>,
for going above and beyond to track down the last
release blocker.
- upgrading from 0.17 requires only a 'db migrate'.
Fri Mar 18 15:38:52 PST 2005
0.17 release. bug fixes and features.
- many, many robustness improvements
- more careful checking everywhere
- much more thorough test suite
- all revisions subject to careful checks before
entering database
- not yet fully optimized; "pull" may be very
slow and use lots of cpu
- support for "epochs", to safely manage future
rebuilds, hash migration, etc.
- new "db check" command, thanks to Derek Scherger
<derek@echologic.com>.
- now uses sqlite3, thanks to Christof Petig
<christof@petig-baender.de>.
- removes most former size limitations
- "restrictions" support, thanks to Derek Scherger
<derek@echologic.com>.
- most commands now take a list of files to limit
their actions to
- monotone can now be run from anywhere in the working
directory (not just the root)
- new command "monotone setup" required to create a
working directory for a new project
- important security fix -- don't use shell when calling
external merge commands.
- format change for "MT/options", ".mt-attrs"; you may have to
edit these files
- new command "attr" for managing .mt-attrs.
- builds merkle tries in-memory -- netsync starts up many
times faster
- start of new "automate" interface, for shell scripts and
others.
- new command "cdiff": generates context diffs.
- remove most of now-obsolete manifest/file cert support.
- 60+ new integration tests.
- many portability fixes
- in particular, major win32 cleanups, thanks to Jon
Bright <jon@siliconcircus.com>. win32 is once again
fully and natively supported.
- many bug fixes
- several incompatible changes: see file UPGRADE for
migration information
Thu Dec 30 01:37:54 EST 2004
0.16 release. bug fixes.
- 50+ new integration tests
- many NetBSD portability fixes
- release build on gcc 3.4 / FC3
- masses of changeset bugs in 0.15 fixed
- some bogus changesets were generated
in the 0.16 development cycle. you will
need to rebuild revision graph.
Sun Nov 7 14:06:03 EST 2004
0.15 release. major changes.
- overhauled the internal representation of changes. see
README.changesets for details
- fixed bugs in merkle trie synchronization code
- fixed echoing and progress UI bugs
(helps when using in emacs)
- upgraded cryptopp to 5.2.1
- fixed bug 8715, diff hunk coordinate reporting
- added figures, new tutorial to manual
- improve accuracy of log command
- several build, configure, and linkage fixes
- some OSX / PPC portability fixes
Sat Jul 31 15:38:02 EDT 2004
0.14 release. bug fixes.
- some compile fixes for g++ 3.4
- made --dump=FILE option for saving traces,
otherwise failures just print reason (no trace)
- some things disabled, as scheduled for replacement
by upcoming changeset branch work
- disabled "disapprove" command due to bad semantics
- removed "bump" and .mt-nonce machinery
- several critical rename-merging bugs fixed
- renames vs. deletes
- renames vs. deltas
- parallel renames
- bugs fixed from savannah bug tracker:
- 9223 argv overflow
- 9075 empty commits
- 8919 rename --verbose to --debug
- 8958 rename debug to db execute
- 8920 empty passphrase message
- 8917 connection refused message
- 8913 testresult argument
- 8912 passphrase read on serve
- 8472 approve into branch
- 8428 duplicate key warning
- 8928 nonce uses too many bits
Thu May 20 22:26:27 EDT 2004
0.13 release. bug fixes.
- remove (file|manifest) in several commands
- "list missing" command
- fixed bugs:
- (critical) empty data netsync crash
- mkstemp, platform lua
- runtime error reporting chatter
- non-posix database names
- non-posix dirnames
- non-posix merge names
- 2-way merge algorithm and hook
- single-character filenames
- multiple password reads
- .svn ignore pattern
Sun May 2 21:03:38 EDT 2004
0.12 release. win32 port, bug fixes and optimizations.
- ported to native win32 (mingw)
- implemented human friendly version selectors
- added post-commit hook for change notification
- removed spirit-based parsers, reduced compile costs
- many netsync bugs removed, pipeline performance improved
- removed old, deprecated networking system
- several minor CVS import bugs fixed
- upgraded bundled netxx
Sun Mar 28 12:41:07 EST 2004
0.11 release. bug fixes and optimizations.
NOTE: this release expands the sqlite page size. YOU WILL NEED
to dump existing databases before upgrading and reload it
after upgrading, otherwise monotone will complain that the
database image appears malformed. this condition cannot
unfortunately be distinguished from a real malformed image on
disk. for example:
$ monotone --db=my.db db dump >dump.sql
$ <upgrade to new monotone>
$ mv my.db my.db.backup
$ monotone --db=my.db db load <dump.sql
- fixed bugs:
- aliasing bug on debian (-O2 now works)
- netsync ppc portability / checksums
- sha1 whitespace bug
- netsync broken formatter
- broken symlink handling
- merger execution pessimism
- LCA bitset calculation pessimism
- static object initialization order
- CVS single-version import
- CVS first-version changelog
- CVS branch inference and topology
- cryptographic SSE2 paths enabled on linux/x86.
- builds against boost 1.31.0.
- removed boost::socket
- removed documentation about old networking system.
- "officially" deprecated old networking system.
- enable building with system-local libraries.
- upgraded bundled sqlite.
- changed sqlite page size from 1k -> 8k
Mon Mar 1 00:32:07 EST 2004
0.10 release. new "netsync" protocol implemented, allowing
direct monotone-to-monotone database synchronization. random
number underflow problem fixed. more tests added. database
schema changed, must migrate schema. added new QA logic to
update and merge algorithms (testresult / approval).
Thu Jan 1 18:23:06 EST 2004
0.9 release. support international users (non-ASCII character
sets, locales). some corrections to update algorithm. line
merging algorithm reimplemented. support working copy
MT/monotonerc file. broke format compatibility with MT/work
files; commit any pending work before upgrading. permit
spaces, colons, other "funny" characters in filenames. support
HTTP 1.1, HTTP proxies, handle some corner cases in ancestry
graph and database faults.
Fri Nov 21 20:25:26 EST 2003
0.8 release. row size increased to 16mb. more performance
improvements in cvs importer. cvs branch tags imported now.
minor UI improvements. new commands: SQL dump and load, vcheck
for enhanced collision detection, queue addtree for recursive
queueing. improved networking scalability. historical rename
certs and .mt-attrs file format changed to accomodate upcoming
i18n work.
Sun Nov 2 23:38:09 EST 2003
0.7 release. many critical merge and patch set calculation
bugs fixed. groups merged with URLs, "monotone db migrate"
necessary. directory renames and explicit rename certs
supported. added SMTP support. incorporated adns library,
avoiding gethostbyname(). new queue commands.
Sat Oct 18 22:10:09 EDT 2003
0.6 release. more stability and bug fixing, including fix to
some silent failures in LCA calculation. some minor new
features: persistent attributes (eg. 'the execute bit'),
rename and log commands. performance of cvs importer greatly
improved, lua system upgraded to 5.0, much expanded
documentation.
Sat Sep 27 11:50:08 EDT 2003
0.5 release. stability and bug fixing. many UI issues
addressed, including SHA1 completion, persistent options, new
revert command and new diff modes. database migration,
inspection and debugging interfaces added. LCS algorithm and
line-merger overhauled. several multi-depot bugs
fixed. existing depot databases should be migrated (depot.cgi
migratedb).
Thu Sep 4 15:40:07 EDT 2003
0.4 release. monotone is now self-hosting. database
compatibility broken since 0.3. depot uses RSA signatures now,
not mac keys. many bugs removed. depot database compatibility
broken. database schemas should now remain stable (or be
provided with safe schema-upgrading function).
Mon Aug 25 18:00:37 EDT 2003
0.3 release. database compatibility broken. packet format
compatibility broken. dropped boost sandbox library dependency.
redid networking to support private HTTP+CGI depots along with
netnews. wrote depot. added 'propagate' command to move changes
between branches asymmetrically. rewrote testsuite in autotest.
cleaned up command line processing. expanded testsuite. improved
user-friendly error reporting.
Fri Aug 8 10:20:01 EDT 2003
0.2 release. database compatibility broken. dropped many
library dependencies. hand-reimplemented xdelta, parts of
nana. incorporated subset of cryptopp and sqlite into
sources. added RCS and CVS importer. switched to piecewise
reconstruction. generally much more robust storage system.
scalability tests against real world CVS archives show
performance gap with CVS closing, but still present.
Sun Apr 6 20:20:42 EDT 2003
initial release
|