cm-help.en.txt
309.2 KB
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
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
== CMD_DESCRIPTION_ACL ==
Sets permissions on an object.
== CMD_USAGE_ACL ==
Usage:
cm ^acl (--^user=<usr_name> | --^group=<group_name>)
(-^allowed|-^denied|-^overrideallowed|-^overridedenied=+|-<permission>[,...])[,...]
<objectspec>
--^user User name.
--^group Group name.
-^allowed Enables the specified permission or permissions. Use a
comma to separate permissions. (Use 'cm ^showpermissions'
to display all the available permissions.)
-^denied Denies the specified permission or permission. Use a
comma to separate permissions. (Use 'cm ^showpermissions'
to display all the available permissions.)
-^overrideallowed Overrides the allowed permission or permissions. Use a
comma to separate permissions. (Use 'cm ^showpermissions'
to display all the available permissions.)
-^overridedenied Overrides the denied permission or permissions. Use a
comma to separate permissions. (Use 'cm ^showpermissions'
to display all the available permissions.)
objectspec The object whose permissions will be set.
The valid objects for this command are:
repserver, repository, branch, changeset, label, item,
and attribute.
(Use 'cm ^help ^objectspec' to learn more about specs.)
Special usage for secured paths:
cm ^acl [(--^user=<usr_name> | --^group=<group_name>)
(-^allowed|-^denied|-^overrideallowed|-^overridedenied=+|-<permission>[,...])[,...]]
[--^delete] [--^branches=[+ | -]<branch>[,...]]
<spec>
--^delete Removes a secured path.
See Remarks for more info.
--^branches Sets the secured path permissions to a group of branches.
Use a comma to separate branches.
Optionally, each branch can be preceded by the + or -
sign to specify whether a branch must be added or deleted
to the list when editing.
See Remarks for more info.
spec The secured path where to set the permissions.
== CMD_HELP_ACL ==
Configuring permissions requires understanding how Plastic SCM security works.
Check the Security Guide to learn how permissions work:
https://www.plasticscm.com/download/help/securityguide
Remarks:
This command sets permissions for a user or group on the specified objects,
repositories, branches, labels and/or server paths.
Object specs:
(Use 'cm ^help ^objectspec' to learn how to specify objects.)
The '^acl' command uses a special type of spec: secured paths.
- Secured paths specs:
^path:server_path[#tag]
Examples: ^path:/src/foo.c
^path:/doc/pdf
^path:/doc/pdf#documents
Permission action:
Use -^allowed and -^denied to specify what permissions to set.
Use -^overrideallowed and -^overridedenied arguments to specify what
permissions to override.
Each action requires a permission list separated by commas.
Permission names:
Each permission name is preceded by + or - symbol.
The + symbol sets the permission and the - symbol clears it.
To see the permissions of an object, use the 'cm ^showacl' command.
Overridden permissions:
Overriding a permission using -^overrideallowed and -^overridedenied
allows you to bypass inheritance.
It is helpful to bypass permissions set at the repository or server
level.
Example:
cm ^acl --^user=vio -^allowed=+^ci -^overrideallowed=+^ci ^br:qa@test
(Allows user 'vio' to checkin on the branch 'qa' on repo 'test'
even if she has the permission denied at the repo level.)
Server path permissions (a.k.a. secured paths):
- It is possible to specify permissions for a given server path.
- These permissions are checked during the checkin operation.
- These permissions can also be checked during the update operation,
and can be used as a way to prevent certain directories and files to
be downloaded to the workspace.
- For every item to checkin, the server tries to match the item path
with a secured path. If it matches, the checkin operation checks
whether the item has permissions to be checked in.
The permissions that can be defined for a secured path are the
following:
'^ci', '^change', '^add', '^move', '^rm', '^read'
If the permissions check is not successful for any of the involved
items, the checkin operation will be rolled back.
To set secured path permissions to a group of branches, use the
--^branches option.
Example:
cm ^acl --^user=jo -^denied=+^ci ^path:/src#rule0 --^branches=main,main/rel0
To edit the ACL associated to the secured path, the tag is useful.
Example:
cm ^acl --^user=jo -^denied=+^rm ^path:/src#rule0
(Without the tag, the list of branches would need to be specified
again.)
The list of branches of the secured path can be edited.
Example:
cm ^acl ^path:/src#rule0 --^branches=-main,+main/rel1
(Removes 'main' from the list and adds 'main/rel1'.)
To remove a secured path, use the --^delete argument.
Example:
cm ^acl --^user=jo --^delete ^path:/src#rule0
Inheritance:
Inheritance is an option that comes from the days of Plastic SCM 3.0.
It is advanced, but almost deprecated.
It lets an object inherit its permissions from any other object,
overriding the default inheritance relationships.
Use the option -^cut to cut the inheritance chain.
Use the option -^cutncpy to cut and copy the current inherited
permissions. (This is inspired on the Windows filesystem permissions
where you can cut inheritance but retain the actual permissions.)
The -^inherit option allows the user to inherit from an object spec.
Example: '-^inherit=object_spec'
Examples:
cm ^acl --^user=danipen -^denied=+^ci ^rep:core
(Denies checkin for user 'danipen' on repo 'core'.)
cm ^acl --^group=developers -^allowed=+^view,-^read -^denied=+^chgperm ^br:main
(The command grants view permission, clears read permission,
and denies chgperm permission to 'developers' group in 'main' branch.)
Secured path examples:
cm ^acl --^group=devs -^denied=+^ci ^path:/server#rel --^branches=main,main/2.0
(The command denies the checkin permission to 'devs' group for any path
that matches '/server' in the branches 'main' and 'main/2.0'. The tag '#rel'
is created to be able to refer to it later.)
cm ^acl ^path:/server#rel --^branches=-/main,+/main/Rel2.1
(Updates the secured path '/server', whose tag is 'rel', removing the
'main' branch and adding the branch 'main/Rel2.1' to the branch
group the secured path applies to. Considering the previous example,
now the branches list will contain 'main/Rel2.1' and 'main/2.0'.)
cm ^acl --^user=vsanchezm -^allowed=-^read -^overrideallowed=+^read ^path:/doc
(Removes '^read' permission to 'vsanchezm' overriding it in '/doc' path.)
== CMD_DESCRIPTION_ACTIVATEUSER ==
Activates a licensed user.
== CMD_USAGE_ACTIVATEUSER ==
Usage:
cm ^activateuser | ^au <user-name>[ ...] [--^server=<rep-server-spec>]
user-name The user name or user names to activate. Use double quotes (" ")
to specify user names containing spaces. Use a whitespace to
separate user names.
Options:
--^server=<rep-server-spec> Activates the user in the specified server.
If no server is specified, executes the command
in the default server in the client.conf file.
(Use 'cm ^help ^objectspec' to learn more about
repserver specs.)
== CMD_HELP_ACTIVATEUSER ==
Remarks:
To activate a user, it must have been previously deactivated.
By default, a user is activated the first time they perform a write
operation in Plastic SCM. The user is automatically activated only if
the maximum number of users has not been exceeded.
See the 'cm ^help ^deactivateuser' command for more information about
deactivating Plastic SCM users.
Examples:
cm ^activateuser john
cm ^activateuser david "mary collins"
cm ^au peter --^server=localhost:8087
== CMD_DESCRIPTION_ADD ==
Adds an item to version control.
== CMD_USAGE_ADD ==
Usage:
cm ^add [-^R | -^r | --^recursive] [--^silent] [--^ignorefailed]
[--^skipcontentcheck] [--^coparent] [--^filetypes=<file>] [--^noinfo]
[--^format=<str-format>] [--^errorformat=<str-format>]
<item-path>[ ...]
item-path The item or items to add. Use double quotes (" ") to specify
paths containing spaces. Use a whitespace to separate items.
Use * to add all the contents of the current directory.
Options:
-^R -^r --^recursive Adds items recursively.
--^silent Does not show any output.
--^ignorefailed If an item cannot be added, the add operation will
continue without it. Note: If a directory cannot be
added, its content is not added.
--^skipcontentcheck When the extension is not enough to set the file as
text or binary, it will be set as binary instead of
checking the content to detect the type. This is done
to increase performance on huge checkins.
--^coparent Runs a checkout of the parent of the item being added.
--^filetypes The filetypes file to use. Check the following link for
more information:
http://blog.plasticscm.com/2008/03/custom-file-types.html
--^noinfo Doesn't print progress information.
--^format Retrieves the output message in a specific format. Check
the examples for more information.
--^errorformat Retrieves the error message (if any) in a specific
format. Check the examples for more information.
== CMD_HELP_ADD ==
Remarks:
Requirements to add items:
- The parent directory of the item to add must have been previously added.
Reading input from stdin:
The '^add' command can read paths from stdin. To do this, pass a single dash
"-".
Example: cm ^add -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify which files to add.
Example:
dir /S /B *.c | cm ^add -
(In Windows, adds all .c files in the workspace.)
Examples:
cm ^add file1.txt file2.txt
(Adds 'file1.txt' and 'file2.txt' items.)
cm ^add c:\workspace\file.txt
(Adds 'file.txt' item in path 'c:\workspace'.)
cm ^add -^R c:\workspace\src
(Recursively adds 'src'.)
cm ^add -^R *
(Recursively adds all the contents of the current directory.)
cm ^add -^R * --^filetypes=filetypes.conf
(Recursively adds all the contents of the current directory, using
'filetypes.conf' to assign a type to each file based on its extension,
instead of checking its content.)
cm ^add --^coparent c:\workspace\dir\file.txt
(Adds 'file.txt' to source control, and performs a checkout of 'dir'.)
cm ^add -^R * --^format="ADD {0}" --^errorformat="ERR {0}"
(Recursively adds all the contents of the current directory, printing
'^ADD <item>' for successfully added files, and '^ERR <item>' for items that
could not be added.)
== CMD_USAGE_ADDIGNOREPATTERN ==
Usage:
cm ^addignorepattern <pattern>[ ...]
[--^workspace=<wkpath> | --^allworkspaces] [--^remove]
== CMD_DESCRIPTION_ADMIN ==
Executes administrative commands on the server.
== CMD_USAGE_ADMIN ==
Usage:
cm ^admin <command> [options]
Available commands:
^readonly
To get more information about each command run:
cm ^admin <command> --^usage
cm ^admin <command> --^help
== CMD_HELP_ADMIN ==
Remarks:
Only the server administrator can execute administrative commands.
Examples:
cm ^admin ^readonly ^enter
cm ^admin ^readonly ^status
== CMD_DESCRIPTION_ADMIN_READONLY ==
Enables/disables the server readonly mode.
== CMD_USAGE_ADMIN_READONLY ==
Usage:
cm ^admin ^readonly (^enter | ^leave | ^status) [<server>]
Actions:
^enter The server enters read-only mode. Write operations will be rejected.
^leave The server leaves read-only mode.
^status Shows the server read-only mode status.
Options:
server Executes the command in the specified server (server:port). (Use
'cm ^help ^objectspec' to learn more about server specs.)
If no server is specified, the command works with the server of the
current workspace.
If the current path is not in a workspace, the command works with
the default server defined in the client.conf config file.
== CMD_HELP_ADMIN_READONLY ==
Remarks:
Only the server administrator can enter the server readonly mode.
Examples:
cm ^admin ^readonly ^enter diana:8086
cm ^admin ^readonly ^leave
== CMD_DESCRIPTION_ANNOTATE ==
Shows the changeset where each line of a file was last modified and its author.
== CMD_USAGE_ANNOTATE ==
Usage:
cm ^annotate | ^blame <spec>[ ...]
[--^format=<str_format>]
[--^ignore=(^eol | ^whitespaces | ^"eol&whitespaces" | ^none)]
[--^dateformat=<str_date_format>]
[--^encoding=<name>]
[--^stats]
[--^repository=<repspec>]
spec The spec of the file to annotate.
(Use 'cm ^help ^objectspec' to learn more about specs.)
Use double quotes (" ") to specify paths containing spaces.
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^ignore Sets the specified comparison method.
See Remarks for more info.
--^dateformat Sets the output format to print dates.
--^encoding Specifies the output encoding, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^stats Shows statistics information.
--^repository Specifies a repository spec used to calculate
the annotations. By default, this command uses the
repository where the loaded revision repository in the
workspace is stored. (Use 'cm ^help ^objectspec' to learn
more about repspecs.)
== CMD_HELP_ANNOTATE ==
Remarks:
Binary files can't be annotated.
--^ignore options:
^none Detects end of line and whitespace differences.
^eol Ignores end of line differences.
^whitespaces Ignores whitespace differences.
^"eol&whitespaces" Ignores end of line and whitespace differences.
--^format options:
The output parameters of this command are the following:
{^owner} User who changed the line the last time.
{^rev} Source revision specification of the line.
{^content} Line content.
{^date} Date when the line was checked in.
{^comment} Comment of the source revision of the line.
{^changeset} Changeset of the source revision of the line.
{^line} Line number of the file.
{^id} Item id.
{^parentid} Parent id of the item.
{^rep} Repository of the item.
{^branch} Branch of the source revision of the line.
{^ismergerev} Whether the revision of the line was created in a merge.
--^dateformat:
To specify the output format in which dates will be printed.
See the supported formats specified at:
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
--^repository:
To retrieve data from a remote repository. Useful for distributed
scenarios.
Examples:
cm ^blame c:\workspace\src --^ignore=^"eol&whitespaces" --^encoding=utf-8
cm ^annotate c:\workspace\file.txt --^ignore=^eol
cm ^annotate c:\workspace\file.txt --^format="{^owner} {^date, 10} {^content}"
(Writes the owner field, then a blank, then the date field (aligned to
right), then a blank, and the content.)
cm ^blame c:\workspace\file.txt --^format="{^owner, -7} {^comment} {^date}" \
--^dateformat=yyyyMMdd
(Writes the owner field in 7 spaces (aligned to the left) followed by
a blank, then the comment, followed by another blank, and ending with the
formatted date (for example, 20170329).)
cm ^annotate c:\workspace\file.txt --^repository=centralRep@myserver:8084
cm ^blame ^serverpath:/src/client/checkin/Checkin.cs#^cs:73666
(Annotates the file starting in changeset 73666 using a server path.)
== CMD_DESCRIPTION_APPLY_LOCAL ==
Checks for local changes (locally moved, locally deleted, and locally changed)
and applies them, so that Plastic SCM starts tracking those changes.
== CMD_USAGE_APPLY_LOCAL ==
Usage:
cm ^applylocal | ^al [--^dependencies] [<item_path>[ ...]]
[--^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
Options:
--^dependencies Adds local change dependencies into the items to
apply.
item_path Items to be applied. Use a whitespace to separate
paths. Use double quotes (" ") to specify paths
containing spaces.
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag, specifies how
the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag, specifies how
the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag, specifies how
the fields should be separated.
== CMD_HELP_APPLY_LOCAL ==
Remarks:
If --^dependencies and <item_path> are not specified, the operation involves
all the local changes in the workspace.
It is always applied recursively from the given path.
Examples:
cm ^applylocal foo.c bar.c
cm ^applylocal .
(Applies all local changes in the current directory.)
cm ^applylocal
(Applies all local changes in the workspace.)
cm ^applylocal --^machinereadable
(Applies all local changes in the workspace, and prints the result in a
simplified, easier-to-parse format.)
cm ^applylocal --^machinereadable --^startlineseparator=">" \
--^endlineseparator="<" --^fieldseparator=","
(Applies all local changes in the workspace, and prints the result in a
simplified, easier-to-parse format, starting and ending the lines and
separating the fields with the specified strings.)
== CMD_DESCRIPTION_ARCHIVE ==
Archives data in external storage.
== CMD_USAGE_ARCHIVE ==
Usage:
cm ^archive | ^arch <revspec>[ ...] [-^c | --^comment=<str_comment>]
[--^file=<base_file>]
(Extracts data from the repository and stores it on external storage.)
cm ^archive | ^arch <revspec>[ ...] --^restore
(Restores previously archived revisions back into the repository.)
revspec One or more revision specs. Can be read from the STDIN
with the "-" modifier. (Use 'cm ^help ^objectspec' to
learn more about revspecs.)
--^restore Restores previously archived data from generated archive
files.
Options:
-^c | --^comment Sets a comment in the archive storage files to create.
--^file Name prefix and (optional) path for the new archive
data files.
== CMD_HELP_ARCHIVE ==
Remarks:
This command extracts data from the repository database and store it on
external storage, saving database space.
The command can also restore previously archived revisions back into the
repository database (--^restore).
Use 'cm ^help ^objectspec' to learn how to specify a revspec.
The user running this command must be the Plastic SCM server administrator
(repository server owner) to be allowed to complete the operation.
Every data segment from the specified revisions will be stored in a
different file, with a name starting with the value defined by the --^file
argument. This argument can contain either a full path value including a
prefix for future archive files or just this prefix value.
Once archived, the data from the specified revisions will be accessible in
two ways:
- From the client: The client will detect if the data was archived and it
will prompt the user to enter the location of the files.
Users can configure the external data location by creating a file named
externaldata.conf (at the standard configuration files locations, using
the same rules that apply for the client.conf file) containing the paths
where archived data have been located.
- From the server: This way users won't have to know whether the data was
archived or not, since requests will be transparently resolved by the
server. To do so, the administrator will create a file called
externaldata.conf in the server directory and will fill it with the
paths where the archived volumes are.
To unarchive (restore) a revision (or set of revisions), the archived
files must be accessible from the client. Hence, it is not possible to
unarchive data being resolved by the server (method 2) because the client
will not be able to identify it as archived. If method 2 is used, to
unarchive successfully, the administrator will have to edit the
externaldata.conf server file first to remove access to the archived
files which have to be unarchived.
Set PLASTICEDITOR environment variable to specify an editor to type the
comment.
Examples:
cm ^archive bigfile.zip#^br:/main
(Archives the last revision of 'bigfile.zip' in branch 'main'.)
cm ^archive ^rev:myfile.pdf#^cs:2 -^c="big pdf file" --^file=c:\arch_files\arch
(Archives the revision with changeset 2 of myfile.pdf in 'c:\archived_files'
folder. The archived file name will start with 'arch' (for example, arch_11_56).)
cm ^find "^revs ^where ^size > 26214400" --^format="{^item}#{^branch}" \
--^nototal | cm ^archive --^comment="volume00" --^file="volume00" -
(Archives all the files bigger than 25Mb on files starting with name
'volume00'.)
cm ^find "^revs ^where ^size > 26214400 ^and ^archived='true'" \
--^format="{^item}#{^branch}" --^nototal | cm ^archive --^restore
(Restores all the archived files bigger than 25Mb.)
== CMD_DESCRIPTION_ATTRIBUTE ==
Allows the user to manage attributes.
== CMD_USAGE_ATTRIBUTE ==
Usage:
cm ^attribute | ^att <command> [options]
Commands:
^create | ^mk
^delete | ^rm
^set
^unset
^rename
^edit
To get more information about each command run:
cm ^attribute <command> --^usage
cm ^attribute <command> --^help
== CMD_HELP_ATTRIBUTE ==
Examples:
cm ^attribute ^create status
cm ^attribute ^set ^att:status ^br:/main/SCM105 open
cm ^attribute ^unset ^att:status ^br:/main/SCM105
cm ^attribute ^delete ^att:status
cm ^attribute ^rename ^att:status "buildStatus"
cm ^attribute ^edit ^att:status "Status of the task in the CI pipeline"
== CMD_DESCRIPTION_CHANGELIST ==
Groups pending changes in changelists.
== CMD_USAGE_CHANGELIST ==
Usage:
a) Management of changelists objects:
cm ^changelist | ^clist [--^symlink]
(Displays all changelists.)
cm ^changelist | ^clist ^add <clist_name>
[<clist_desc>] [--^persistent | --^notpersistent] [--^symlink]
(Creates a changelist.)
cm ^changelist | ^clist ^rm <clist_name> [--^symlink]
(Removes the selected changelist. If this changelist contains pending
changes, then these will be moved to the ^default changelist.)
cm ^changelist | ^clist ^edit <clist_name> [<action_name> <action_value>]
[--^persistent | --^notpersistent] [--^symlink]
(Edits the selected changelist.)
b) Management of contents of a given changelist:
cm ^changelist | ^clist <clist_name> (^add | ^rm) <path_name>[ ...]
[--^symlink]
(Adds the selected changelist by adding ('^add') or removing ('^rm') the
change(s) that match with the given path_name(s). Use a whitespace to
separate path_names. Use double quotes (" ") to specify paths containing
spaces. The status of the paths must be '^Added' or '^Checked-out'.)
Options:
clist_name The name of the changelist.
clist_desc The description of the changelist.
action_name Choose between '^rename' or '^description' to edit the
changelist.
action_value Applies the new name or new description when editing
the changelist.
--^persistent The changelist will remain in the workspace even if its
contents are checked-in or reverted.
--^notpersistent (Default) The changelist will not remain in the
workspace even if its contents are checked-in or
reverted.
--^symlink Applies the operation to the symlink and not to the
target.
== CMD_HELP_CHANGELIST ==
Remarks:
The '^changelist' command handles both the workspace pending changelists and
the changes contained in a changelist.
Examples:
cm ^changelist
(Shows the current workspace changelists.)
cm ^changelist ^add config_changes "dotConf files" --^persistent
(Creates a new changelist named 'config_changes' and description 'dotConf
files' which will remain persistent in the current workspace once the
pending changelist is either checked-in or reverted.)
cm ^changelist ^edit config_changes ^rename config_files --^notpersistent
(Edits the changelist named 'config_changes' and renames it to
'config_files'. Also, it turns the changelist into "not persistent".)
cm ^changelist ^edit config_changes --^notpersistent
(Edits the changelist named 'config_changes' and turns it into "not persistent".)
cm ^changelist ^rm config_files
(Removes the pending changelist 'config_files' from the current workspace.)
cm ^changelist config_files ^add foo.conf
(Adds the file 'foo.conf' to the 'config_files' changelist.)
cm ^changelist config_files ^rm foo.conf readme.txt
(Removes the files 'foo.conf' and 'readme.txt' from the 'config_files'
changelist and moves the files to the system default changelist.)
== CMD_DESCRIPTION_CHANGESET ==
Executes advanced operations on changesets.
== CMD_USAGE_CHANGESET ==
Usage:
cm ^changeset <command> [options]
Commands:
^move | ^mv
^delete | ^rm
^editcomment | ^edit
To get more information about each command run:
cm ^changeset <command> --^usage
cm ^changeset <command> --^help
== CMD_HELP_CHANGESET ==
Examples:
cm ^changeset ^move ^cs:15@myrepo ^br:/main/scm005@myrepo
cm ^changeset ^delete ^cs:2b55f8aa-0b29-410f-b99c-60e573a309ca@devData
== CMD_DESCRIPTION_CHANGESET_EDIT_COMMENT ==
Modifies the comment of a changeset.
== CMD_USAGE_CHANGESET_EDIT_COMMENT ==
Usage:
cm ^changeset ^editcomment | ^edit <csetspec> <new_comment>
Options:
csetspec The target changeset whose comment will be edited.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
new_comment The new comment that will be added to the targeted
changeset.
== CMD_HELP_CHANGESET_EDIT_COMMENT ==
Remarks:
- The targeted changeset spec must be valid.
Examples:
cm ^changeset ^editcomment ^cs:15@myrepo "I forgot to add the checkin details"
cm ^changeset ^edit ^cs:cb11ecdb-1aa9-4f11-8698-dcab14e5885a \
"This comment text will replace the previous one."
== CMD_DESCRIPTION_CHANGESET_MOVE ==
Moves a changeset and all its descendants to a different branch.
== CMD_USAGE_CHANGESET_MOVE ==
Usage:
cm ^changeset ^move | ^mv <csetspec> <branchspec>
Options:
csetspec First changeset to be moved to a different branch. All
descendant changesets in the same branch will be
targeted by the command as well.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
branchspec The target branch where the targeted changesets are
stored. It needs to be empty or non-existing; if the
destination branch doesn't exist, it will be created by
the command.
(Use 'cm ^help ^objectspec' to learn more about branch
specs.)
== CMD_HELP_CHANGESET_MOVE ==
Remarks:
- The targeted changeset spec must be valid.
- The destination branch must be either empty or non-existing.
- If the destination branch doesn't exist, it will created.
- Merge links will be kept unchanged, since branches don't affect them.
Examples:
cm ^changeset ^move ^cs:15@myrepo ^br:/main/scm005@myrepo
cm ^changeset ^move ^cs:cb11ecdb-1aa9-4f11-8698-dcab14e5885a ^br:/hotfix/TL-352
== CMD_DESCRIPTION_CHANGESET_DELETE ==
Deletes a changeset from the repository.
== CMD_USAGE_CHANGESET_DELETE ==
Usage:
cm ^changeset ^delete | ^rm <csetspec>
Options:
csetspec The target changeset to be removed. It must fulfill
some specific conditions. See Remarks for more info.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
== CMD_HELP_CHANGESET_DELETE ==
Remarks:
- The target changeset must be the last in its branch.
- The target changeset cannot be the parent of any other changeset.
- The target changeset cannot be neither the source of a merge link nor
part of an interval merge as source.
- No label must be applied to the target changeset.
- The target changeset must not be the root changeset ('^cs:0')
Examples:
cm ^changeset ^rm ^cs:4525@myrepo@myserver
cm ^changeset ^delete ^cs:cb11ecdb-1aa9-4f11-8698-dcab14e5885a
== CMD_DESCRIPTION_CHANGEUSERPASSWORD ==
Changes the user password (UP).
== CMD_USAGE_CHANGEUSERPASSWORD ==
Usage:
cm ^changepassword | ^passwd
== CMD_HELP_CHANGEUSERPASSWORD ==
Remarks:
This command is only available when the security configuration is UP
(user/password). See the Administration guide for more information.
The old and new passwords are required.
Examples:
cm ^passwd
== CMD_DESCRIPTION_CHECKCONNECTION ==
Checks the connection to the server.
== CMD_USAGE_CHECKCONNECTION ==
Usage:
cm ^checkconnection | ^cc
== CMD_HELP_CHECKCONNECTION ==
Remarks:
- This command returns a message indicating whether there is a valid
connection to the configured Plastic SCM server.
- The command checks whether the configured user is valid or not. It also
checks the version compatibility with the server.
== CMD_DESCRIPTION_CHECKDB ==
Checks the repositories integrity.
== CMD_USAGE_CHECKDB ==
Usage:
cm ^checkdatabase | ^chkdb [<repserverspec> | <repspec>]
Use 'cm ^help ^objectspec' to learn more about repserver and rep specs.
== CMD_HELP_CHECKDB ==
Remarks:
- If neither repserverspec nor repspec are specified, the check will be
performed in the server specified in the client.conf file.
Examples:
cm ^checkdatabase ^repserver:localhost:8084
cm ^chkdb ^rep:default@localhost:8084
== CMD_DESCRIPTION_CHECKIN ==
Stores changes in the repository.
== CMD_USAGE_CHECKIN ==
Usage:
cm ^checkin | ^ci [<item_path>[ ...]]
[-^c=<str_comment> | -^commentsfile=<comments_file>]
[--^all|-^a] [--^applychanged] [--^private] [--^update] [--^symlink]
[--^noshowchangeset]
[--^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
Options:
item_path Items to be checked-in. Use double quotes (" ") to
specify paths containing spaces. Use a whitespace to
separate item paths.
Use . to apply checkin to current directory.
-^c Applies the specified comment to the changeset created
in the checkin operation.
-^commentsfile Applies the comment in the specified file to the
changeset created in the checkin operation.
--^all | -^a The items changed, moved and deleted locally on the
given paths are also included.
--^applychanged Applies the checkin operation to the changed items
detected in the workspace along with the checked out
items.
--^private Private items detected in the workspace are also
included.
--^update Processes the update-merge automatically if it
eventually happens.
--^symlink Applies the checkin operation to the symlink and not
to the target.
--^noshowchangeset Doesn't print the result changeset.
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag, specifies how
the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag, specifies how
the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag, specifies how
the fields should be separated.
== CMD_HELP_CHECKIN ==
Remarks:
- If <item_path> is not specified, the checkin involves all the
pending changes in the workspace.
- The checkin operation is always applied recursively from the given path.
- To checkin an item:
- The item must be under source code control.
- If the item is private (not under source code control), the --^private
flag is necessary in order to checkin it.
- The item must be checked out.
- If the item is changed but not checked out, the --^applychanged flag
is not necessary unless <item_path> is a directory or it contains
wildcards ('*').
Revision content should be different from previous revision in order to be
checked in.
Set PLASTICEDITOR environment variable to specify an editor to type the
comment.
Reading input from stdin:
The '^checkin' command can read paths from stdin. To do this, pass a single
dash "-".
Example: cm ^checkin -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify which files to checkin.
Example:
dir /S /B *.c | cm ^checkin --^all -
(In Windows, checkins all .c files in the workspace.)
Examples:
cm ^checkin file1.txt file2.txt
(Checkins the 'file1.txt' and 'file2.txt' checked-out files.)
cm ^checkin . -^commentsfile=mycomment.txt
(Checkins the current directory and sets the comment in the
'mycomment.txt' file.)
cm ^checkin link --^symlink
(Checkins the 'link' file and not the target; available on UNIX
environments.)
cm ^ci file1.txt -^c="my comment"
(Checkins 'file1.txt' and includes a comment.)
cm ^status --^short --^compact --^changelist=pending_to_review | cm ^checkin -
(Lists the paths in the changelist named 'pending_to_review' and redirects
this list to the input of the checkin command.)
cm ^ci . --^machinereadable
(Checkins the current directory, and prints the result in a simplified,
easier-to-parse format.)
cm ^ci . --^machinereadable --^startlineseparator=">" --^endlineseparator="<" --^fieldseparator=","
(Checkins the current directory, and prints the result in a simplified,
easier-to-parse format, starting and ending the lines, and
separating the fields with the specified strings.)
== CMD_DESCRIPTION_CHECKOUT ==
Marks files as ready to modify.
== CMD_USAGE_CHECKOUT ==
Usage:
cm ^checkout | ^co [<item_path>[ ...]] [-^R | -^r | --^recursive]
[--^format=<str_format>]
[--^errorformat=<str_format>] [--^resultformat=<str_format>]
[--^silent] [--^symlink] [--^ignorefailed]
[--^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
Options:
item_path Items to be checked-out. Use double quotes (" ") to
specify paths containing spaces. Use a whitespace to
separate item paths.
Use . to apply checkout to current directory.
-^R Checks out files recursively.
--^format Retrieves the output progress message in a specific
format. Check the examples for more information.
--^errorformat Retrieves the error message (if any) in a specific
format. Check the examples for more information.
--^resultformat Retrieves the output result message in a specific
format. Check the examples for more information.
--^silent Does not show any output at all.
--^symlink Applies the checkout operation to the symlink and not
to the target.
--^ignorefailed If an item cannot be locked (the exclusive checkout
cannot be performed), the checkout operation will
continue without it.
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag, specifies how
the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag, specifies how
the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag, specifies how
the fields should be separated.
== CMD_HELP_CHECKOUT ==
Remarks:
To checkout an item:
- The item must be under source code control.
- The item must be checked in.
If locks are configured on the server (lock.conf exists), then each time
a checkout on a path happens, Plastic checks if it meets any of the rules
and if so, the path will be in exclusive checkout (locked) so that none can
simultaneously checkout.
You can get all the locks in the server by using 'cm ^lock ^list'.
See the Administrator Guide for more information:
https://www.plasticscm.com/download/help/adminguide
The format string replaces the placeholder '{0}' with the path of the item
being checked out. Check the examples to see how to use it.
Reading input from stdin:
The '^checkout' command can read paths from stdin. To do this, pass a single
dash "-".
Example: cm ^checkout -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify which files to checkout.
Example:
dir /S /B *.c | cm ^checkout -
(In Windows, checkouts all .c files in the workspace.)
Examples:
cm ^checkout file1.txt file2.txt
(Checkouts 'file1.txt' and 'file2.txt' files.)
cm ^co *.txt
(Checkouts all txt files.)
cm ^checkout .
(Checkouts current directory.)
cm ^checkout -^R c:\workspace\src
(Recursively checkouts 'src' folder.)
cm ^co file.txt --^format="Checking out item {0}"
--^errorformat="Error checking out item {0}" /
--^resultformat="Item {0} checked out"
(Checkouts 'file.txt' using the specified formatting strings
to show the progress, the result, and the errors of the operation.)
cm ^checkout link --^symlink
(Checkouts the 'link' file and not to the target; available on UNIX
environments.)
cm ^checkout . -^R --^ignorefailed
(Recursively checkouts the current folder, ignoring those files that can
not be checked out.)
cm ^co . --^machinereadable --^startlineseparator=">"
(Checkouts the current directory, and prints the result in a simplified,
easier-to-parse format, starting the lines with the specified strings.)
== CMD_DESCRIPTION_CHECKSELECTORSYNTAX ==
Checks the syntax of a selector.
== CMD_USAGE_CHECKSELECTORSYNTAX ==
Usage:
cm ^checkselectorsyntax | ^css --^file=<selector_file>
(Checks the selector file syntax.)
^cat <selector_file> | cm ^checkselectorsyntax | ^css -
(Unix. Checks selector file from standard input.)
^type <selector_file> | cm ^checkselectorsyntax | ^css -
(Windows. Checks selector file from standard input.)
--^file The file to read a selector from.
== CMD_HELP_CHECKSELECTORSYNTAX ==
Remarks:
This command reads a selector on either a file or standard input, and
checks it for valid syntax. If the syntax check fails, the reason is
printed on standard output.
Examples:
cm ^checkselectorsyntax --^file=myselector.txt
(Checks the syntax of 'myselector.txt' file.)
^cat myselector.txt | cm ^checkselectorsyntax
(Checks the syntax of 'myselector.txt' from standard input.)
== CMD_DESCRIPTION_CHGREVTYPE ==
Changes an item revision type (binary or text).
== CMD_USAGE_CHGREVTYPE ==
Usage:
cm ^changerevisiontype | ^chgrevtype | ^crt <item_path>[ ...] --^type=(^bin | ^txt)
item_path Items to change revision type. Use double quotes (" ")
to specify paths containing spaces. Use a whitespace to
separate item paths.
--^type Target revisions type. Choose '^bin' or '^txt'.
== CMD_HELP_CHGREVTYPE ==
Remarks:
This command can only be applied to files, not directories.
The specified type must be a system supported one: '^bin' or '^txt' (binary
or text).
Examples:
cm ^changerevisiontype c:\workspace\file.txt --^type=^txt
(Changes 'file.txt' revision type to text.)
cm ^chgrevtype comp.zip "image file.jpg" --^type=^bin
(Changes 'comp.zip' and "image file.jpg" revision type to binary.)
cm ^crt *.* --^type=^txt
(Changes revision type of all files to text.)
== CMD_DESCRIPTION_TRIGGER_EDIT ==
Edits a trigger.
== CMD_USAGE_TRIGGER_EDIT ==
Usage:
cm ^trigger | ^tr ^edit <subtype_type> <position_number>
[--^position=<new_position>]
[--^name=<new_name>] [--^script=<script_path>]
[--^filter=<str_filter>] [--^server=<repserverspec>]
subtype_type Trigger execution and trigger operation.
Type 'cm ^showtriggertypes' to see a list of trigger
types.
position_number Position occupied by the trigger to be modified.
Options:
--^position New position of the specified trigger.
This position must not be in use by another
trigger of the same type.
--^name New name of the specified trigger.
--^script New execution path of the specified trigger script.
If the script starts with "^webtrigger ", it will be
considered as a web trigger. See Remarks for more
further details.
--^filter Checks only items that match the specified filter.
--^server Modifies the trigger on the specified server.
If no server is specified, executes the command on the
one configured on the client.
(Use 'cm ^help ^objectspec' to learn more about server
specs.)
== CMD_HELP_TRIGGER_EDIT ==
Remarks:
Web triggers: A web trigger is created by typing "^webtrigger <target-uri>"
as the trigger command. In this case, the trigger will execute a POST query
against the specified URI, where the request body contains a JSON
dictionary with the trigger environment variables, and a fixed INPUT key
pointing to an array of strings.
Examples:
cm ^trigger ^edit ^after-setselector 6 --^name="Backup2 manager" --^script="/new/path/al/script"
cm ^tr ^edit ^before-mklabel 7 --^position=4 --^server=myserver:8084
cm ^trigger ^edit ^after-add 2 --^script="^webtrigger http://myserver.org/api"
== CMD_DESCRIPTION_CODEREVIEW ==
Creates, edits, or deletes code reviews.
== CMD_USAGE_CODEREVIEW ==
Usage:
cm ^codereview <spec> <title> [--^status=<status_name>]
[--^assignee=<user_name>] [--^format=<str_format>]
[--^repository=<rep_spec>]
(Creates a code review.)
cm ^codereview -^e <id> [--^status=<status_name>] [--^assignee=<user_name>]
[--^repository=<rep_spec>]
(Edits a code review.)
cm ^codereview -^d <id> [ ...] [--^repository=<rep_spec>]
(Deletes one or more code reviews.)
spec It can be either a changeset spec or a branch spec. It
will be the target of the new code review. (Use
'cm ^help ^objectspec' to learn more about changeset or
branch specs.)
title A text string to be used as title of the new
code review.
id The code review identification number. A GUID can be
used as well.
Options:
-^e Edits the parameters of an existing code review.
-^d Deletes one or more existing code reviews. Use a
whitespace to separate the code reviews IDs.
--^status Sets the new status of a code review. See Remarks
for additional information.
--^assignee Sets the new assignee of a code review.
--^format Retrieves the output message in a specific format. See
Remarks for additional information.
--^repository Sets the repository to be used as default. (Use
'cm ^help ^objectspec' to learn more about repository
specs.)
== CMD_HELP_CODEREVIEW ==
Remarks:
This command allows users to manage code reviews: create, edit, and delete
code reviews for changesets or branches.
To create a new code review, a changeset/branch spec and a title are
required. The initial status and assignee can be set, too. An ID (or GUID
if requested) will be returned as a result.
To edit or delete an existing code review, the target code review ID
(or GUID) is required. No messages are displayed if there are no errors.
The status parameter can only be one of the following: ^"Under review"
(default), ^"Reviewed", or ^"Rework required".
The repository parameter is available to set the default working
repository. This is useful when the user wants to manage reviews on
a server different than the one associated to the current workspace, or
when there is no current workspace at all.
Output format customization:
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} id
{1} guid
Please note that the '--^format' parameter only takes effect when creating
a new code review.
Examples:
cm ^codereview ^cs:1856@myrepo@myserver:8084 "My code review" --^assignee=dummy
cm ^codereview ^br:/main/task001@myrepo@myserver:8084 "My code review" \
--^status=^"Rework required" --^assignee=newbie --^format="{^id} -> {^guid}"
cm ^codereview 1367 -^e --^assignee=new_assignee
cm ^codereview -^e 27658884-5dcc-49b7-b0ef-a5760ae740a3 --^status=Reviewed
cm ^codereview -^d 1367 --^repository=myremoterepo@myremoteserver:18084
cm ^codereview 27658884-5dcc-49b7-b0ef-a5760ae740a3 -^d
== CMD_DESCRIPTION_CRYPT ==
Encrypts a password.
== CMD_USAGE_CRYPT ==
Usage:
cm ^crypt <mypassword>
mypassword Password to be encrypted.
== CMD_HELP_CRYPT ==
Remarks:
This command encrypts a given password passed as argument.
It is designed to encrypt passwords in configuration files and increase
safety.
Examples:
cm ^crypt dbconfpassword -> ENCRYPTED: encrypteddbconfpassword
(Encrypts the password in the database configuration file: 'db.conf'.)
== CMD_DESCRIPTION_DEACTIVATEUSER ==
Deactivates a licensed user.
== CMD_USAGE_DEACTIVATEUSER ==
Usage:
cm ^deactivateuser | ^du <usr_name>[ ...] [--^server=<name:port>]
[--^nosolveuser]
usr_name The user name(s) to deactivate. Use a whitespace to
separate user names.
If SID, then '--^nosolveuser' is required.
Options:
--^server Deactivates the user on the specified server.
If no server is specified, executes the command on the
one configured on the client.
--^nosolveuser With this option, the command will not check whether
the user name exists on the authentication system. The
<usr_name> must be a user SID.
== CMD_HELP_DEACTIVATEUSER ==
Remarks:
This command sets a user to inactive, disabling the usage of Plastic SCM
for that user.
See the 'cm ^activateuser' command for more information about activating
Plastic SCM users.
This command checks whether the user exists on the underlying authentication
system (e.g. ActiveDirectory, LDAP, User/Password...).
To force the deactivation of a user that no longer exists on the
authentication system, you can use the '--^nosolveuser' option.
Examples:
cm ^deactivateuser john
cm ^du peter "mary collins"
cm ^deactivateuser john --^server=myserver:8084
cm ^deactivateuser S-1-5-21-3631250224-3045023395-1892523819-1107 --^nosolveuser
== CMD_DESCRIPTION_DIFF ==
Shows differences between files, changesets, and labels.
== CMD_USAGE_DIFF ==
Usage:
cm ^diff <csetspec> | <lbspec> | <shspec> [<csetspec> | <lbspec> | <shspec>]
[<path>]
[--^added] [--^changed] [--^moved] [--^deleted]
[--^repositorypaths] [--^download=<download_path>]
[--^encoding=<name>]
[--^ignore=(^eol | ^whitespaces | ^"eol&whitespaces" | ^none)]
[--^clean]
[--^format=<str_format>] [--^dateformat=<str_format>]
Shows differences between a 'source' changeset or shelveset, and a
'destination' changeset or shelveset. The changesets can be specified
using either a changeset or label specification.
Where two specifications are given, the first will be the 'source' of
the diff; the second, the 'destination'.
If only one specification is given, the 'source' will be the parent
changeset of the specified 'destination'.
If an optional path is specified, the Diff Window will launch to show
differences between the two revision of that file.
cm ^diff <revspec1> <revspec2>
Shows differences between a pair of revisions. The differences are
shown in the Diff Window. The first revision specified will appear on
the left.
cm ^diff <brspec> [--^added] [--^changed] [--^moved] [--^deleted]
[--^repositorypaths] [--^download=<download_path>]
[--^encoding=<name>]
[--^ignore=(^eol | ^whitespaces | ^"eol&whitespaces" | ^none)]
[--^clean]
[--^format=<str_format>] [--^dateformat=<str_format>]
[--^fullpaths | --^fp]
Shows the branch differences.
(Use 'cm ^help ^objectspec' to learn more about specs.)
Options:
--^added Prints only differences consisting of items added to
the repository.
--^changed Prints only differences consisting of items that
changed.
--^moved Prints only differences consisting of moved or renamed
items.
--^deleted Prints only differences consisting of items that were
deleted.
If '--^added', '--^changed', '--^moved' or '--^deleted' are
not specified, then the command prints all differences.
'^A' means added items.
'^C' means changed items.
'^D' means deleted items.
'^M' means moved items. The left item is the original,
the right is the destination.
--^repositorypaths Prints repository paths instead of workspace paths.
(This option overrides the '--^fullpaths' option.)
--^download Stores the differences content in the specified output
path.
--^encoding Specifies the output encoding, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^ignore Sets the specified comparison method.
See Remarks for more info.
--^clean Does not take into account the differences generated
because of a merge, but only the differences created by
simple checkins.
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^dateformat Format used to output dates.
--^fullpaths, --^fp Forces printing full workspace paths for files and
directories when possible.
== CMD_HELP_DIFF ==
Remarks:
Comparison methods:
^eol Ignores the end of line differences.
^whitespaces Ignores the whitespace differences.
^"eol&whitespaces" Ignores the end of line and whitespace differences.
^none Detects the end of line and whitespace differences.
This command accepts a format string to show the output.
The parameters of this command are the following:
{^path} Item path.
{^date} Change date/time.
{^owner} Change author.
{^revid} Revision id of the revision considered as the
destination in the diff.
{^parentrevid} Revision id of the parent of the revision considered
as the destination of the diff.
{^baserevid} Revision id of the revision considered as the source
in the diff.
{^srccmpath} Server path before moving the item (move operation).
{^dstcmpath} Server path after moving the item (move operation).
{^type} Item type:
^D directory,
^B binary file,
^F text file,
^S symlink,
^X Xlink.
{^repository} Repository of the item.
{^status} Item status:
^A added,
^D deleted,
^M moved,
^C changed.
{^fsprotection} Shows item permissions (Linux/Mac chmod).
{^srcfsprotection} Shows parent revision item permissions.
{^newline} Inserts a new line.
Notes on '^revid':
For added items, the '^baserevid' and '^parentrevid' will be -1, as no
previous revision exists in this case.
For deleted items, the '^revid' is the id of the source revision, and the
'^baserevid' will be -1, as there is no destination revision.
For Xlinks, both '^baserevid' and '^parentrevid' are always -1.
Examples:
Comparing branches:
cm ^diff ^br:/main/task001
cm ^diff ^br:/main/task001 \doc\readme.txt
Comparing changeset trees:
cm ^diff 19
cm ^diff 19 25
cm ^diff ^cs:19 ^cs:25 --^format="{^path} {^parentrevid}"
cm ^diff ^cs:19 ^cs:23 --^format="{^date} {^path}" --^dateformat="yy/dd/MM HH:mm:ss"
cm ^diff ^cs:19 ^cs:23 --^changed
cm ^diff ^cs:19 ^cs:23 --^repositorypaths
cm ^diff ^cs:19 ^cs:23 --^download="D:\temp"
cm ^diff ^cs:19 ^cs:23 --^clean
cm ^diff ^cs:19 ^cs:23 \doc\readme.txt
Comparing label trees:
cm ^diff ^lb:FirstReleaseLabel ^lb:SecondReleaseLabel
cm ^diff ^lb:tag_193.2 ^cs:34214
cm ^diff ^cs:31492 ^lb:tag_193.2
Comparing shelve trees:
cm ^diff ^sh:2
cm ^diff ^sh:2 ^sh:4
Comparing revspecs:
cm ^diff ^rev:readme.txt#^cs:19 ^rev:readme.txt#^cs:20
cm ^diff ^serverpath:/doc/readme.txt#^cs:19@myrepo \
^serverpath:/doc/readme.txt#^br:/main@myrepo@localhost:8084
== CMD_DESCRIPTION_DIFFMETRICS ==
Shows diff metrics between two revs.
== CMD_USAGE_DIFFMETRICS ==
Usage:
cm ^diffmetrics | ^dm <revspec1> <revspec2> [--^format=<str_format>]
[--^encoding=<name>]
[--^ignore=(^eol | ^whitespaces | ^"eol&whitespaces" | ^none)]
revspec Revisions used to compare.
(Use 'cm ^help ^objectspec' to learn more about rev specs.)
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^encoding Specifies the output encoding, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^ignore Sets the specified comparison method.
See Remarks for more info.
== CMD_HELP_DIFFMETRICS ==
Remarks:
The metrics are: number of changed, added, and deleted lines.
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} Number of changed lines.
{1} Number of added lines.
{2} Number of deleted lines.
Examples:
cm ^diffmetrics file.txt#^cs:2 file.txt#^br:/main/scm0211 \
--^format="There are {0} changed, {1} added and {2} deleted lines."
(Retrieves diffmetrics results formatted.)
cm ^dm file.txt#^cs:2 file.txt#^cs:3 --^encoding=utf-8 --^ignore=^whitespaces
== CMD_DESCRIPTION_FASTEXPORT ==
Exports a repository in fast-export format.
== CMD_USAGE_FASTEXPORT ==
Usage:
cm ^fast-export | ^fe <repspec> <fast-export-file>
[--^import-marks=<marks_file>]
[--^export-marks=<marks_file>]
[--^branchseparator=<chr_separator>]
[--^nodata] [--^from=<changesetid>] [--^to=<changesetid>]
Options:
repspec The repository which the data will be exported from.
(Use 'cm ^help ^objectspec' to learn more about rep specs.)
fast-export-file The file with the repository data in Git fast-export
format.
--^import-marks The marks file used for incremental imports. This file
has been previously exported by '--^export-marks'. The
changesets described in this file will not be imported
because they were already in a previous import.
--^export-marks The file where the imported changesets will be saved.
This file is used in a later fast-import to signal the
changesets that have been already imported.
--^branchseparator Plastic SCM uses "/" as default separator in the branch
hierarchy. This option allows using char as a hierarchy
separator, so main-task-sub would be mapped in Plastic
SCM as /main/task/sub.
--^nodata Exports the repository without including the data. This
is useful to check if the export will run correctly.
--^from Exports from a particular changeset.
--^to Exports to a particular changeset.
== CMD_HELP_FASTEXPORT ==
Remarks:
- In order to import a Plastic SCM repository to Git, use a command such as:
^cat repo.fe.00 | ^git ^fast-import --^export-marks=marks.git --^import-marks=marks.git
- Incremental export is supported using a marks file that contains the
changesets previously imported ('--^import-marks' and '--^export-marks'
files).
This means that only the new changesets that were not exported in the
previous fast-export will be exported.
Examples:
cm ^fast-export repo@localhost:8087 repo.fe.00 --^import-marks=marks.cm \
--^export-marks=marks.cm
(Exports the repository 'repo' in the local server into the 'repo.fe.00'
file in Git fast-export format and creates the marks files to perform
incremental exports later.)
cm ^fast-export repo@localhost:8087 repo.fe.00 --^from=20
(Exports the repository 'repo' in the local server into the 'repo.fe.00'
file in Git fast-export format from changeset '20'.)
== CMD_DESCRIPTION_FASTIMPORT ==
Imports Git fast-export data into a repository.
== CMD_USAGE_FASTIMPORT ==
Usage:
cm ^fast-import | ^fi <repspec> <fast-export-file>
[--^import-marks=<marks_file>]
[--^export-marks=<marks_file>]
[--^stats] [--^branchseparator=<chr_separator>]
[--^nodata] [--^ignoremissingchangesets] [--^mastertomain]
Options:
repspec The repository into which the data will be
imported. It is created if it did not previously
exist. (Use 'cm ^help ^objectspec' to learn more
about rep specs.)
fast-export-file The file with the repository data in Git
fast-export format.
--^import-marks The marks file used for incremental imports.
This file has been previously exported by
'--^export-marks'. The changesets described in
this file wont be imported because they
were already in a previous import.
--^export-marks The file where the imported changesets will
be saved. This file is used in a later
fast-import to signal the changesets that have
been already imported.
--^stats Prints some statistics about the import process.
--^branchseparator Plastic SCM uses "/" as default separator in
the branch hierarchy. This option allows using
char as a hierarchy separator, so main-task-sub
would be mapped in Plastic SCM as /main/task/sub.
--^nodata Imports Git fast-export without including the
data. This is useful to check if the import will
run correctly.
--^ignoremissingchangesets Any changesets that cannot be imported are
discarded and the fast-import operation
continues without them.
--^mastertomain Imports using "^main" instead of "^master".
== CMD_HELP_FASTIMPORT ==
Remarks:
- In order to export a git repository, use a command such as:
^git ^fast-export --^all -^M --^signed-tags=^strip --^tag-of-filtered-object=^drop> ..\git-fast-export.dat
The -^M option is important to detect moved items.
- The specified repository is created in case it did not exist.
- Incremental import is supported using a marks file that contains the
changesets previously imported ('--^import-marks' and '--^export-marks'
files).
This means that only the new changesets that were not imported in the
previous fast-import will be imported.
Examples:
cm ^fast-import mynewrepo@atenea:8084 repo.fast-export
(Imports the contents exported in the 'repo.fast-export' file into
'mynewrepo' repository on server 'atenea:8084'.)
cm ^fast-import repo@atenea:8084 repo.fast-export --^export-marks=rep.marks
(Imports the contents exported in the 'repo.fast-export' file into
'repo' repository on server 'atenea:8084' and creates a marks file
to perform incremental imports later.)
cm ^fast-import repo@server:8084 repo.fast-export --^import-marks=repo.marks \
--^export-marks=repo.marks
(Imports the contents of the 'repo.fast-export' file. Only the new
changesets that were not in the marks file are imported. The same marks
file is used to save the list of changesets again for the next
incremental import.)
== CMD_DESCRIPTION_FILEINFO ==
Retrieves detailed information about the items in the workspace.
== CMD_USAGE_FILEINFO ==
Usage:
cm ^fileinfo <item_path>[ ...] [--^fields=<field_value>[,...]]
[[--^xml | -^x [=<output_file>]] | [--^format=<str_format>]]
[--^symlink] [--^encoding=<name>]
item_path Items to display. Use a whitespace to separate the
items.
Use double quotes (" ") to specify paths containing
spaces.
Options:
--^fields A string of comma-separated values. This selects which
fields will be printed for each item. See Remarks for
more information.
--^xml | -^x Prints the output in XML format to the standard output.
It is possible to specify an output file. This option
cannot be combined with '--^format'.
--^format Retrieves the output message in a specific format. See
Remarks for more info. This option cannot be combined
with '--^xml'.
This '--^format' option prevails over '--^fields' if both
are specified.
--^symlink Applies the fileinfo operation to the symlink and not
to the target.
--^encoding Specifies the output encoding, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
== CMD_HELP_FILEINFO ==
Remarks:
This command prints a detailed list of attributes for each selected item.
Each attribute is printed on a new line by default.
The attribute list can be modified to display only the attributes the user
needs. This can be achieved using the '--^fields=<field_list>', which accepts
a string of comma-separated attribute names. This way, only those arguments
whose name has been indicated are shown.
Revision head changeset:
This option is disabled by default. Please note that retrieving this
attribute is significantly slower than the rest of them, so we advise users
to group together as many items as possible. This will improve execution
times by avoiding many separate 'cm ^fileinfo' executions.
Also, this feature is not currently available for controlled directories.
You can find below the complete list of available attribute names.
Names marked with an asterisk ('*') will not be shown by default:
^ClientPath The local path on disk for the item.
^RelativePath The workspace-relative path.
^ServerPath The repository path for the item.
(Note: Transformed workspaces are not
currently supported for this option).
^Size Item size.
^Hash Item hash sum.
^Owner The user the item belongs to.
^RevisionHeadChangeset (*) The changeset of the revision loaded in the
head changeset of the branch.
(Please see note above.)
^RevisionChangeset The changeset of the revision currently loaded
in the workspace.
^RepSpec The repository specification for the item.
(Use 'cm ^help ^objectspec' to learn more about
rep specs.)
^Status The workspace item status: added, checked out,
deleted, etc.
^Type Revision type (text, binary, directory, symlink,
or unknown).
^Changelist The changelist the item belongs to (if any).
^IsLocked (*) Whether the item is locked by exclusive
checkout or not.
^LockedBy (*) The user who exclusively checked out the item.
^LockedWhere (*) The location where the item was exclusively
checked out.
^IsUnderXlink Whether the item is located under an Xlink
or not.
^UnderXlinkTarget The target of the Xlink the item is under
(if any).
^UnderXlinkPath The item server path in the Xlinked repository
(if any).
^UnderXlinkWritable Whether the Xlink the item belongs to is
writable or not.
^UnderXlinkRelative Whether the Xlink the items belongs to is
relative or not.
^IsXlink Whether the item itself is a Xlink or not.
^XlinkTarget The target repository the item points to, if it
is a Xlink.
^XlinkName The Xlink name of the item, if it is
actually one.
^XlinkWritable Whether the Xlink item is a writable Xlink
or not.
^XlinkRelative Whether the Xlink item is a relative Xlink
or not.
Output format customization:
This command accepts a format string to show the output.
The output parameters of this command are the following:
{^ClientPath}
{^RelativePath}
{^ServerPath}
{^Size}
{^Hash}
{^Owner}
{^RevisionHeadChangeset}
{^RevisionChangeset}
{^Status}
{^Type}
{^Changelist}
{^IsLocked}
{^LockedBy}
{^LockedWhere}
{^IsUnderXlink}
{^UnderXlinkTarget}
{^UnderXlinkPath}
{^UnderXlinkWritable}
{^UnderXlinkRelative}
{^IsXlink}
{^XlinkTarget}
{^XlinkName}
{^XlinkWritable}
{^XlinkRelative}
{^RepSpec}
Please note that '--^format' and '--^xml' options are mutually exclusive, so
they can't be used at the same time.
Examples:
cm ^fileinfo file1.txt file2.txt dir/
cm ^fileinfo "New Project.csproj" --^xml
cm ^fileinfo assets.art --^fields=^ServerPath,^Size,^IsLocked,^LockedBy
cm ^fileinfo proj_specs.docx --^fields=^ServerPath,^RevisionChangeset --^xml
cm ^fileinfo samples.ogg --^format="{^ServerPath}[{^Owner}] -> {^Size}"
== CMD_DESCRIPTION_FIND_QUERY ==
Runs SQL-like queries to find Plastic SCM objects.
== CMD_USAGE_FIND_QUERY ==
Usage:
cm ^find <object_type>
[^where <str_conditions>]
[^on ^repository '<repspec>' | ^on ^repositories '<repspec1>','<repspec2>'[,...]]
[--^format=<str_format>] [--^dateformat=<date_format>]
[--^nototal] [--^file=<dump_file>] [--^xml]
[--^encoding=<name>]
object_type Object type to find.
Use 'cm ^help ^showfindobjects' to learn how to specify
these objects.
You can also read the 'cm ^find' guide:
https://www.plasticscm.com/download/help/cmfind
Options:
str_conditions Searches conditions on an object attributes.
repspec Searches repositories alias or specification.
In the case of '^on ^repositories', use a comma to
separate the repspec fields.
(Use 'cm ^help ^objectspec' to learn more about repository
specifications.)
--^format Retrieves the output message in a specific format.
Read the 'cm ^find' guide to see all the object
attributes that can be used as output format strings:
https://www.plasticscm.com/download/help/cmfind
--^dateformat Format used to output dates.
--^nototal Does not output record count at the end.
--^file File to dump results.
--^xml Prints the output in XML format to the standard output.
--^encoding Specifies the output encoding, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
== CMD_HELP_FIND_QUERY ==
Remarks:
If no repository is specified, the search is made on the repository
configured in the workspace.
When you run queries using comparison operators (>, <, >=, <=) from the
command line, remember that the shell considers these operators as IO
redirections. So you will need to enclose the queries in double quotation
marks.
The 'cm ^find' command accepts a format string to show the output.
Each output parameter is identified by a string and the user can refer it
by typing the parameter number between '{' and '}' brackets.
Output parameters usually correspond to the attributes of the object.
These are some valid output format strings:
--^format={^id}{^date}{^name}
--^format="{^item}#{^branch} ^with ^date {^date}"
XML and encoding considerations:
When the '--^xml' option is specified, the command shows the command result
as an XML text in the standard output. The operating system default encoding
is used to show the text, so it is possible that not-ANSI characters are
incorrectly visualized in the console. If you redirect the command output to
a file, it will be correctly visualized. When both '--^xml' and '--^file'
options are specified, the default encoding will be utf-8.
Examples:
cm ^find ^revision
cm ^find ^revision "^where ^changeset=23 ^and ^owner='maria'"
cm ^find ^branch "^on ^repository 'rep1'"
cm ^find ^label "^on ^repositories 'rep1', '^rep:default@localhost:8084'"
cm ^find ^branch "^where ^parent='^br:/main' ^on ^repository 'rep1'"
cm ^find ^revision "^where ^item='^item:.'" --^format="{^item}#{^branch}"
cm ^find ^revision "^where ^item='^item:.'" --^xml --^file=c:\queryresults\revs.xml
== CMD_DESCRIPTION_FINDCHANGED ==
Gets a list of changed files. This command is deprecated and kept just for
backwards compatibility. Use 'cm ^status' instead.
== CMD_USAGE_FINDCHANGED ==
Usage:
cm ^findchanged | ^fc [-^R | -^r | --^recursive] [--^checkcontent]
[--^onlychanged] [<path>]
Options:
-^R Recursively finds in directories.
--^checkcontent Compares files by content.
--^onlychanged Finds only changed files; checkouts will not be
obtained.
path (Default: current directory.)
Initial path to find changed files.
== CMD_HELP_FINDCHANGED ==
Remarks:
If no '--^checkcontent' option is given, Plastic finds changes based on the
file timestamp. When '--^checkcontent' option is specified, the file or
folder contents are compared, instead of using the timestamp.
This command is useful to detect changed files while disconnected from
the Plastic SCM server. The output can be piped to the checkout command,
to check the changes later (see examples).
Examples:
cm ^findchanged .
(Finds changed files in the current directory.)
cm ^findchanged -^R . | cm ^checkout -
(Checkouts changed elements.)
== CMD_DESCRIPTION_FINDCHECKEDOUT ==
Gets a list of checked out items. This command is deprecated and kept just for
backwards compatibility. Use 'cm ^status' instead.
== CMD_USAGE_FINDCHECKEDOUT ==
Usage:
cm ^findcheckouts | ^fco [--^format=<str_format>] [--^basepath]
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^basepath The path to start searching checkouts from. If not
specified, the current path is used.
== CMD_HELP_FINDCHECKEDOUT ==
Remarks:
This command is useful to checkin or undocheckout all checked out items in
one single step, redirecting the standard output to other command.
See examples.
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} Date.
{1} Owner.
{2} Workspace info.
{3} Client machine name.
{4} Item path.
{5} Branch and repository info.
Examples:
cm ^findcheckouts --^format="File {4} changed on branch {5}"
(Finds checked out items and formats the output with file path and branch
and repository info.)
cm ^findcheckouts --^format={4} | cm ^checkin -
(Checkins all checked out items.)
cm ^findcheckouts --^format={4} | cm ^undocheckout -
(Undocheckouts of all checked out items.)
== CMD_DESCRIPTION_FINDPRIVATE ==
Gets a list of private items. This command is deprecated and kept just for
backwards compatibility. Use 'cm ^status' instead.
== CMD_USAGE_FINDPRIVATE ==
Usage:
cm ^findprivate | ^fp [-^R | -^r | --^recursive] [--^exclusions] [<path>]
Options:
-^R Recursively finds in directories.
--^exclusions This option allows cutting the search inside the ignored
paths, defined by the file ignore.conf.
path (Default: current directory.)
Initial path to find private files.
== CMD_HELP_FINDPRIVATE ==
Remarks:
If any path is specified, Plastic SCM will begin searching from the
current directory.
This command is useful to add private items on a folder, piping the output
to the add command. See examples.
Examples:
cm ^findprivate .
cm ^findprivate -^R | cm ^add -
(Recursively searches private items and add them.)
== CMD_DESCRIPTION_GETCONFIG ==
Obtains configuration info.
== CMD_USAGE_GETCONFIG ==
Usage:
cm ^getconfig [^setfileasreadonly] [^location] [^extensionworkingmode]
[^extensionprefix] [^defaultrepserver]
^setfileasreadonly Returns whether the protected files are left as
read-only or not.
^location Returns the client config path.
^extensionworkingmode Returns the extension working mode.
^extensionprefix Returns the configured extension prefix.
^defaultrepserver Returns the location of the default repository
server.
== CMD_HELP_GETCONFIG ==
Examples:
cm ^getconfig ^setfileasreadonly
== CMD_DESCRIPTION_GETFILE ==
Downloads the content of a given revision.
== CMD_USAGE_GETFILE ==
Usage:
cm ^getfile | ^cat <revspec> [--^file=<output_file>] [--^debug]
[--^symlink] [--^raw]
revspec Object specification. (Use 'cm ^help ^objectspec' to learn
more about specs.)
Options:
--^file File to save the output. By default, it is printed on the
standard output.
--^debug When a directory specification is used, the command
shows all the items in the directory, its revision id
and file system protection.
--^symlink Applies the operation to the symlink and not to the
target.
--^raw Displays the raw data of the file.
== CMD_HELP_GETFILE ==
Examples:
cm ^cat myfile.txt#^br:/main
(Obtains the last revision in branch '^br:/main' of 'myfile.txt'.)
cm ^getfile myfile.txt#^cs:3 --^file=tmp.txt
(Obtains the changeset 3 of 'myfile.txt' and write it to file 'tmp.txt'.)
cm ^cat ^serverpath:/src/foo.c#^br:/main/task003@myrepo
(Obtains the contents of '/src/foo.c' at the last changeset of branch
'/main/task003' in repository 'myrepo')
cm ^cat ^revid:1230@^rep:myrep@^repserver:myserver:8084
(Obtains the revision with id 1230.)
cm ^getfile ^rev:info\ --^debug
(Obtains all revisions in the 'info' directory.)
== CMD_DESCRIPTION_GETREVISION ==
Loads a revision in the workspace.
== CMD_USAGE_GETREVISION ==
This command modifies the revision loaded in the workspace, so it can affect
future merges.
It is an advanced command inherited from old versions, so use it with care.
Usage:
cm ^getrevision <revspec>
revspec Object specification. (Use 'cm ^help ^objectspec' to learn
more about rev specs.)
== CMD_HELP_GETREVISION ==
Examples:
cm ^getrevision file.txt#^cs:3
(Gets changeset 3 revision of 'file.txt'.)
== CMD_DESCRIPTION_GETSTATUS ==
Gets the status of an item.
== CMD_USAGE_GETSTATUS ==
This is an automation command, meant to be used to automate 'cm' only.
It is not as user friendly as it should be.
Usage:
cm ^getstatus | ^gs <item_path>[ ...] [--^format=<str_format>] [--^stats]
[-^R | -^r | --^recursive]
item_path Item or items to get status from. Use double quotes
(" ") to specify paths containing spaces. Use a
whitespace to separate paths.
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^stats Prints some statistics about the get status process.
-^R Shows recursively the status in directories.
== CMD_HELP_GETSTATUS ==
Remarks:
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} Item path.
{1} Item status:
0 private,
1 checked in,
2 checked out.
Reading input from stdin:
The '^getstatus' command can read paths from stdin. To do this, pass a
single dash "-".
Example: cm ^getstatus -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify which paths to get the status for.
Example:
dir /S /B *.c | cm ^getstatus --^format="Path {0} Status {1}" -
(In Windows, gets the status of all .c files in the workspace.)
Examples:
cm ^getstatus file1.txt file2.txt
(Gets the status of the files.)
cm ^gs info\ -^R --^format="The item {0} has the status {1}"
(Gets the status of the directory and all of its items and shows a
formatted output.)
== CMD_DESCRIPTION_GETTASKBRANCHES ==
Gets branches linked with a task.
== CMD_USAGE_GETTASKBRANCHES ==
This is an automation command, meant to be used to automate 'cm' only.
It is not as user friendly as it should be.
Usage:
cm ^gettaskbranches | ^gtb <task_name> [--^format=<str_format>]
[--^dateformat=<date_format>]
task_name The task identifier.
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^dateformat Format used to output dates.
== CMD_HELP_GETTASKBRANCHES ==
Remarks:
This command accepts a format string to show the output.
The output parameters of this command are the following:
{^tab} Inserts a tab space.
{^newline} Inserts a new line.
{^name} Branch name.
{^owner} Owner of the branch.
{^date} Date when the branch was created.
{^type} Branch type ('T' if it is smart or 'F' if not).
{^parent} Parent branch.
{^comment} Comment of the branch.
{^repname} Repository where the branch exists.
{^repserver} Server name.
Examples:
cm ^gettaskbranches 4311
cm ^gtb 4311 --^format="^br:{^name}"
cm ^gtb 4311 --^format="^br:{^name} {^date}" --^dateformat="yyyy/MM/dd HH:mm:ss"
== CMD_DESCRIPTION_GETWWI ==
Shows info about the workspace selector.
== CMD_USAGE_GETWWI ==
Usage:
cm ^wi [<wk_path>]
Options:
wk_path Path of a workspace on the machine.
== CMD_HELP_GETWWI ==
Remarks:
The '^wi' command shows the working configuration of a workspace (repository,
branch, and/or label).
Examples:
cm ^wi c:\mywk
== CMD_DESCRIPTION_GWP ==
Gets workspace info from a path.
== CMD_USAGE_GWP ==
This is an automation command, meant to be used to automate 'cm' only.
It is not as user friendly as it should be.
Usage:
cm ^getworkspacefrompath | ^gwp <item_path> [--^format=<str_format>]
item_path File or folder on disk.
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
== CMD_HELP_GWP ==
Remarks:
This command shows information about the workspace that is located in path.
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} | {^wkname} Workspace name.
{1} | {^wkpath} Workspace path.
{2} | {^machine} Client machine name.
{3} | {^owner} Workspace owner.
{4} | {^guid} Workspace GUID.
{^tab} Inserts a tab space.
{^newline} Inserts a new line.
Examples:
cm ^gwp c:\myworkspace\code\file1.cpp --^format="Workspace name: {^wkname}"
== CMD_DESCRIPTION_HELP ==
Gets help for a Plastic SCM command.
== CMD_USAGE_HELP ==
Usage:
cm ^help <command>
== CMD_HELP_HELP ==
== CMD_DESCRIPTION_IOSTATS ==
Shows statistics about the hardware.
== CMD_USAGE_IOSTATS ==
Usage:
cm ^iostats [<repserverspec>] [<list_of_tests>[ ...]]
[--^nettotalmb=<value_mb>] [--^networkiterations=<value_iter>]
[--^diskdatasize=<value_size>] [--^disktestpath=<value_path>]
[--^systemdisplaytime=<value_time>]
[--^systemdisplaytimeinterval=<value_interval>]
Options:
repserverspec An available Plastic SCM server to perform
the network tests, such as "serverUploadTest"
and/ or "serverDownloadTest".
If no server is provided, the command tries
to communicate with the server configured by
default.
(Use 'cm ^help ^objectspec' to learn more about
server specs.)
list_of_tests Available tests. Use a whitespace to separate
test fields.
See Remarks for more info.
--^nettotalmb Indicates the amount of user data (in
MegaBytes) transmitted on a network test,
such as "^serverDownloadTest" or
"^serverUploadTest".
It must be a value between "4" and "512".
(Default: 16)
--^networkiterations Indicates the number of iterations of
"^serverDownloadTest" and/or "^serverUploadTest"
that will be run.
It must be a value between "1" and "100".
(Default: 1)
--^diskdatasize Indicates the amount of data (in MegaBytes)
that will be written and then read on the
"^diskTest".
It must be a value between "100" and "4096".
(Default: 512)
--^disktestpath Path where the "^diskTest" writes the test
files. If this parameter is not provided,
the command will try to use the system temp
path.
--^systemdisplaytime Time interval (in seconds) showing the usage
of system resources. This option is available
for the following tests: "^systemNetworkUsage"
and "^systemDiskUsage".
It must be a value between "1" and "3600".
(Default: 5 seconds).
--^systemdisplaytimeinterval Time interval (in seconds) between the
system performance samples. This option is
available for the following tests:
"^systemNetworkUsage" and "^systemDiskUsage".
It must be a value between "1" and "60".
(Default: 1 second).
== CMD_HELP_IOSTATS ==
Remarks:
This command requires an available server be used during the network
speed tests ("^serverUploadTest" and/or "^serverDownloadTest").
The '--^diskTestPath' must point to a path that belongs to the physical
disk drive about to be tested. If no path is specified, the command tries
to use the system default temp path.
The disk drive of the specified path must have enough free space to execute
the test.
During the command execution, the system can experience a degraded
performance caused by the tests performed.
Available tests:
--^serveruploadtest (Default) Measures the data upload speed from
Plastic SCM client to the server.
--^serverdownloadtest (Default) Measures the data download speed from
Plastic SCM server to the client.
--^disktest (Default) Measures the disk read speed and disk
write speed.
--^systemnetworkusage Shows the current usage of system network
resources.
(It shows Network Interface performance counters
provided by Microsoft Windows).
Available in Microsoft Windows only.
--^systemdiskusage Shows the current usage of system physical
disks.
(It shows Network Interface performance counters
provided by Microsoft Windows).
Available in Microsoft Windows only.
Examples:
cm ^iostats MYSERVER:8087 --^serveruploadtest --^serverdownloadtest --^nettotalmb=32
== CMD_DESCRIPTION_ISSUETRACKER ==
Gets, updates, or finds the issue status in the specified issue tracker.
== CMD_USAGE_ISSUETRACKER ==
Usage:
cm ^issuetracker <name> ^status ^get <task_id> <parameter>[ ...]
cm ^issuetracker <name> ^status ^update <task_id> <status> <parameter>[ ...]
cm ^issuetracker <name> ^status ^find <status> <parameter>[ ...]
cm ^issuetracker <name> ^connection ^check <parameter>[ ...]
name Name of the issue tracker to connect with.
Only Jira is supported at the moment.
task_id Number of the issue to query or update.
^status A valid status for an issue in the issue tracker.
Jira parameters (all are mandatory):
--^user=<user> The user to authenticate.
--^password=<password> The password to authenticate.
--^host=<url> The target url of the issue tracker.
--^projectkey=<key> The project key of Jira project.
== CMD_HELP_ISSUETRACKER ==
Examples:
cm ^issuetracker jira ^status ^get 11 --^user=user@mail.es --^password=pwd \
--^host=https://user.atlassian.net --^projectkey=PRJ
(Gets the status of the issue 11 for the 'PRJ' project.)
cm ^issuetracker jira ^status ^update 11 "Done" --^user=user@mail.es \
--^password=pwd --^host=https://user.atlassian.net --^projectkey=PRJ
(Updates the status to 'Done' of the issue 11 for the 'PRJ' project.)
cm ^issuetracker jira ^status ^find "Done" --^user=user@mail.es --^password=pwd \
--^host=https://user.atlassian.net --^projectkey=PRJ
(Gets the task ids whose status is set to 'Done' for the 'PRJ' project-)
cm ^issuetracker jira ^connection ^check --^user=user@mail.es --^password=pwd \
--^host=https://user.atlassian.net --^projectkey=PRJ
(Checks whether the configuration parameters are valid or not.)
== CMD_DESCRIPTION_LICENSEINFO ==
Displays license information and license usage.
== CMD_USAGE_LICENSEINFO ==
Usage:
cm ^licenseinfo | ^li [--^server=<repserverspec>] [--^inactive] [--^active]
[--^sort=(^name|^status)]
Options:
--^server Gets the license info from the specified server.
If no server is specified, executes the command on the
one configured on the client.
(Use 'cm ^help ^objectspec' to learn more about repserver
specs.)
--^inactive Shows only inactive users in the "license usage" section.
--^active Shows only active users in the "license usage" section.
--^sort Sorts users by one of the specified sort options:
'^name' or '^status'.
== CMD_HELP_LICENSEINFO ==
Remarks:
The information displayed consists of expiration date, activated and
deactivated users, etc.
Examples:
cm ^licenseinfo
cm ^licenseinfo --^server=myserver:8084
cm ^licenseinfo --^sort=^name
== CMD_DESCRIPTION_LINKTASK ==
Links a changeset to a task.
== CMD_USAGE_LINKTASK ==
This is an automation command, meant to be used to automate 'cm' only.
It is not as user friendly as it should be.
Usage:
cm ^linktask | ^lt <csetspec> <ext_prefix> <task_name>
csetspec The full changeset specification to link to a task.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
ext_prefix The extension prefix of the configured issue tracking
system to work with.
task_name The task identifier on the issue tracking system.
== CMD_HELP_LINKTASK ==
Examples:
cm ^lt ^cs:8@^rep:default@^repserver:localhost:8084 jira PRJ-1
== CMD_DESCRIPTION_LOCK_LIST ==
Shows locks on a server.
== CMD_USAGE_LOCK_LIST ==
Usage:
cm ^lock ^list | ^ls [<revspec> [ ...]] [--^server=<server>]
[--^onlycurrentuser] [--^onlycurrentworkspace]
[--^ignorecase]
revspec If one or more are present, this command will display
one lock line for each specified revision if its
associated item is locked in the server. Otherwise,
this command will list all locked items in the default
server (or the one set with the '--^server' option)
Use a whitespace to separate the rev specs when using
more than one.
(Use 'cm ^help ^objectspec' to learn more about rev specs.)
Options:
--^server Repository server specification.
This option will override the default server which
is retrieved from the current workspace or the
client.conf file.
(Use 'cm ^help ^objectspec' to learn more about
server specs.)
--^onlycurrentuser Filters the results showing only the locks performed
by the current user.
--^onlycurrentworkspace Filters the results showing only the locks performed
on the current workspace (matching them by name).
--^ignorecase Ignores casing on the paths when a serverpath spec
is used. With this flag, the command will work for
"/src/foo.c" even if the user writes "/sRc/fOO.c".
== CMD_HELP_LOCK_LIST ==
Remarks:
The command will display a list of the currently locked items in the
default server. It also accepts a list of revision specifications; in that
case, only the locks belonging to the selected items will be displayed.
A '--^server=<server>' can be used to set the default server to query.
The command shows a line for every lock in the specified server:
- GUID of the locked item.
- User name who performed the lock.
- Workspace name where the lock was performed.
- Path of the locked item (server path format).
Examples:
cm ^lock ^list
cm ^lock ^list --^server=myserver:8084
cm ^lock ^ls ^serverpath:/src/foo.c#^cs:99@default@localhost:8084
cm ^lock ^list ^revid:3521@default ^itemid:2381@secondary --^onlycurrentuser
cm ^lock ^ls --^onlycurrentuser
cm ^lock ^ls --^onlycurrentuser --^onlycurrentworkspace
== CMD_DESCRIPTION_LISTUSERS ==
Lists users and groups.
== CMD_USAGE_LISTUSERS ==
Usage:
cm ^listusers | ^lu <repserverspec> [--^onlyusers] [--^onlygroups]
[--^filter= <str_filter>]
repserverspec Repository server specification.
(Use 'cm ^help ^objectspec' to learn more about specs.)
Options:
--^onlyusers Lists only users.
--^onlygroups Lists only groups.
--^filter Lists only users and/or groups that matches the
specified filter.
== CMD_HELP_LISTUSERS ==
Examples:
cm ^lu localhost:8084
(Lists all users in the server.)
cm ^listusers localhost:8084 --^onlyusers --^filter=m
(Lists only the users in the server that contains "m".)
== CMD_DESCRIPTION_LOCATION ==
Returns the path of 'cm'.
== CMD_USAGE_LOCATION ==
Usage:
cm ^location
== CMD_HELP_LOCATION ==
== CMD_DESCRIPTION_LOCK ==
This command allows the user to manage locks.
== CMD_USAGE_LOCK ==
Usage:
cm ^lock <command> [options]
Commands:
^list | ^ls
^unlock
To get more information about each command run:
cm ^lock <command> --^usage
cm ^lock <command> --^help
== CMD_HELP_LOCK ==
Examples:
cm ^lock ^list
cm ^lock
('^list' is optional if there are no arguments.)
cm ^lock ^ls ^serverpath:/src/foo.c#^cs:99@default@localhost:8084
cm ^lock ^unlock 91961b14-3dfe-4062-8c4c-f33a81d201f5
== CMD_DESCRIPTION_LOG ==
Gets info about revisions in changesets.
== CMD_USAGE_LOG ==
Usage:
cm ^log [<csetspec> | <repspec>] [--^from=<csetspec_from>] [--^allbranches]
[--^ancestors] [--^csformat=<str_format>] [--^itemformat=<str_format>]
[--^xml[=<output_file>]] [--^encoding=<name>]
[--^repositorypaths | --^fullpaths | --^fp]
Options:
csetspec The command will return every change made in the
changeset which specification is provided.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
repspec The command will list all changes made in the specified
repository.
(Use 'cm ^help ^objectspec' to learn more about repository
specs.)
--^from Lists all the changes made in every changeset from the
changeset specification [csetspec_from] to the
changeset specification [csetspec].
The [csetspec_from] changeset is not included in the
output.
Ignored when a repository spec is provided.
--^allbranches Shows information about the changesets created in a
specified interval, for all the branches where those
changesets were created.
--^ancestors Shows information about the reachable changesets by
following the parent and merge links for the given
changeset ([csetspec]). If the from changeset
([csetspec_from]) is provided too, it will be used as
lower limit for all the paths. Remarks: The changeset
changes will not be shown when this option is used.
--^csformat Retrieves the changeset info in a specific format. See
Remarks for more info.
--^itemformat Retrieves the item info in a specific format. See
Remarks for more info.
--^xml Prints the output in XML format to the standard output.
It is possible to specify an output file.
--^encoding Used with the '--^xml' option, specifies the encoding to
use in the XML output, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^fullpaths, --^fp Force printing full workspace paths for files and
directories when possible.
--^repositorypaths Prints repository paths (server paths) instead of
workspace paths. (This option overrides the
'--^fullpaths' option).
== CMD_HELP_LOG ==
Remarks:
- If neither 'csetspec' nor option is specified, the command shows
information about every changeset created within the last month in every
branch.
- If only the option '--^from' is included, the command shows the
information about every changeset from that specified changeset to the
last changeset, in the branch where the changeset was created.
- If the option '--^allbranches' appears without an interval, the command
retrieves the same information as it would do if only 'csetspec' was
specified.
- If the '--^from' is used, the output contains information from the
'csetspec_from'+1 on.
- The repository used to show the changeset information is the one loaded
in the path where the command executes on.
This command accepts a format string for the items ('--^itemformat') and a
format string for the changesets ('--^csformat').
The output parameters of '--^csformat' are the following:
{^tab} Inserts a tab space.
{^newline} Inserts a new line.
{^changesetid} Changeset number.
{^branch} Branch where the changeset was created.
{^date} Date of the changeset.
{^owner} Owner of the changeset.
{^comment} Comment of the changeset.
{^items} Items involved in the changeset.
{^repository} Repository where the changeset exists.
{^repserver} Server name.
The output parameters of '--^itemformat' are the following:
{^tab} Inserts a tab space.
{^newline} Inserts a new line.
{^path} Item path.
{^branch} Branch where the changeset was created.
{^date} Date of the changeset.
{^owner} Owner of the changeset.
{^shortstatus} Prints the short format. See below.
{^fullstatus} Prints the long format. See below.
Short format and its corresponding long format:
'^A' ^Added
'^D' ^Deleted
'^M' ^Moved
'^C' ^Changed
These are valid output strings:
--^csformat="{^newline}Changeset {^changesetid} created on {^date};{^tab} changed items: {^items}."
--^itemformat="{^newline}The item {^path} was changed in the branch {^branch}."
Examples:
cm ^log
(Shows information about every changeset created in the last month in every
branch.)
cm ^log ^cs:16
(Shows information about the changes done in the changeset 16 in the branch
where the changeset was created.)
cm ^log ^cs:16 --^csformat="{^newline}Changeset {^changesetid} created on \
{^date};{^tab} changed items: {^items}."
(Shows the information in the specified format.)
cm ^log --^from=^cs:20 ^cs:50
(Shows the information about every revision contained in every changeset
from the changeset 21 to the changeset 50.)
cm ^log --^from=^cs:20 ^cs:50 --^allbranches
(Shows the information about every revision contained in every changeset
from the changeset 21 to the changeset 50 in every branch of the
repository.)
cm ^log ^rep:myrep@localhost:8084
(Shows information about the changes done in the specified repository.
No workspace is required to run the command.)
cm ^log --^from=^cs:20@^rep:mainRep@localhost:8084
(Shows the information about every revision contained in every changeset
from the changeset 21. No workspace is required to run the command, because
the full changeset spec was specified.)
== CMD_DESCRIPTION_LS ==
Lists the contents of a tree.
== CMD_USAGE_LS ==
Usage:
cm ^ls | ^dir [<paths>[ ...]] [--^format=<str_format>] [--^symlink]
[--^selector[=<selector_format>]] [--^tree=<obj_spec>]
[-^R | -^r | --^recursive]
[--^xml[=<output_file>]] [--^encoding=<name>]
Options:
paths List of paths to show. Use a whitespace to separate
paths.
Use double quotes (" ") to specify paths containing
spaces.
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^symlink Applies the operation to the symlink and not to the
target.
--^selector Gets the content from the active workspace selector.
If selector_format is specified, then lists the
specified selector.
This is mostly deprecated since selectors are
no longer a central part of Plastic SCM since 4.x.
--^tree Lists the tree in the specified changeset or branch.
(Use 'cm ^help ^objectspec' to learn more about specs.)
-^R Lists recursively.
--^xml Prints the output in XML format to the standard output.
It is possible to specify an output file.
--^encoding Used with the '--^xml' option, specifies the encoding to
use in the XML output, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
== CMD_HELP_LS ==
Remarks:
- Path can be typed with meta-characters.
- The list depends on the workspace selector.
- The output of the command can be formatted specifying a format string.
- If '--^tree' or '--^selector' options are specified, the given
path must be a server path (a.k.a.: 'cm path'): /dir/file.txt, not a
workspace path: C:\Users\myuser\mywk\dir\file.txt
- If no path is provided, the workspace path assumed is the current
directory. If '--^tree' or '--^selector' options are used, then
the root path ("/") is assumed.
The default format string is:
"{^size,10} {^date:dd/MM/yyyy} {^date:HH:mm}\
{^type,-6} {^location,-12} {^checkout,-5} {^name}\
{^symlinktarget}"
This command accepts a format string to show the output.
The output parameters of this command are the following:
{^size}
{^formattedsize}
{^date}
{^type}
^dir directory,
^txt text file,
^File file.
{^location} Example: ^br:branch#cset
{^checkout}
{^name}
{^changeset}
{^path}
{^repspec}
{^owner}
{^revid}
{^parentrevid}
{^itemid}
{^brid}
{^repid}
{^server}
{^symlinktarget}
{^hash}
{^chmod}
{^wkpath} Path relative to workspace root
{^branch}
{^newlocation} cset@branch
{^guid} (Will take longer to resolve)
{^itemguid}
{^transformed} Show applied rule for transformed items
You can customize the '^ls' format setting the PLASTIC_LS_FORMAT environment
variable.
Examples:
cm ^ls
cm ^ls c:\workspace\src
cm ^ls --^format={^name}
(Only file names.)
cm ^ls --^symlink
(Displays information about the symlink instead of the 'symlinked' file or
directory. Available on UNIX environments.)
cm ^ls code --^selector
(Shows the content of the 'code' subdirectory from the current workspace
selector.)
cm ^ls /code --^selector="^rep 'myrep' ^path '/' ^branch '/^main'"
(Shows the content of the '/code' subdirectory on the specified selector.
Note that the path is specified in server format.)
cm ^ls /code --^tree=44@myrep@denver:7070
(Lists the '/code' subdirectory at changeset 44 at repo 'myrep' at server
'denver:7070'.)
cm ^ls /code --^tree=^br:/main/scm13596@myrep@denver:7070
(Lists the '/code' subdirectory at the latest changeset in branch
'/main/scm13596' at repo 'myrep' at server 'denver:7070'.)
cm ^ls /code --^tree=ae1390ed-7ce9-4ec3-a155-e5a61de0dc77@myrep@denver:7070
(Lists the '/code' subdirectory at changeset
ae1390ed-7ce9-4ec3-a155-e5a61de0dc77 at repo 'myrep' at server
'denver:7070'.)
== CMD_DESCRIPTION_TRIGGER_LIST ==
Lists the triggers of a given type on a server.
== CMD_USAGE_TRIGGER_LIST ==
Usage:
cm ^trigger | ^tr ^list | ^ls [<subtype-type>] [--^server=<repserverspec>]
[--^format=<str_format>]
Options:
subtype-type Trigger execution and trigger operation.
Type 'cm ^showtriggertypes' to see a list of trigger
types.
--^server Lists the triggers on the specified server.
If no server is specified, executes the command on the
one configured on the client.
(Use 'cm ^help ^objectspec' to learn more about server
specs.)
--^format Retrieves the output message in a specific format. See
Remarks for more info.
== CMD_HELP_TRIGGER_LIST ==
Remarks:
If the type is not specified, lists all the triggers on the server.
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} Trigger position.
{1} Trigger name.
{2} Trigger path.
{3} Trigger owner.
{4} Trigger type.
{5} Trigger filter.
Examples:
cm ^trigger list after-mklabel
cm ^tr ^ls ^before-mkbranch --^server=myserver:8084
== CMD_DESCRIPTION_MANIPULATESELECTOR ==
Changes the selector to a date.
== CMD_USAGE_MANIPULATESELECTOR ==
This is an automation command, meant to be used to automate 'cm' only.
It is not as user friendly as it should be.
Usage:
cm ^manipulateselector | ^ms [<wk_path> | <wk_spec>] --^atdate=<sel_date>
wk_path Path of the workspace.
wk_spec Workspace specification. (Use 'cm ^help ^objectspec' to
learn more about specs.)
Options:
--^atdate Returns a selector that will recreate the workspace as
it would have looked at the specified date.
== CMD_HELP_MANIPULATESELECTOR ==
Remarks:
If neither path nor workspace spec is specified, the command will take the
current directory as workspace path.
Examples:
cm ^manipulateselector c:\workspace --^atdate=yyyy-MM-ddTHH:mm:ss
cm ^manipulateselector --^atdate=yyyy-MM-ddTHH:mm:ss
cm ^manipulateselector > mySelector.txt --^atdate=yyyy-MM-ddTHH:mm:ss
cm ^manipulateselector ^wk:build_wk@BUILDER --^atdate=yyyy-MM-ddTHH:mm:ss
== CMD_DESCRIPTION_MERGE ==
Merges a branch with another branch.
== CMD_USAGE_MERGE ==
Usage:
cm ^merge <source_spec> [--^merge] [--^cherrypicking] [--^forced]
[--^mergetype=(^onlyone|^onlysrc|^onlydst|^try|^forced)]
[--^interval-origin=<csetspec> | --^ancestor=<csetspec>]
[--^keepsource | --^ks] [--^keepdestination | --^kd]
[--^automaticresolution=<conflict-types>[;...]]
[--^subtractive] [--^mount] [--^printcontributors]
[--^noprintoperations] [--^silent]
[(--^to=<brspec> | --^destination=<brspec>)[--^shelve]]
[--^no-dst-changes]
[-^c=<str_comment> | --^commentsfile=<comments_file>]
[--^resolveconflict --^conflict=<index>
--^resolutionoption=(^src|^dst|(^rename --^resolutioninfo=<strname>))
--^mergeresultfile=<path> --^solvedconflictsfile=<path>]
[--^nointeractiveresolution]
[--^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
source_spec Specification of the source object to merge from:
- a branch specification: '[^br:/]br_name'
- a label specification: '^lb:lb_name'
- a changeset specification: '^cs:cs_number'
- a shelve specification: '^sh:shelve_number'
(Use 'cm ^help ^objectspec' to learn more about specs.)
Options:
--^merge Performs the merge. Otherwise, prints the
conflicts found.
--^cherrypicking Merges the changes included on the source
changesets. This option is not used if the merge
source specification is a label.
--^forced Does not check if the source and destination are
already connected.
This option is only available for interval merge
and cherrypicking.
--^mergetype See Remarks for more info.
--^interval-origin Specifies which changeset is chosen as the
interval origin, so the merge will only take the
differences between the source changeset and the
specified interval origin.
--^ancestor This is an alias of --^interval-origin.
--^keepsource Accepts all changes from source contributor for
items with conflicts.
--^keepdestination Preserves changes from destination contributor
for items with conflicts.
--^automaticresolution Used to resolve directory conflicts. This option
lets you choose whether the source or the
destination contributor should be automatically
selected to resolve the conflict.
Use a semicolon to separate conflict types.
See Remarks for more info.
--^subtractive Deletes changes introduced by a merge. The
parameter passed to the command (source_spec) is
used to specify which is the source to delete
changes. It must be a changeset. In the case of a
changeset interval, the '--^interval-origin' must
be used to define the interval origin. To remove
a change, the system creates a new checked out
revision which will have the content of the
previous one except for the deleted changes.
--^mount The mount point for the given repository.
--^printcontributors Prints the contributors (base, source, and
destination).
--^noprintoperations Silently resolves merges without showing
information about the resolution.
--^silent Does not show any output.
--^to | --^destination Performs a merge-to operation to the specified
branch (by entering a branch spec or brspec)
with full conflict resolution.
A "merge-to" (or workspace-less merge) is a merge
done in the server side. While normal merges
happen on a workspace merging "from" a branch,
label or changeset, a merge-to happens entirely
on the server. While in normal merges the
"destination" is the workspace, in "merge-to" a
destination must be always specified (that's why
we call it "to").
Check the following link for more information
about the "merge to" feature:
https://www.plasticscm.com/download/help/mergeto
--^shelve Creates a shelve with the changes of the merge
result (plus merge traceability info) instead of
creating a new changeset. This option is not
available when the merge source is a shelve. This
option is only available for server-side-merge
(a.k.a. "merge-to"). Hence, the '--^to' and
'--^merge' options are required.
--^no-dst-changes Ensures that the destination contributor doesn't
have changes (the destination changeset is also
the common ancestor). When there are changes on
the destination, the merge is not allowed.
-^c Applies the specified comment to the changeset
created in the merge operation.
--^commentsfile Applies the comment in the specified file to the
changeset created in the merge operation.
--^resolveconflict (Mainly used by plugins. See Remarks for more info.)
Used to solve a directory conflict.
--^conflict Used with the '--^resolveconflict' flag, specifies
the index of the conflict to solve starting at 1.
--^resolutionoption Used with the '--^resolveconflict' flag, indicates
the type of the conflict resolution. Use one of
the following options: '^src', '^dst', '^rename'.
See Remarks for more info.
--^resolutioninfo Used with the '--^resolveconflict' flag, provides
the name to use when the '--^resolutionoption'
option is 'rename'.
--^mergeresultfile Used with the '--^resolveconflict' flag, outputs
into a file the information of the merge result
between different calls .The specified path will
be created during the first call and updated on
each next call.
--^solvedconflictsfile Used with the '--^resolveconflict' flag, outputs
into a file the information of the conflicts
solved between different calls. The specified
path will be created during the first call and
updated on each next call.
--^nointeractiveresolution (Mainly used by plugins. See Remarks for more info.)
Avoids prompting the user for manual conflict.
This way, a directory conflict won't be solved.
--^machinereadable (Mainly used by plugins. See Remarks for more info.)
Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag, specifies
how the lines should start. (Default: empty string.)
--^endlineseparator Used with the '--^machinereadable' flag, specifies
how the lines should end. (Default: empty string.)
--^fieldseparator Used with the '--^machinereadable' flag, specifies
how the fields should be separated. (Default:
whitespace.)
== CMD_HELP_MERGE ==
Remarks:
This command is used to merge changes between two branches or between a
label and a branch. The destination of the merge must be always a branch.
The merge source is specified as an argument.
Destination is the current content of the workspace.
For example, to display the elements that will be merged from branch
task001 to the main branch, the selector must point to the main branch,
the workspace must be updated, and then:
cm ^merge ^br:/task001
To really perform the merge, '--^merge' option is added:
cm ^merge ^br:/task001 --^merge
To define the merge source, the following specs can be used:
- A branch specification (brspec):
[^br:/]br_name
Example: ^br:/main/task001
(The above performs a merge from the last changeset on this branch.)
- A label specification (lbspec):
^lb:lb_name
Example: ^lb:BL001
(Merge from the labeled changeset.)
- A changeset specification (csetspec):
^cs:cs_number
Example: ^cs:25
(Merge from the given changeset content.)
- A shelve specification (shspec):
^sh:shelve_number
Example: ^sh:2
(Merge from the given shelve content.)
To automatically resolve directory conflicts, use '--^automaticresolution'
option and specify the type of conflict followed by the contributor
(source or destination) that must be selected during the merge operation.
(Separate each "type of conflict"-"contributor" pair by a semicolon (;).)
For example:
cm ^merge ^cs:2634 --^merge --^automaticresolution=^eviltwin-src;^changedelete-src
(The merge operation from changeset 2634 resolves the "^eviltwin" and
"^changedelete" conflicts by keeping the source ("-^src") contributor in
both cases.)
- A "-^src" suffix after a conflict type tells the merge command to keep the
source contributor changes.
- A "-^dst" suffix will keep the destination contributor changes.
This is the list of conflict types the merge command supports:
"^movedeviltwin", "^eviltwin", "^changedelete", "^deletechange", "^movedelete",
"^deletemove", "^loadedtwice", "^addmove", "^moveadd", "^divergentmove",
"^cyclemove", "^all".
The "^all" value overrides the other options. In the following example,
"^eviltwin-dst" will be ignored:
cm ^merge ^br:/main/task062 --^merge --^automaticresolution=^all-src;^eviltwin-dst
Check the following link to learn more about merge conflicts:
https://www.plasticscm.com/download/help/directorymerges
These are the options for '--^mergetype':
^onlyone Automatic merge if only one contributor modified the
item.
^onlysrc Automatic merge if only source contributor modified the
item.
^onlydst Automatic merge if only destination contributor modified
the item.
^try Automatic merge if only one contributor has modified the
conflictive piece of code (each conflict).
^forced Always try to solve all non-automatic conflicts.
These are the options that are mainly used by plugins and integrations:
- '--^resolveconflict' to solve a directory conflict. You also have to
use the following options:
- '--^conflict' is the index of the conflict that you want to
solve, starting at 1.
- '--^resolutionoption' indicates the conflict resolution to
use. This can be:
- '^src' to keep the source change and discard the
destination change
- '^dst' to keep the destination change and discard the
source change
- '^rename' (only if the conflict type supports this
resolution), to rename the destination to the given name
provided with the '--^resolutioninfo' option.
- '--^resolutioninfo' to provide the name to use on a
'^rename' resolution
- '--^mergeresultfile' and '--^solvedconflictsfile', both used to
store the merge info between different calls.
- '--^nointeractiveresolution' indicates the merge to not ask the user for
manual conflict resolution.
- '--^machinereadable' and '--^startlineseparator', '--^endlineseparator',
'--^fieldseparator' options to print the output on a machine-readable
way (easier-to-parse).
Example:
cm ^merge --^machinereadable --^startlineseparator=start@_@line \
--^endlineseparator=new@_@line --^fieldseparator=def#_#sep \
--^mergeresultfile=C:\Users\Borja\AppData\Local\Temp\2tmp4D6C.tmp \
--^solvedconflictsfile=C:\Users\Borja\AppData\Local\Temp\2tmp4D6D.tmp \
--^resolveconflict --^conflict=1 --^resolutionoption=rename \
--^resolutioninfo=bin_dst ^br:/main/task --^merge
Examples:
cm ^merge ^br:/task001
(Does not merge, just prints items to be merged.)
cm ^merge ^br:/task001 --^merge
(Does merge from branch 'task001'.)
cm ^merge ^cs:5 --^merge --^cherrypicking --^interval-origin=^cs:2
(Cherrypick from the changeset interval (2,5].)
cm ^merge ^cs:8 --^merge --^subtractive --^keepdestination
(Subtractive merge from changeset 8, keeping destination changes for those
elements with conflicts.)
cm ^merge ^br:/main/task001 --^to=^br:/main --^merge -^c="Integrated new UI"
(Does server-side merge, a.k.a. merge-to, from branch 'task001' to branch
'main' and sets a comment.)
cm ^merge ^br:/main/task001 --^to=^br:/main --^merge --^shelve
(Does server-side merge from branch 'task001' to branch 'main' and leaves
the result on a shelve.)
cm ^merge ^sh:2 --^to=^br:/main --^merge --^no-dst-changes
(Applies the shelve 2 into 'main' only if it was created from the current
'main' head')
== CMD_DESCRIPTION_ATTRIBUTE_CREATE ==
Creates a new attribute.
== CMD_USAGE_ATTRIBUTE_CREATE ==
Usage:
cm ^attribute | ^att ^create | ^mk <att_name>
att_name Attribute name
== CMD_HELP_ATTRIBUTE_CREATE ==
Examples:
cm ^attribute ^create status
(Creates the attribute 'status'.)
cm ^att ^mk integrated
(Creates the attribute 'integrated'.)
== CMD_DESCRIPTION_BRANCH ==
Allows the user to manage branches.
== CMD_USAGE_BRANCH ==
Usage:
cm ^branch | ^br <command> [options]
Commands:
^create | ^mk
^delete | ^rm
^rename
^history
^showmain
^showmerges
To get more information about each command run:
cm ^branch <command> --^usage
cm ^branch <command> --^help
== CMD_HELP_BRANCH ==
Examples:
cm ^branch /main/scm21345
cm ^branch ^create /main/scm21345
cm ^branch ^delete /main/scm21345
cm ^branch ^rename /main/scm21345 scm21346
cm ^branch ^history /main/scm21345
cm ^branch ^showmain
cm ^branch ^showmerges file.txt
== CMD_DESCRIPTION_BRANCH_CREATE ==
Creates a new branch.
== CMD_USAGE_BRANCH_CREATE ==
Usage:
cm ^branch | ^br [^create | ^mk] <brspec>
[--^changeset=<csetspec> | --^label=<lbspec>]
[-^c=<str_comment> | -^commentsfile=<comments_file>]
brspec The new branch name or spec.
(Use 'cm ^help ^objectspec' to learn more about branch specs.)
Options:
--^changeset Changeset used as starting point for the new branch.
(Use 'cm ^help ^objectspec' to learn more about cset specs.)
--^label Label used as starting point for the new branch.
(Use 'cm ^help ^objectspec' to learn more about label specs.)
-^c Fills in the comment field of the new branch with the
specified text.
-^commentsfile Fills in the comment field of the new branch with the
contents of the specified file.
== CMD_HELP_BRANCH_CREATE ==
Remarks:
To create a top-level branch, specify the name without any hierarchy.
For example:
cm ^br /dev
If no optional parameter '--^changeset' is specified, the base of the new
branch will be the last changeset on the parent branch. If the new branch
is a top-level branch, the base changeset used will be cset 0.
You can specify a comment using either the '-^c' or the '-^m' switches:
cm ^branch /main/task001 -^c="This is the comment"
cm ^branch /main/task001 -^m "This is the comment"
Set the PLASTICEDITOR environment variable to specify an editor for
entering comments. If the PLASTICEDITOR environment variable is set, and
the comment is empty, the editor will be automatically launched to allow
you to specify the comment.
Examples:
cm ^branch task001
cm ^branch ^create task001
cm ^branch ^mk task001
cm ^br ^mk task001
(Creates a top-level 'task001' branch in the repository of the current
workspace.)
cm ^branch ^br:/task001/task002@
(Creates 'task002' branch as child of 'task001'.)
cm ^br /main/task001@myrep@myserver:8084 -^c="my comment"
(Creates 'task001' branch as child of 'main' in repository
'myrep@myserver:8084' with comment 'my comment'.)
cm ^branch ^br:/main/task001 --^changeset=2837 -^commentsfile=commenttask001.txt
(Creates the 'task001' branch as child of 'main' with base 'changeset=2837',
and applies the comment in 'commenttask001.txt' file.)
== CMD_DESCRIPTION_BRANCH_DELETE ==
Deletes one or more branches.
== CMD_USAGE_BRANCH_DELETE ==
Usage:
cm ^branch | ^br ^delete | ^rm <brspec>[ ...]
brspec Branch to delete. Use a whitespace to separate branches.
(Use 'cm ^help ^objectspec' to learn more about branch
specs.)
== CMD_HELP_BRANCH_DELETE ==
Remarks:
This command deletes one or more branches.
Examples:
cm ^branch ^delete /main/task001
(Deletes the branch with name 'task001' that is a child of 'main' in the
repository of the current workspace.)
cm ^br ^rm main/task002 /main/task012@reptest@myserver:8084
(Deletes branches '/main/task002' in the repository of the current workspace
and '/main/task012' in the repository 'reptest@myserver:8084'.)
== CMD_DESCRIPTION_BRANCH_RENAME ==
Renames a branch.
== CMD_USAGE_BRANCH_RENAME ==
Usage:
cm ^branch | ^br ^rename <brspec> <new_name>
brspec Branch to rename.
(Use 'cm ^help ^objectspec' to learn more about branch specs.)
new_name New name for the branch.
== CMD_HELP_BRANCH_RENAME ==
Remarks:
This command renames a branch.
Examples:
cm ^branch ^rename /main/task0 task1
(Renames branch '/main/task0' to '/main/task1'.)
cm ^br ^rename ^br:/main@reptest@server2:8084 secondary
(Renames the 'main' branch of repository 'reptest' to 'secondary'.)
== CMD_DESCRIPTION_BRANCH_HISTORY ==
Shows the history of a branch.
== CMD_USAGE_BRANCH_HISTORY ==
Usage:
cm ^branch | ^br ^history <brspec> [--^dateformat=<date_format>]
[--^machinereadable]
brspec The branch specification to obtain the history.
(Use 'cm ^help ^objectspec' to learn more about branch specs.)
Options:
--^dateformat Format used to output dates.
--^machinereadable Outputs the result in an easy-to-parse format.
== CMD_HELP_BRANCH_HISTORY ==
Examples:
cm ^branch ^history ^br:/main/scm001@myrepository@myserver:8084
(Displays the history of '/main/scm001' branch of 'myrepository' repository
on 'myserver' server.)
cm ^br ^history main --^dateformat="yyyy, dd MMMM" --^machinereadable
(Displays the history of the 'main' branch of the current repository,
with a given date format, and in an easy-to-parse format.)
== CMD_DESCRIPTION_BRANCH_SHOWMAIN ==
Shows the main branch of a repository.
This is an automation command, meant to be used to automate 'cm' only.
Most likely, the main branch of your repository is '/main'.
== CMD_USAGE_BRANCH_SHOWMAIN ==
Usage:
cm ^branch | ^br ^showmain [<repspec>] [--^encoding=<name>]
[--^format=<format_str>] [--^dateformat=<date_format>]
repspec The repository specification where to show the main
branch.
(Use 'cm ^help ^objectspec' to learn more about rep specs.)
Options:
--^encoding Specifies the encoding to use in the output,
i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^dateformat Format used to output dates.
== CMD_HELP_BRANCH_SHOWMAIN ==
Remarks:
This command shows the main branch of a repository.
This command accepts a format string to show the output.
The output parameters of this command are the following:
{^id} Branch id.
{^comment} Comment.
{^date} Date.
{^name} Name.
{^owner} Owner.
{^parent} Parent branch name.
{^repository} Repository.
{^repname} Repository name.
{^repserver} Server.
{^changeset} Head changeset of the branch.
Examples:
cm ^branch ^showmain
(Displays the main branch for the repository of the current workspace.)
cm ^branch ^showmain repo@server:8084
(Displays the main branch for the repository 'repo' in server
'server:8084'.)
cm ^br ^showmain --^dateformat="yyyy, dd MMMM" --^encoding=utf8
(Displays the main branch of the repository with a given date format,
and the output is in utf8.)
cm ^br ^showmain --^format="{^id} - {^name}"
(Displays the main branch of the repository, printing only its id and name.)
== CMD_DESCRIPTION_BRANCH_SHOWMERGES ==
Shows branches pending to be merged.
== CMD_USAGE_BRANCH_SHOWMERGES ==
This is an automation command, meant to be used to automate 'cm' only.
It is not as user friendly as it should be.
Usage:
cm ^branch | ^br ^showmerges <item_path>[ ...]
[--^format=<format_str>]
[--^dateformat=<date_format>]
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^dateformat Format used to output dates.
== CMD_HELP_BRANCH_SHOWMERGES ==
Remarks:
This command accepts a format string to show the output.
The output parameters of this command are the following:
{^id} Branch id.
{^comment} Comment.
{^date} Date.
{^name} Name.
{^owner} Owner.
{^parent} Parent branch name.
{^parentid} Parent branch id.
{^repid} Repository id.
{^repository} Repository.
{^repname} Repository name.
{^repserver} Repository server.
Examples:
cm ^branch ^showmerges file.txt
(Displays branches involved in the pending merge of 'file.txt'.)
cm ^branch ^showmerges file.txt --^format="{^date} {^name}" --^dateformat="ddMMyy"
(Displays branches involved in the merge, printing only the date and the
name, with a given date format.)
== CMD_DESCRIPTION_REPOSITORY ==
Allows the user to manage repositories.
== CMD_USAGE_REPOSITORY ==
Usage:
cm ^repository | ^repo <command> [options]
Commands:
^create | ^mk
^delete | ^rm
^list | ^ls
^rename
^add
To get more information about each command run:
cm ^repository <command> --^usage
cm ^repository <command> --^help
== CMD_HELP_REPOSITORY ==
Examples:
cm ^repository
cm ^repository ^list
cm ^repository newrepo
cm ^repository ^create newrepo
cm ^repository ^rename oldname newname
cm ^repository ^add C:\repo\
== CMD_DESCRIPTION_REPOSITORY_CREATE ==
Creates a repository on a server.
== CMD_USAGE_REPOSITORY_CREATE ==
Usage:
cm ^repository | ^repo <rep_name>
cm ^repository | ^repo <repserverspec> <rep_name>[ ...]
cm ^repository | ^repo [^create | ^mk] <rep_name>
repserverspec Repository server specification.
(Use 'cm ^help ^objectspec' to learn more about rep server
specs.)
rep_name Name or names of the new repository or repositories.
Use a whitespace to separate repository names.
== CMD_HELP_REPOSITORY_CREATE ==
Examples:
cm ^repository MyRep
cm ^repo 192.168.1.140:8087 Rep01 Rep01/ModuleA Rep01/ModuleB
cm ^repo ^create Rep01
cm ^repo ^mk list
== CMD_DESCRIPTION_REPOSITORY_DELETE ==
Deletes a repository from a server.
== CMD_USAGE_REPOSITORY_DELETE ==
Usage:
cm ^repository | ^repo ^delete | ^rm <repspec>
Options:
repspec Repository specification.
(Use 'cm ^help ^objectspec' to learn more about rep specs.)
== CMD_HELP_REPOSITORY_DELETE ==
Remarks:
Deletes a repository from the repository server.
The data is not removed from the database backend, but unplugged
so that it will not be accessible anymore.
(Data can be reconnected afterwards, see 'cm ^repository ^add'.)
Examples:
cm ^repository ^delete myrepository@^repserver:myserver:8084
cm ^repository ^rm myrepository@myserver:8084
cm ^repo ^rm myrepository
== CMD_DESCRIPTION_REPOSITORY_LIST ==
Lists the repositories on a server.
== CMD_USAGE_REPOSITORY_LIST ==
Usage:
cm ^repository | ^repo [^list | ^ls] [<repserverspec>] [--^format=<str_format>]
Options:
repserverspec Repository server specification.
(Use 'cm ^help ^objectspec' to learn more about rep server
specs.)
--^format Retrieves the output message in a specific format. See
Remarks for more info.
== CMD_HELP_REPOSITORY_LIST ==
Remarks:
This command accepts a format string to show the output.
The output parameters of this command are the following:
{^repid} | {0} Repository identifier.
{^repname} | {1} Repository name.
{^repserver} | {2} Server name.
{^repowner} | {3} Repository owner.
{^repguid} | {4} Unique identifier of the repository.
{^tab} Inserts a tab space.
{^newline} Inserts a new line.
If the format parameter value is '^TABLE', the output will be printed
using a table format with the {^repid}, {^repname} and {^repserver} fields.
Examples:
cm ^repository
(Lists all repositories.)
cm ^repository ^list localhost:8084 --^format="{1, -20} {3}"
(Writes the repository name in 20 spaces, aligned to left, then a blank,
and then the repository owner.)
cm ^repository ^ls localhost:8084 --^format="{^repname, -20} {^repowner}"
(Writes the same as the previous example.)
cm ^repo ^ls localhost:8084 --^format=^TABLE
(Writes the list of repositories using a table format with the following
fields: repository id, repository name, and repository server name.)
== CMD_DESCRIPTION_REPOSITORY_RENAME ==
Renames a repository.
== CMD_USAGE_REPOSITORY_RENAME ==
Usage:
cm ^repository | ^repo ^rename [<repspec>] <new_name>
repspec Repository to be renamed.
(Use 'cm ^help ^objectspec' to learn more about repository
specifications.)
new_name New name for the repository.
== CMD_HELP_REPOSITORY_RENAME ==
Remarks:
This command renames a repository.
If no repspec is specified, current repository will be assumed.
Examples:
cm ^repository ^rename development
(The current repository will be renamed to 'development'.)
cm ^repo ^rename ^rep:default@SERVER:8084 development
(The 'default' repository on 'SERVER' will be renamed to 'development'.)
== CMD_DESCRIPTION_REPOSITORY_ADD ==
Connects an existing repository by adding its database.
== CMD_USAGE_REPOSITORY_ADD ==
Usage:
cm ^repository | ^repo ^add <db_file> <rep_name> <repserverspec>
db_file The name of the database file on the database backend.
rep_name The name of the repository.
repserverspec The repository server specification.
(Use 'cm ^help ^objectspec' to learn more about repository
server specifications.)
== CMD_HELP_REPOSITORY_ADD ==
Remarks:
Reconnects an existing repository database to the server.
Example: After using the 'cm ^repository ^delete' command, use the '^add'
command to move a repository from one server to another or to restore an
archived repository.
Examples:
cm ^repository ^add rep_27 myrepository myserver:8084
== CMD_DESCRIPTION_TRIGGER_CREATE ==
Creates a new trigger on a server.
== CMD_USAGE_TRIGGER_CREATE ==
Usage:
cm ^trigger | ^tr ^create | ^mk <subtype-type> <new_name> <script_path>
[--^position=<new_position>]
[--^filter=<str_filter>]
[--^server=<repserverspec>]
subtype-type Trigger execution and trigger operation.
Type 'cm ^showtriggertypes' to see a list of trigger
types.
new_name Name of the new trigger.
script_path Disk path on the server where the script to execute is
located. If the command line starts with "^webtrigger ",
the trigger will be considered as a web trigger. See
Remarks for more information.
Options:
--^position New position of the specified trigger.
This position must not be in use by another trigger of
the same type.
--^filter Checks only items that matches the specified filter.
--^server Creates the trigger on the specified server.
If no server is specified, executes the command on the
one configured on the client.
(Use 'cm ^help ^objectspec' to learn more about repository
server specifications.)
== CMD_HELP_TRIGGER_CREATE ==
Remarks:
Web triggers: A web trigger is created by typing "^webtrigger <target-uri>"
as the trigger command. In this case, the trigger will execute a POST query
against the specified URI -where the request body contains a JSON
dictionary with the trigger environment variables- and a fixed INPUT key
pointing to an array of strings.
Examples:
cm ^trigger ^create ^after-setselector "BackupMgr" "/path/to/script" --^position=4
cm ^tr ^mk ^before-mklabel new "/path/to/script" --^server=myserver:8084
cm ^tr ^mk ^after-mklabel Log "/path/to/script" --^filter="^rep:myRep,LB*"
(This trigger will be executed only if the label name starts with 'LB'
and it is being created in a repository called 'myRep'.)
cm ^tr ^mk ^after-checkin NotifyTeam "^webtrigger http://myserver.org/api"
== CMD_DESCRIPTION_MOVE ==
Moves or renames a file or directory.
== CMD_USAGE_MOVE ==
Usage:
cm ^move | ^mv <src_path> <dst_path> [--^format=<str_format>]
[--^errorformat=<str_format>]
src_path Source item path.
dst_path Destination item path.
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^errorformat Retrieves the error message in a specific format. See
Remarks for more info.
== CMD_HELP_MOVE ==
Remarks:
This command moves or renames an item in the repository.
Changes are done in the local filesystem too.
If the source path is a file, the destination path can be a file or a
directory. In the first case, the file is renamed; otherwise, the item
is moved.
If source path is a directory, the destination path must be a directory.
The item to move or rename must exist.
Format:
{0} Source path (both for '--^format' and '--^errorformat')
{1} Destination path (both for '--^format' and '--^errorformat')
Examples:
cm ^move file.txt file.old
(Renames the item.)
cm ^mv .\file.old .\oldFiles
(Moves 'file.old' to 'oldFiles'.)
cm ^move .\src .\src2
(Renames a directory.)
== CMD_DESCRIPTION_LABEL ==
Allows the user to manage labels.
== CMD_USAGE_LABEL ==
Usage:
cm ^label | ^lb <command> [options]
Commands:
^create | ^mk
^delete | ^rm
^rename
To get more information about each command run:
cm ^label <command> --^usage
cm ^label <command> --^help
== CMD_HELP_LABEL ==
Examples:
cm ^label myNewLabel ^cs:42
('^create' command is optional.)
cm ^label ^rename myNewLabel newLabelName
cm ^label ^delete newLabelName
== CMD_DESCRIPTION_LABEL_CREATE ==
Applies a label to a changeset and creates the label if required.
== CMD_USAGE_LABEL_CREATE ==
Usage:
cm ^label [^create] <lbspec> [<csetspec> | <wk_path>]
[--^allxlinkedrepositories]
[-^c=<str_comment> | -^commentsfile=<comments_file>]
lbspec The new label name.
(Use 'cm ^help ^objectspec' to learn more about label
specs.)
csetspec Name or full specification of the changeset to label.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
wk_path Path of the workspace to label. (The changeset that the
workspace is pointing will be labeled.)
Options:
--^allxlinkedrepositories Creates the new label in all Xlinked repositories.
-^c Applies the specified comment to the new label.
-^commentsfile Applies the comment in the specified file to the
new label.
== CMD_HELP_LABEL_CREATE ==
Remarks:
Set PLASTICEDITOR environment variable to specify an editor to type the
comment.
Examples:
cm ^label ^create ^lb:BL001 ^cs:1203 -^commentsfile=commentlb001.txt
(Creates label 'BL001' attached to changeset 1203, and applies the comment
in the 'commentlb001.txt' file.)
cm ^label BL002 ^cs:1203 -^c="first release"
(Creates label 'BL002', with a comment, and attached to changeset 1203.)
== CMD_DESCRIPTION_LABEL_DELETE ==
Deletes one or more labels.
== CMD_USAGE_LABEL_DELETE ==
Usage:
cm ^label ^delete <lbspec>[ ...]
lbspec Label to delete. Use a whitespace to separate labels.
(Use 'cm ^help ^objectspec' to learn more about label
specs.)
== CMD_HELP_LABEL_DELETE ==
Remarks:
This command deletes one or more labels.
Examples:
cm ^label ^delete ^lb:BL001
(Deletes the label 'BL001'.)
cm ^label ^delete ^lb:BL001 ^lb:BL002@reptest@server2:8084
(Deletes the labels 'BL001' and 'BL002'.)
== CMD_DESCRIPTION_LABEL_RENAME ==
Renames a label.
== CMD_USAGE_LABEL_RENAME ==
Usage:
cm ^label ^rename <lbspec> <new_name>
lbspec Label to rename.
(Use 'cm ^help ^objectspec' to learn more about label specs.)
new_name New name for the label.
== CMD_HELP_LABEL_RENAME ==
Remarks:
This command renames a label.
Examples:
cm ^label ^rename ^lb:BL001 BL002
(Renames the label 'BL001' to 'BL002'.)
== CMD_DESCRIPTION_OBLITERATE ==
DEPRECATED
== CMD_USAGE_OBLITERATE ==
DEPRECATED.
== CMD_HELP_OBLITERATE ==
DEPRECATED.
== CMD_DESCRIPTION_OBJECTSPEC ==
Describes how to write object specs.
== CMD_USAGE_OBJECTSPEC ==
Usage:
cm ^objectspec
To get all the information about how to build object specs.
== CMD_HELP_OBJECTSPEC ==
Several Plastic SCM commands expect 'object specs' as input to refer to a
given object (typically a branch, changeset, repository, etc).
This documentation describes the different "specs" available and how to
build them.
Each spec type begins with a unique tag, for example "^rep:" or "^cs:". The tag
must be specified for commands that take a general object spec, for example
"cm ^setowner object_spec", but can often be omitted for commands that take only
a single type of spec, for example, "cm ^getfile revision_spec".
-- Repository server spec (repserverspec) --
^repserver:name:port
Examples:
cm ^repo ^list ^repserver:skull:8084
cm ^repo ^list skull:8084
Side note:
We call it 'repository server spec', instead of just 'server spec' for
historical reasons. Long ago, we had separate workspace and repository
servers, and the naming survived.
-- Repository spec (repspec) --
^rep:rep_name@[repserverspec]
Examples:
cm ^showowner ^rep:codice@localhost:6060
(Here the "^rep:" is required because ^showowner admits not only repos
but also other types of objects. So it needs the user to indicate the
object type.)
-- Branch spec (brspec) --
^br:[/]br_name[@repspec]
Examples:
cm ^switch ^br:/main@^rep:plastic@^repserver:skull:9095
(In this case "^br:", "^rep" and "^repserver" are not needed, so the
command admits a much shorter form:
"cm ^switch main@plastic@skull:9095".)
cm ^find ^revisions "^where ^branch='^br:/main/task001'"
Remark:
The initial '/' on the branch is not mandatory. We used to specify all
our branches as /main, /main/task001, and so on. But now, we prefer the
shorter form main, main/task001 which makes commands more compact.
-- Changeset spec (csetspec) --
^cs:cs_number|cs_guid[@repspec]
The number or GUID of the changeset can be specified.
Examples:
cm ^ls /code --^tree=ae1390ed-7ce9-4ec3-a155-e5a61de0dc77@code@skull:7070
-- Label spec (labelspec) --
^lb:lb_name[@repspec]
Examples:
cm ^switch ^lb:RELEASE2.0
cm ^switch ^lb:RELEASE1.4@myrep@MYSERVER:8084
-- Revision spec --
There are different types of rev specs:
^rev:item_path[#(brspec|csetspec|labelspec)]
^rev:^serverpath:item_path#(brspec|cset_spec|lb_spec)
^rev:^revid:rev_id[@rep_spec]
^rev:^itemid:item_id#(br_spec|cset_spec|lb_spec)
Examples:
cm ^diff ^rev:readme.txt#^cs:19 ^rev:readme.txt#^cs:20
cm ^diff ^serverpath:/doc/readme.txt#^cs:19@myrepo \
^serverpath:/doc/readme.txt#^br:/main@myrepo@localhost:8084
cm ^cat ^revid:1230@^rep:myrep@^repserver:myserver:8084
-- Item spec --
^item:path
Rarely used.
Example:
cm ^find ^revision "^where ^item='^item:.'"
-- Attribute spec --
^att:att_name[@repspec]
Example:
cm ^attribute ^set ^att:merged@code@doe:8084 ^cs:25@code@doe:8084 done
-- Shelve spec --
^sh:sh_number[@repspec]
Example:
cm ^diff ^sh:2 ^sh:4
-- Workspace specs --
^wk:name@clientmachine
Rarely used, since they only apply to workspace related commands. Useful to
specify the workspace by name and machine instead of path.
Examples:
cm ^showselector ^wk:codebase@modok
Side note:
These specs come from the old days of Plastic SCM 2.x where 'workspace
servers' existed as a way to store workspace metadata in a centralized
way. Were deprecated due to performance issues.
== CMD_DESCRIPTION_PARTIAL ==
Runs commands in a partial workspace.
== CMD_USAGE_PARTIAL ==
Usage:
cm ^partial <command> [options]
Commands:
^configure
^add
^undo
^co | ^checkout
^unco | ^undocheckout
^ci | ^checkin
^mv | ^move
^rm | ^remove
^stb | ^switch
^upd | ^update
To get more information about each command run:
cm ^partial <command> --^usage
cm ^partial <command> --^help
== CMD_HELP_PARTIAL ==
Examples:
cm ^partial ^configure +/background-blue.png
cm ^partial ^update landscape-1024.png
cm ^partial ^checkin eyes-green.png eyes-black.png
== CMD_DESCRIPTION_PARTIAL_ADD ==
Adds an item to version control.
== CMD_USAGE_PARTIAL_ADD ==
Usage:
cm ^partial ^add [-^R | -^r | --^recursive] [--^silent] [--^parents]
[--^ignorefailed] [--^skipcontentcheck] <item_path>[ ...]
item_path Items to add. Use double quotes (" ") to specify paths
containing spaces. Use a whitespace to separate paths.
Use * to add all the contents of the current directory.
Options:
-^R Adds items recursively.
--^silent Does not show any output.
--^parents Includes the parent directories of the items specified
in the operation.
--^ignorefailed If an item cannot be added, the add operation will
continue without it. Note: If a directory cannot be
added, its content is not added.
--^skipcontentcheck When the extension is not enough to set the file as
text or binary, it will be set as binary by default
instead of checking the content to detect the type.
== CMD_HELP_PARTIAL_ADD ==
Remarks:
Requirements to add items:
- The parent directory of the item to add must be previously added.
Examples:
cm ^partial ^add pic1.png pic2.png
(Adds 'pic1.png' and 'pic2.png' items.)
cm ^partial ^add c:\workspace\picture.png
(Adds 'picture.png' item in path 'c:\workspace'.)
cm ^partial ^add -^R c:\workspace\src
(Recursively adds 'src'.)
cm ^partial ^add --^parents samples\design01.png
(Adds 'design01.png' file and 'samples' parent folder.)
cm ^partial ^add -^R *
(Recursively adds all the contents of the current directory.)
== CMD_DESCRIPTION_PARTIAL_CHECKIN ==
Stores changes in the repository.
== CMD_USAGE_PARTIAL_CHECKIN ==
Usage:
cm ^partial ^checkin | ^ci [<item_path>[ ...]]
[-^c=<str_comment> | -^commentsfile=<comments_file>]
[--^all | -^a] [--^applychanged] [--^keeplock]
[--^symlink] [--^ignorefailed]
Options:
item_path Items to checkin. Use double quotes (" ") to specify
paths containing spaces. Use a whitespace to separate
paths.
Use . to apply checkin to current directory.
-^c Specifies a comment to the changeset created in the
checkin operation.
-^commentsfile Applies the comment from the specified file to the
changeset created in the checkin operation.
--^all | -^a Includes also the items changed, moved, and deleted
locally on the specified paths.
--^applychanged Applies the checkin operation to the changed items
detected in the workspace along with the checked out
items.
--^keeplock Keeps the lock of the locked items after the checkin
operation.
--^symlink Applies the checkin operation to the symlink and not to
the target.
--^ignorefailed Any changes that cannot be applied (because the lock
- a.k.a. exclusive checkout - cannot be adquired or
because local changes are in conflict with the server
changes) are discarded and the checkin operation
continues without them.
== CMD_HELP_PARTIAL_CHECKIN ==
Remarks:
- If <item_path> is not specified, the checkin will involve all the
pending changes in the workspace.
- The checkin operation always applies recursively from the given path.
- To checkin an item:
- The item must be under source code control.
- The item must be checked out.
- If the item is changed but not checked out, the '--^applychanged' flag
is not necessary unless <item_path> is a directory or it contains
wildcards ('*').
Revision content should be different from previous revision in order to be
checked in.
Set PLASTICEDITOR environment variable to specify an editor to type the
comment.
Reading input from stdin:
The '^partial ^checkin' command can read paths from stdin. To do this, pass a
single dash "-".
Example: cm ^partial ^checkin -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify which files to checkin.
Example:
dir /S /B *.c | cm ^partial ^checkin --^all -
(In Windows, checkins all .c files in the workspace.)
Examples:
cm ^partial ^checkin figure.png landscape.png
(Applies the checkin to 'figure.png' and 'landscape.png' checked-out files.)
cm ^partial ^checkin . -^commentsfile=mycomment.txt
(Applies checkin to current directory and sets the comment from the
'mycomment.txt' file.)
cm ^partial ^ci background.png -^c="my comment" --^keeplock
(Applies the checkin to 'background.png', includes a comment, and keeps the
lock.)
cm ^partial ^checkin --^applychanged
(Applies the checkin to all pending changes in the workspace.)
cm ^partial ^checkin link --^symlink
(Applies the checkin to the link file and not to the target, available on
UNIX environments.)
cm ^partial ^checkin . --^ignorefailed
(Applies checkin to current directory, ignoring the changes that cannot be
applied.)
== CMD_DESCRIPTION_PARTIAL_CHECKOUT ==
Marks files as ready to modify.
== CMD_USAGE_PARTIAL_CHECKOUT ==
Usage:
cm ^partial ^checkout | ^co [<item_path>[ ...]] [--^resultformat=<str_format>]
[--^silent] [--^ignorefailed]
Options:
item_path Items to checkout. Use double quotes (" ") to specify
paths containing spaces. Use a whitespace to separate
paths.
Use . to apply checkout to current directory.
--^resultformat Retrieves the output result message in a specific
format.
--^silent Does not show any output.
--^ignorefailed If an item cannot be locked (the exclusive checkout
cannot be performed), the checkout operation will
continue without it.
== CMD_HELP_PARTIAL_CHECKOUT ==
Remarks:
To checkout an item:
- The item must be under source code control.
- The item must be checked in.
If locks are configured on the server (lock.conf exists), then each time
a checkout on a path happens, Plastic checks if it meets any of the rules
and if so, the path will be in exclusive checkout (locked) so that none can
simultaneously checkout.
You can get all the locks in the server by using 'cm ^lock ^list'.
Check the Administrator Guide to learn how locking works:
https://www.plasticscm.com/download/help/locking
Examples:
cm ^partial ^checkout pic1.png pic2.png
(Checkouts 'pic1.png' and 'pic2.png' files.)
cm ^partial ^co *.png
(Checkouts all png files.)
cm ^partial ^checkout .
(Checkouts current directory.)
cm ^partial ^checkout -^R c:\workspace\src
(Recursively checkouts 'src' folder.)
== CMD_DESCRIPTION_PARTIAL_CONFIGURE ==
Allows you to configure your workspace by loading or unloading items from it.
== CMD_USAGE_PARTIAL_CONFIGURE ==
Usage:
cm ^partial ^configure <+|-path>[ ...] [--^silent] [--^ignorefailed]
[--^ignorecase] [--^restorefulldirs]
path Paths to be loaded or unloaded. Use double quotes (" ") to
specify paths containing spaces. Use a whitespace to separate
paths.
Paths have to start with "/".
Options:
--^silent Does not show any output.
--^ignorefailed Skips all errors during the process. Incorrect paths
will not cause the command to stop.
--^ignorecase Ignores casing on the paths. With this flag, '^configure'
will work for "/Data/Textures" even if the user writes
"/data/teXtures".
--^restorefulldirs Resets an invalid directory configuration (happens when
a non-partial operation is run on a partial workspace).
The directories in this list will be fully configured
(full check) which means they will automatically
download new content during the update.
This operation does not download any files, just
restores the directory configuration on partial
workspaces.
== CMD_HELP_PARTIAL_CONFIGURE ==
Remarks:
The command assumes recursive operation.
Examples:
cm ^partial ^configure +/landscape_grey.png
(Loads 'landscape_grey.png' item.)
cm ^partial ^configure -/landscape_black.png
(Unloads 'landscape_black.png' item.)
cm ^partial ^configure +/soft -/soft/soft-black.png
(Loads all 'soft' directory children items except 'soft-black.png'.)
cm ^partial ^configure -/
(Unloads the whole workspace.)
cm ^partial ^configure -/ +/
(Loads the whole workspace.)
cm ^partial ^configure -/figure-64.png --^ignorefailed
(Unloads 'figure-64.png' item even if it was already unloaded.)
cm ^partial ^configure +/ --^restorefulldirs
(Sets all directories to automatically download the new content.)
cm ^partial ^configure +/src/lib --^restorefulldirs
(Sets only '/src/lib' and its subdirectories to automatically download the
new content.)
== CMD_DESCRIPTION_PARTIAL_MOVE ==
Moves or renames a file or directory.
== CMD_USAGE_PARTIAL_MOVE ==
Usage:
cm ^partial ^move | ^mv <src_path> <dst_path> [--^format=<str_format>]
src_path Source item path.
dst_path Destination item path.
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
== CMD_HELP_PARTIAL_MOVE ==
Remarks:
This command moves or renames an item in the repository.
Changes are done in the local filesystem too.
If the source path is a file, the destination path can be a file or a
directory. In the first case, the file will be renamed; otherwise, the item
will be moved.
If source path is a directory, the destination path must be a directory.
The item to move or rename must exist.
Format:
{0} Source path.
{1} Destination path.
Examples:
cm ^partial ^move file.png file-blue.png
(Renames the item.)
cm ^partial ^mv .\file-blue.png .\blueFiles
(Moves 'file-blue.png' to 'blueFiles'.)
cm ^partial ^move .\design .\marketing
(Renames a directory.)
== CMD_DESCRIPTION_PARTIAL_RM ==
Deletes a file or directory from version control.
== CMD_USAGE_PARTIAL_RM ==
Usage:
cm ^partial ^remove | ^rm <item_path>[ ...] [--^nodisk]
item_path Items path to remove. Use double quotes (" ") to
specify paths containing spaces. Use a whitespace to separate
paths.
Options:
--^nodisk Removes from version control, but keeps the item on disk.
== CMD_HELP_PARTIAL_RM ==
Remarks:
Items are deleted from disk. Removed items are removed from the parent
directory in the source code control.
Requirements:
- The item must be under source code control.
Examples:
cm ^partial ^remove src
(Removes 'src'. If 'src' is a directory, this is the same that:
cm ^partial ^remove -^R src.)
cm ^partial ^remove c:\workspace\pic01.png --^nodisk
(Removes 'pic01.png' from version control, but keeps it on disk.)
== CMD_DESCRIPTION_PARTIAL_SWITCH ==
Sets a branch as the working branch.
== CMD_USAGE_PARTIAL_SWITCH ==
Usage:
cm ^switch <branch_spec> [--^report | --^silent] [--^workspace=<path>]
(Sets the working branch and updates the workspace.)
cm ^switch <branch_spec> --^configure <+|-path>[ ...] [--^silent]
[--^ignorefailed] [--^ignorecase] [--^workspace=<path>]
(Sets the working branch and runs a workspace configuration like the 'cm
^partial ^configure' command does.)
branch_spec Branch specification. (Use 'cm ^help ^objectspec' to learn
more about branch specs.)
path Paths to be loaded or unloaded. Use double quotes (" ")
to specify paths containing spaces. Use a whitespace to
separate paths. Paths must start with "/".
Options:
--^silent Does not show any output.
--^report Prints a list of the applied changes when the command
is finished. Using '--^silent' will override this setting.
This option only works when the '--^configure' option
is not specified.
--^configure Configures (loads / unloads items) the workspace
after updating the working branch. Check 'cm ^partial
^configure --^help' to learn how to specify the paths
to configure.
--^ignorefailed Skips all errors during the configuration process.
Incorrect paths will not cause the command to stop.
--^ignorecase Ignores casing on the paths. With this flag, option
'--^configure' works for "/Data/Textures" even if the user
writes "/data/teXtures".
--^workspace=path Path where the workspace is located.
== CMD_HELP_PARTIAL_SWITCH ==
Remarks:
This command allows users to update the working branch. After updating the
branch, the command updates the workspace to the new branch as the
'cm ^partial ^update' command would do. However, if the '--^configure' option is
specified, the command allows to configure the workspace using the new
branch configuration as the 'cm ^partial ^configure' command would do.
Examples:
cm ^switch ^br:/main/task
(Sets /main/task as working branch and updates the workspace.)
cm ^switch ^br:/main/task --^configure +/art/images
(Sets /main/task as working branch and configures the workspace to
load the /art/images folder.)
== CMD_DESCRIPTION_PARTIAL_UNCO ==
Undoes the checkout on an item.
== CMD_USAGE_PARTIAL_UNCO ==
Usage:
cm ^partial ^undocheckout | ^unco <item_path>[ ...] [--^silent]
item_path Items to apply the operation. Use double quotes (" ")
to specify paths containing spaces. Use a whitespace to
separate paths.
Use . to apply the operation to current directory.
Options:
--^silent Does not show any output.
== CMD_HELP_PARTIAL_UNCO ==
Remarks:
If an item is checked-out and you do not want to checkin it, you can undo
the checkout using this command. Both files and folders can be unchecked
out. The item will be updated to the state it had before checking it out.
Requirements:
- The item must be under source code control.
- The item must be checked out.
Examples:
cm ^partial ^undocheckout .
(Undoes checkouts in the current directory.)
cm ^partial ^undocheckout pic1.png pic2.png
cm ^unco c:\workspace\design01.png
(Undoes checkouts of the selected files.)
== CMD_DESCRIPTION_PARTIAL_UNDO ==
Undoes changes in a workspace.
== CMD_USAGE_PARTIAL_UNDO ==
Usage:
cm ^partial ^undo [<path>[ ...]] [--^symlink] [-^r | --^recursive]
[<filter>[ ...]]
[--^silent | --^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
path Path of the files or directories to apply the
operation to. Use double quotes (" ") to specify
paths containing spaces. Use a whitespace to
separate paths.
If no path is specified, by default the undo
operation will take all of the files in the current
directory.
filter Applies the specified filter or filters to the given
paths. Use a whitespace to separate filters. See the
Filters section for more information.
Options:
--^symlink Applies the undo operation to the symlink and not
to the target.
-^r Executes the undo recursively.
--^silent Does not show any output.
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag, specifies
how the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag, specifies
how the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag, specifies
how the fields should be separated.
Filters:
If no flag is specified, by default, all changes are undone, but the
paths can be filtered using one or more of the flags below.
If a file or directory matches one or more of the specified kinds of change,
all of the changes on said file or directory will be undone.
For example, if you specify both '--^checkedout' and '--^moved', if a file is
both checkedout and moved, both changes will be undone.
--^checkedout Select checked-out files and directories.
--^unchanged Select files whose content is unchanged.
--^changed Select locally changed or checked-out files and
directories.
--^deleted Select deleted files and directories.
--^moved Select moved files and directories.
--^added Select added files and directories.
== CMD_HELP_PARTIAL_UNDO ==
Remarks:
The ^undo command is dangerous - it undoes work in an irreversible way.
Once the ^undo has finished, it is not possible to recover the previous state
of the files and directories affected by it. If no path is specified
in the arguments, by default it will undo every change in the current
directory, but not recursively.
These are equivalent when executed from the /src directory:
/src
|- file.txt
|- code.cs
\- /test
|- test_a.py
\- test_b.py
cm ^partial ^undo
cm ^partial ^undo *
cm ^partial ^undo file.txt code.cs /test
cm ^partial ^undo .
cm ^partial ^undo /src file.txt code.cs
If you want the operation to be recursive, you must specify the '-^r' flag.
To undo all of the changes below a directory (including changes affecting
the directory itself):
cm ^partial ^undo dirpath -^r
If dirpath is a workspace path, every change in the workspace will be
undone.
Examples:
cm ^partial ^undo . -^r
(Undoes all changes in the current directory recursively. If executed
from the workspace's root, undoes all changes in the entire workspace.)
cm ^partial ^co file.txt
cm ^partial ^undo file.txt
(Undoes the checkout on file.txt.)
^echo ^content >> file.txt
cm ^partial ^undo file.txt
(Undoes the local change to file.txt.)
cm ^partial ^undo src
(Undoes changes to the src directory and its files.)
cm ^partial ^undo src/*
(Undo changes in every file and directory contained in src, without
affecting src.)
cm ^partial ^undo *.cs
(Undo changes to every file or directory that matches *.cs in the current
directory.)
cm ^partial ^undo *.cs -^r
(Undoes changes on every file or directory that matches *.cs in the current
directory and every directory below it.)
cm ^partial ^co file1.txt file2.txt
^echo ^content >> file1.txt
cm ^partial ^undo --^unchanged
(Undoes the checkout of unchanged file2.txt, ignoring locally changed
file1.txt.)
^echo ^content >> file1.txt
^echo ^content >> file2.txt
cm ^partial ^co file1.txt
cm ^partial ^undo --^checkedout
(Undoes the changes in checked-out file file1.txt, ignoring file2.txt as it is
not checked-out.)
cm ^partial ^add file.txt
cm ^partial ^undo file.txt
(Undoes the add of file.txt, making it once again a private file.)
^rm file1.txt
^echo ^content >> file2.txt
cm ^partial ^add file3.txt
cm ^partial ^undo --^deleted --^added *
(Undoes the file1.txt delete and file3.txt add, ignoring the file2.txt
change.)
== CMD_DESCRIPTION_PARTIAL_UPDATE ==
Updates the partial workspace and downloads latest changes.
== CMD_USAGE_PARTIAL_UPDATE ==
Usage:
cm ^partial ^update [<item_path>[ ...]] [--^changeset=<number>]
[--^silent | --^report] [--^dontmerge]
item_path Items to be updated. Use double quotes (" ") to specify
paths containing spaces. Use a whitespace to separate
paths.
Use . to apply update to current directory.
If no path is specified, then the current partial
workspace is fully updated.
Options:
--^changeset Updates the partial workspace to a specific changeset.
--^silent Does not show any output.
--^report Prints a list of the applied changes when the command
is finished. Using '--^silent' will override this setting.
--^dontmerge Does not merge the file conflicts, it just skips them.
The other changes are properly applied. This option can
be useful for automation to avoid user interaction.
== CMD_HELP_PARTIAL_UPDATE ==
Remarks:
The '^partial ^update' command updates the out-of-date files.
The command assumes recursive operation.
If all the specified paths are files inside the same Xlink when using the
'--^changeset' option, then the versions to download are searched in the
specified changeset of the Xlinked repository.
Examples:
cm ^partial ^update
(Updates all in the current partial workspace.)
cm ^partial ^update .
(Updates all current directory children items.)
cm ^partial ^update backgroud-blue.png
(Updates 'backgroud-blue.png' item.)
cm ^partial ^update soft_black.png soft-grey.png
(Updates 'soft_black.png' and 'soft-grey.png' items.)
cm ^partial ^update src --^report
(Updates all 'src' directory children items, printing the applied changes
list at the end.)
cm ^partial ^update src --^changeset=4
(Updates all 'src' directory children items to the content they loaded
in the changeset 4.)
cm ^partial ^update xlink/first.png --^changeset=4
(Updates 'xlink/first.png' item to the content it loaded in the changeset 4
of the Xlinked repository.)
== CMD_DESCRIPTION_PATCH ==
Generates a patch file from a spec or applies a generated patch to the current
workspace.
== CMD_USAGE_PATCH ==
Usage:
cm ^patch <source_spec> [<source_spec>] [--^output=<output_file>]
[--^tool=<path_to_diff>]
Generates a patch file that contains the differences of a branch,
a changeset, or the differences between changesets. It also tracks
differences of text and binary files.
cm ^patch --^apply <patch_file> [--^tool=<path_to_patch>]
Allows to apply the contents of a generated patch file in the current
workspace.
source_spec Full spec of a changeset or a branch. (Use
'cm ^help ^objectspec' to learn more about specs.)
output_file File to save the patch content. It no file is specified,
the patch content will be printed on standard output.
patch_file Patch file to apply in the current workspace.
Options:
--^output Sets the output file of the patch command.
--^tool Sets the application to use (diff or patch).
== CMD_HELP_PATCH ==
Limitations:
If the output patch file already exists, the command will not overwrite it.
When applying a patch, the command will not apply changes to modified files
if they are not present on disk.
Important:
This command requires Diff and Patch tools, publicly available at
http://gnuwin32.sourceforge.net/packages/patch.htm and
http://gnuwin32.sourceforge.net/packages/diffutils.htm
Once installed, it's recommended to add their location to the PATH
environment variable.
Examples:
cm ^patch ^cs:4@default@localhost:8084
(Prints on console the differences of cset 4 in unified format.)
cm ^patch ^br:/main --^output=file.patch
(Generates a patch file with the differences of branch "main".)
cm ^patch ^br:/main --^output=file.patch --^tool=C:\gnu\diff.exe
(Same as above, using a custom exe.)
cm ^patch ^cs:2@default ^cs:4@default
(Prints on console the differences between csets 2 and 4 in unified format.)
cm ^patch --^apply file.patch --^tool=C:\gnu\patch.exe
(Applies the patch in 'file.patch' to the local workspace with a custom exe.)
== CMD_DESCRIPTION_QUERY ==
Executes SQL queries. Requires SQL storage.
== CMD_USAGE_QUERY ==
Usage:
cm ^query <sql_command> [--^outputfile=<output_file>]
[--^solveuser=<column_name>[,...]]
[--^solvepath=<column_name>[,...]]
[--^columnwidth=<value>] [--^nocolumnname]
[--^columnseparator=<sep>] [--^repository=<name>]
sql_command The sql query to be executed.
Options:
--^outputfile Writes the result in an output file.
--^solveuser Sets the specified columns as username columns. The
query interpreter will assume that data of these columns
will be users, and will try to solve them.
--^solvepath Sets the specified columns as itemid column. The query
interpreter will try to solve item id to filesystem
paths.
--^columnwidth Specifies the width of each column to format the output.
--^nocolumnname Does not print column name.
--^columnseparator Uses char as column separator instead of a tab (\t).
--^repository Repository to query.
== CMD_HELP_QUERY ==
Remarks:
This command allows users to execute SQL queries in the server database.
In order to write SQL queries, use these two pre-defined functions to manage
users and paths:
- '^SolveUser(<username>)' that resolves a username into Plastic SCM format.
- '^SolvePath(<path>)' that resolves a disk path into an item id.
Also, you can use options to show query results in a human readable form.
You can use the options '--^solveuser=<column_name>' and
'--^solvepath=<column_name>' to specify columns that query interpreter
must convert to a legible text. You can specify more than one column name,
comma separated.
Examples:
cm ^query "^SELECT * ^FROM ^revision" --^columnwidth=25 --^repository=reptest
(Retrieves data from 'revision' table from repository 'reptest'.)
cm ^query "^SELECT b.^sname ^as br_name, o.^dtimestamp ^as date ^from ^branch b, \
^object o, ^seid s ^where b.^iobjid=o.^iobjid ^and o.^fidowner=s.^iseidid ^and \
s.^scode='^SolveUser(john)'" --^outputfile=query.txt
(Outputs into a file the branches with owner 'john'.)
cm ^query "^select r.^iobjid, r.^fiditem ^as path, s.^scode ^as username ^FROM \
^revision r, ^object o, ^seid s ^WHERE r.^iobjid=o.^iobjid ^and \
o.^fidowner=s.^iseidid ^and o.^dtimestamp>04/25/2014" \
--^solveuser=username --^solvepath=path --^repository=reptest@server2:9095
(Retrieves selected data from selected repository.)
cm ^query "^SELECT * ^FROM ^revision ^WHERE ^fiditem=^SolvePath(c:\mywkpath\info)"
(Retrieves all revision data of path 'info'.)
== CMD_DESCRIPTION_ATTRIBUTE_DELETE ==
Deletes one or more attributes.
== CMD_USAGE_ATTRIBUTE_DELETE ==
Usage:
cm ^attribute | ^att ^delete | ^rm <att_spec>[ ...]
att_spec Attributes to delete. Use a whitespace to separate
attributes.
(Use 'cm ^help ^objectspec' to learn more about attribute
specs.)
== CMD_HELP_ATTRIBUTE_DELETE ==
Remarks:
This command removes one or more attributes.
Examples:
cm ^attribute ^delete ^att:status
(Deletes the attribute 'status'.)
cm ^att ^rm status ^att:integrated@reptest@server2:8084
(Deletes the attributes 'status' and 'integrated'.)
== CMD_DESCRIPTION_ATTRIBUTE_UNSET ==
Unsets an object's attribute.
== CMD_USAGE_ATTRIBUTE_UNSET ==
Usage:
cm ^attribute | ^att ^unset <att_spec> <object_spec>
att_spec Attribute specification. (Use 'cm ^help ^objectspec' to
learn more about attribute specs.)
object_spec Specification of the object to remove the attribute
from. Attributes can be set on: branches, changesets,
shelvesets, labels, items, and revisions.
(Use 'cm ^help ^objectspec' to learn more about specs.)
== CMD_HELP_ATTRIBUTE_UNSET ==
Remarks:
The command unsets an attribute that was previously set on an object. It
does not delete the attribute object itself.
Examples:
cm ^attribute ^unset ^att:status ^br:/main/SCM105
(Removes attribute realization 'status' from branch 'main/SCM105'.)
cm ^att ^unset ^att:integrated@reptest@localhost:8084 ^cs:25@reptest@localhost:8084
(Removes attribute realization 'integrated' from changeset 25, all in
repository 'reptest'.)
== CMD_DESCRIPTION_ATTRIBUTE_RENAME ==
Renames an attribute.
== CMD_USAGE_ATTRIBUTE_RENAME ==
Usage:
cm ^attribute | ^att ^rename <att_spec> <new_name>
att_spec Attribute to rename. (Use 'cm ^help ^objectspec' to learn
more about attribute specs.)
new_name New name for the attribute.
== CMD_HELP_ATTRIBUTE_RENAME ==
Remarks:
This command renames an attribute.
Examples:
cm ^attribute ^rename ^att:status state
(Renames the attribute 'status' to 'state'.)
== CMD_DESCRIPTION_ATTRIBUTE_EDIT ==
Edits the comment of an attribute.
== CMD_USAGE_ATTRIBUTE_EDIT ==
Usage:
cm ^attribute | ^att ^edit <att_spec> <new_comment>
att_spec Attribute to change its comment. (Use 'cm ^help ^objectspec'
to learn more about attribute specs.)
new_comment New comment for the attribute. You can also specify a
default list of values for the attribute.
== CMD_HELP_ATTRIBUTE_EDIT ==
Remarks:
This command changes the comment of an attribute.
To specify a default list of values for the attribute, you just need to
include a line like the following in the attribute comment:
'default: value_one, "value two", value3, "Final value"'.
Examples:
cm ^attribute ^edit ^att:status "The status of a branch in the CI pipeline."
(Edits the comment of the attribute 'status'.)
cm ^attribute ^edit ^att:status "Status of a branch. default: open, resolved, reviewed"
(Edits the comment of the attribute 'status'. And also specifies a list of
values. So when you set the attribute 'status' to an object, you can select
one of the following values: "open", "resolved", or "reviewed".)
== CMD_DESCRIPTION_REPLICATE ==
WARNING: This command is deprecated.
Use 'cm ^pull' (equivalent to '^replicate') and 'cm ^push' (equivalent to
'^replicate --^push').
== CMD_USAGE_REPLICATE ==
== CMD_HELP_REPLICATE ==
== CMD_DESCRIPTION_PULL ==
Pulls a branch from another repo.
== CMD_USAGE_PULL ==
Usage:
cm ^pull <src_br_spec> <dst_rep_spec>
[--^preview] [--^nodata] [TranslateOptions]
[--^user=<usr_name> [--^password=<pwd>] | AuthOptions]
(Direct server-to-server replication. Pulls a branch from a repository.)
cm ^pull <dst_rep_spec> --^package=<pack_file> [AuthOptions]
(Package based replication. Imports the package in the destination repository.)
cm ^pull ^hydrate <dst_br_spec> [<src_rep_spec>]
[--^user=<usr_name> [--^password=<pwd>] | AuthOptions]
(Introduces the missing data for all the changesets of a branch previously
replicated with '--^nodata'. If a repo to obtain the data is not specified,
Plastic tries to use the "replication source" (origin of the replicated
branch)).
cm ^pull ^hydrate <dst_cs_spec> [<src_rep_spec>]
[--^user=<usr_name> [--^password=<pwd>] | AuthOptions]
(Introduces the missing data for a changeset previously replicated with
'--^nodata'. If a repo to obtain the data is not specified, Plastic tries to
use the "replication source").
src_br_spec The branch to pull from a remote repository.
(Use 'cm ^help ^objectspec' to learn more about branch specs.)
dst_br_spec The branch to hydrate.
(Use 'cm ^help ^objectspec' to learn more about branch specs.)
dst_cs_spec The changeset to hydrate.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
dst_rep_spec The destination repository.
(Use 'cm ^help ^objectspec' to learn more about repository
specs.)
--^package Specifies the previously created package file to import
for package based replication.
Useful to move data between servers when there is no
direct network connection.
Refer to 'cm ^push' to create a package file.
Options:
--^preview Gives information about what changes will be pulled but
no changes are actually performed. This option is useful
to check the data that will be transferred before
replicating changes.
--^nodata Replicates the branch changes without replicating the
data. This option is not allowed with package
replication.
TranslateOptions See the Translate options section for more information.
--^user, --^password Credentials to use if the authentication mode is
different in source and destination and there is not a
profile to authenticate to destination.
AuthOptions See the Authentication options section for more
information.
Translate options:
--^trmode=(^copy|^name|^table --^trtable=<translation_table_file>)
The source and destination repositories may use different authentication
modes. The '--^trmode' option specifies how to translate the user names from
the source to the destination. The '--^trmode' must be one of the following
values:
^copy (Default). Means that the user identifiers will be just copied.
^name The user identifiers will be matched by name.
^table Uses a translation table specified in the option '--^trtable'
(see below).
--^trtable=<translation_table_file>
If the translation mode is 'table', a translation table is a file
containing lines in the form <oldname;newname> (one per line). When the
branch is written to the destination repository, the objects created by
a user identified by "oldname" in the source repository will be set
to the user with "newname" on the destination.
Authentication options:
Authentication data can be specified using one of the two following modes:
1) Using authentication parameters: --^authmode=<mode> --^authdata=<data>
--^authmode=(^NameWorkingMode|^LDAPWorkingMode|^ADWorkingMode|^UPWorkingMode)
Examples:
(^LDAPWorkingMode) --^authdata=::0:dave:fPBea2rPsQaagEW3pKNveA
(^UPWorkingMode) --^authdata=dave:fPBea2rPsQaagEW3pKNveA==
The '--^authdata' line is the content of the <^SecurityConfig> entry
in the client.conf file and the profiles.conf file. The profiles.conf
file can be easily generated from the Plastic GUI in the replication
profiles tab under Preferences.
If you are using ^UPWorkingMode, you can simply specify:
--^authmode=^UPWorkingMode --^user=<user> --^password=<psw>
2) Authentication file where you may have a different file for each server
you connect to, containing the credentials for that server.
--^authfile=<authentication_file>
The file contains 2 lines:
Line 1) mode, as described in '--^authmode'
Line 2) authentication data, as described in '--^authdata'
== CMD_HELP_PULL ==
Remarks:
The '^pull' command is able to replicate branches (along with their
changesets) between a source repository and a destination repository.
The repositories can be located at different servers.
There are two replication operations: '^push' and '^pull'.
A '^pull' operation means that the replication operation will demand data
from the source repository to be stored into the destination repository.
The client will connect to the destination repository and, from that host,
it will establish a connection to the source repository to retrieve the
targeted data. During pull it is the destination server which will be
connected to the source.
Although in a typical distributed scenario a developer pushes data from his
local server to the main server, the developer might want to pull the latest
repository updates from the main server, too.
Replication can resolve situations where concurrent changes have been made
on the same branch on two replicated repositories:
- Push: If you try to push your data to a repository having newer changes
than those you are sending, the system will ask you to pull the latest
changes, resolve the merge operation and, finally, try to push again.
- Pull: Whenever you pull changesets from a remote branch, they will be
correctly linked to their parent changesets. If the changeset you pulled
is not a child of the last changeset in the branch, then a multi-headed
scenario will appear. The branch will have more than one 'head', or last
changeset on the branch. You will need to merge the two 'heads' before
being able to push again.
Pull can work in two modes:
1) Direct communication between servers: The destination server will fetch
the data from the source server, automatically synchronizing data for
the specified branch.
2) Import a previously generated package with push and the '--^package' option.
Mode 1) requires the user running the command to be authenticated
by the remote server, either using the default authentication in the
client.conf file, or specifiying the '--^authmode' and '--^authdata' modifiers,
or '--^authmode' and '--^user' and '--^password' if the authentication mode is
^UPWorkingMode.
Mode 2) requires using a package file previously generated with the push
command.
Keep in mind that pull replication works in an indirect way. When executed,
the command asks the destination repository to connect to the source and
obtain the selected branch.
However, this can be done directly by using the push command.
This will make the command replicate the selected branch from source to
destination.
Examples:
cm ^pull ^br:/main@project1@remoteserver:8084 projectx@myserver:8084
(Pulls the 'main' branch from 'remoteserver' to 'myserver'. In this case,
both servers are configured with the same authentication mode.)
cm ^pull ^br:/main@project1@remoteserver:8084 projectx@myserver:8084 \
--^authmode=^LDAPWorkingMode --^authdata=::0:dave:fPBea2rPsQaagEW3pKNveA
(Pulls the same branch as before, but now the remote server is configured
to authenticate users with Active Directory. For instance, I am connecting
from a Linux machine to a Windows server configured to use Active Directory
integrated mode. I will specify my Active Directory user and cyphered
password and pass it as LDAP to the server.)
cm ^pull ^br:/main@project1@remoteserver:8084 projectx@myserver:8084 \
--^authmode=^UPWorkingMode --^user=dave --^password=mysecret
(Pulls the same branch, but now users are authenticated on the remote
server, taking advantage of the user/password database included in
Plastic SCM.)
cm ^pull ^br:/main@project1@remoteserver:8084 projectx@myserver:8084 --^nodata
(Replicates the 'main' branch from 'remoteserver' to 'myserver' without data.)
cm ^pull ^hydrate ^br:/main@projectx@myserver:8084 projectx@remoteserver:8084
(Hydrates all the changesets in the 'main' branch obtaining the data from
the remote server.)
cm ^pull ^hydrate ^cs:122169@projectx@myserver:8084 projectx@remoteserver:8084
(Hydrates changeset 122169 in 'myserver' obtaining the data from the remote
server.)
== CMD_DESCRIPTION_PUSH ==
Pushes a branch to another repo.
== CMD_USAGE_PUSH ==
Usage:
cm ^push <src_br_spec> <dst_rep_spec>
[--^preview] [TranslateOptions]
[--^user=<usr_name> [--^password=<pwd>] | AuthOptions]
(Direct server-to-server replication. Pushes a branch from a repository.)
cm ^push <src_br_spec> --^package=<pack_file> [AuthOptions]
(Package based replication. Creates a replication package in the source
server with the selected branch.)
src_br_spec The branch to push to a remote repository.
(Use 'cm ^help ^objectspec' to learn more about branch specs.)
dst_rep_spec The destination repository.
(Use 'cm ^help ^objectspec' to learn more about repository
specs.)
--^package Specifies path for exporting replication package for
package based replication.
Useful to move data between servers when there is no
direct network connection.
Options:
--^preview Gives information about what changes will be pushed,
but no changes are actually performed. This option is
useful to check the data that will be transferred before
replicating changes.
TranslateOptions See the Translate options section for more information.
--^user, --^password Credentials to use if the authentication mode is
different in source and destination and there is not a
profile to authenticate to destination.
AuthOptions See the Authentication options section for more
information.
Translate options:
--^trmode=(^copy|^name|^table --^trtable=<translation_table_file>)
The source and destination repositories may use different authentication
modes. The '--^trmode' option specifies how to translate the user names
from the source to the destination. The '--^trmode' must be one of the
following values:
^copy (Default). Means that the user identifiers will be just copied.
^name The user identifiers will be matched by name.
^table Uses a translation table specified in the option '--^trtable'
(see below).
--^trtable=<translation_table_file>
If the translation mode is 'table', a translation table is a file
containing lines in the form <oldname;newname> (one per line). When the
branch is written to the destination repository, the objects created by
a user identified by "oldname" in the source repository will be set
to the user with "newname" on the destination.
Authentication options:
Authentication data can be specified using one of the two following modes:
1) Using authentication parameters: --^authmode=<mode> --^authdata=<data>
--^authmode=(^NameWorkingMode|^LDAPWorkingMode|^ADWorkingMode|^UPWorkingMode)
Examples:
(^LDAPWorkingMode) --^authdata=::0:dave:fPBea2rPsQaagEW3pKNveA
(^UPWorkingMode) --^authdata=dave:fPBea2rPsQaagEW3pKNveA==
The '--^authdata' line is the content of the <^SecurityConfig> entry
in the client.conf file and the profiles.conf file. The profiles.conf
file can be easily generated from the Plastic GUI in the replication
profiles tab under Preferences.
If you are using ^UPWorkingMode, you can simply specify:
--^authmode=^UPWorkingMode --^user=<user> --^password=<psw>
2) Authentication file where you may have a different file for each server
you connect to, containing the credentials for that server.
--^authfile=<authentication_file>
The file contains 2 lines:
Line 1) mode, as described in '--^authmode'
Line 2) authentication data, as described in '--^authdata'
== CMD_HELP_PUSH ==
Remarks:
The '^push' command is able to replicate branches (along with their
changesets) between a source repository and a destination repository.
The repositories can be located at different servers.
There are two replication operations: '^push' and '^pull'.
A '^push' operation means that the replication operation will send data
from the source repository to the destination repository. In this case,
the client will connect to the source repository, getting the data to
replicate, and then it will send it to the destination repository. While
the former (source) must have connectivity to the destination, the latter
(destination) will not connect itself to the source.
In a typical distributed scenario, a developer pushes data from his local
server to the main server. Also, the developer might want to pull the latest
repository updates from the main server, too.
Replication can resolve situations where concurrent changes have
been made on the same branch on two replicated repositories.
- Push: If you try to push your data to a repository having newer changes
than those you are sending, the system will ask you to pull the latest
changes, resolve the merge operation and, finally, try to push again.
- Pull: Whenever you pull changesets from a remote branch, they will be
correctly linked to their parent changesets. If the changeset you pulled
is not a child of the last changeset in the branch, then a multi-headed
scenario will appear. The branch will have more than one 'head', or last
changeset on the branch. You will need to merge the two 'heads' before
being able to push again.
Push can work in two modes:
1) Direct communication between servers: The origin server will send
the data to the destination server, automatically synchronizing data
for the specified branch.
2) Export package mode: The client will only connect to the source and
generate a replication package obtaining both data and metadata for the
specified branch. The '--^package' modifier will be used.
Both modes require the user running the command to be authenticated
by the server, either using the default authentication in the client.conf
file, or specifiying the '--^authmode' and '--^authdata' modifiers.
The ^push replication works in a direct way. When executed, the command
will replicate the selected branch from source to destination, instead of
asking the destination repository to connect to the source and obtain the
selected branch (as the pull does).
Examples:
cm ^push ^br:/main@project1@myserver:8084 projectx@remoteserver:8084
(Replicates the 'main' branch from 'myserver' to 'remoteserver'. In this case,
both servers are configured with the same authentication mode.)
cm ^push ^br:/main@project1@myserver:8084 projectx@remoteserver:8084 \
--^authmode=^LDAPWorkingMode --^authdata=::0:dave:fPBea2rPsQaagEW3pKNveA
(Replicates same branch as before, but now the remote server is configured
to authenticate users with Active Directory. For instance, I am connecting
from a Linux machine to a Windows server configured to use Active Directory
integrated mode. I will specify my Active Directory user and cyphered
password and pass it as LDAP to the server.)
cm ^push ^br:/main@project1@myserver:8084 projectx@remoteserver:8084 \
--^authmode=^UPWorkingMode --^user=dave --^password=mysecret
(Replicates the same branch, but now users are authenticated on the remote
server, taking advantage of the user/password database included in
Plastic SCM.)
== CMD_DESCRIPTION_CLONE ==
Clones a remote repository.
== CMD_USAGE_CLONE ==
Usage:
cm ^clone <src_rep_spec> [<dst_rep_spec> | <dst_repserver_spec>]
[--^user=<usr_name> [--^password=<pwd>] | AuthOptions]
[TranslateOptions]
(Direct repository-to-repository clone.)
cm ^clone <src_rep_spec> --^package=<pack_file>
[--^user=<usr_name> [--^password=<pwd>] | AuthOptions]
(Clones to an intermediate package, that can be imported later using a
pull into the destination repository.)
src_rep_spec Source repository of the clone operation.
(Use 'cm ^help ^objectspec' to learn more about repository
specs.)
dst_rep_spec Destination repository of the clone operation. If it
exists, it must be empty. If it does not exist, it will
be created.
If it is not specified, the command will use user's
default repository server.
(Use 'cm ^help ^objectspec' to learn more about repository
specs.)
dst_repserver_spec Destination repository server of the clone operation.
If there is a repository with the same name as
<src_rep_spec> in the destination repository server, it
must be empty. If there is not, it will be created.
If it is not specified, the command will use user's
default repository server.
(Use 'cm ^help ^objectspec' to learn more about repository
server specs.)
Options:
--^user, --^password Credentials to use if the authentication mode is
different in source and destination and there is not a
profile to authenticate to destination.
--^package Exports the specified repository to a package file,
instead of a repository.
Useful for moving data between servers when there is no
direct network connection.
The resulting package must be imported using the
pull command.
TranslateOptions See the Translate options section for more information.
AuthOptions See the Authentication options section for more
information.
Translate options:
--^trmode=(^copy|^name|^table --^trtable=<translation_table_file>)
The source and destination repositories may use different authentication
modes. The '--^trmode' option specifies how to translate the user names from
the source to the destination. The '--^trmode' must be one of the following
values:
^copy (Default). Means that the user identifiers will be just copied.
^name The user identifiers will be matched by name.
^table Uses a translation table specified in the option '--^trtable'
(see below).
--^trtable=<translation_table_file>
If the translation mode is 'table', a translation table is a file
containing lines in the form <oldname;newname> (one per line). When the
branch is written to the destination repository, the objects created by
a user identified by "oldname" in the source repository will be set
to the user with "newname" on the destination.
Authentication options:
Authentication data can be specified using one of the two following modes:
1) Using authentication parameters: --^authmode=<mode> --^authdata=<data>
--^authmode=(^NameWorkingMode|^LDAPWorkingMode|^ADWorkingMode|^UPWorkingMode)
Examples:
(^LDAPWorkingMode) --^authdata=::0:dave:fPBea2rPsQaagEW3pKNveA
(^UPWorkingMode) --^authdata=dave:fPBea2rPsQaagEW3pKNveA==
The '--^authdata' line is the content of the <^SecurityConfig> entry
in the client.conf file and the profiles.conf file. The profiles.conf
file can be easily generated from the Plastic GUI in the replication
profiles tab under Preferences.
If you are using ^UPWorkingMode, you can simply specify:
--^authmode=^UPWorkingMode --^user=<user> --^password=<psw>
2) Authentication file where you may have a different file for each server
you connect to, containing the credentials for that server.
--^authfile=<authentication_file>
The file contains 2 lines:
Line 1) mode, as described in '--^authmode'
Line 2) authentication data, as described in '--^authdata'
== CMD_HELP_CLONE ==
Remarks:
The clone command is able to replicate branches (along with their changesets,
labels, attributes, reviews, and so on) from a source repository to a
destination repository. The repositories can be located at different servers.
The destination repository can be created beforehand, but if it contains
previous data, the clone operation will fail.
The clone operation does NOT clone repository submodules, nor repositories
under a Xlink.
Examples:
cm ^clone awesomeProject@tardis@cloud
(Clones 'awesomeProject' repository from 'tardis@cloud' organization into
a local repository with the same name.)
cm ^clone repo@server.home:9095 repo-local
(Clones 'repo' from 'server.home:9095' into 'repo-local' at user's default
repository server.)
cm ^clone project@192.168.111.130:8084 ^repserver:192.168.111.200:9095
(Clones 'project' repository from '192.168.111.130:8084' into
'project@192.168.111.200:9095'.)
cm ^clone project@ldapserver:8084 --authfile=credentials.txt \
--^trmode=table --^trtable=table.txt
(Clones 'project' repository from 'ldapserver:8084' using an authentication
file against the remote repository, and translating users following the
specified translation table.)
cm ^clone project@server.home:9095 --^package=project.plasticpkg
cm ^repository ^create project@mordor.home:8084
cm ^pull --^package=project.plasticpkg project@mordor.home:8084
(Clones 'project' repository from 'server.home:9095' into the package
'project.plasticpkg', which is later imported through a pull into
the 'project' repository at 'mordor.home:8084'.)
== CMD_DESCRIPTION_REVERT ==
Reverts an item to a previous revision.
== CMD_USAGE_REVERT ==
Usage:
cm ^revert <revspec>
revspec Specification of the changeset that contains the
revision which content will be loaded in the workspace.
(Use 'cm ^help ^objectspec' to learn more about revision
specs.)
== CMD_HELP_REVERT ==
Remarks:
The item must be checked in.
Examples:
cm ^revert dir#^cs:0
cm ^revert C:\mywks\dir\file1.txt#23456
== CMD_DESCRIPTION_REVISION_HISTORY ==
Displays the history of a file or directory.
== CMD_USAGE_REVISION_HISTORY ==
Usage:
cm ^history | ^hist <item_path>[ ...] [--^long | --^format=<str_format>]
[--^symlink] [--^xml[=<output_file>]] [--^encoding=<name>]
item_path Items path. Use a whitespace to separate paths. Use
double quotes (" ") to specify paths containing spaces.
Paths can be server path revisions too.
(Use 'cm ^help ^objectspec' to learn more about specs.)
Options:
--^long Shows additional information.
--^format Retrieves the output message in a specific format. See
Remarks for more info.
--^symlink Applies the history operation to the symlink and not to
the target.
--^xml Prints the output in XML format to the standard output.
It is possible to specify an output file.
--^encoding Used with the '--^xml' option, specifies the encoding to
use in the XML output, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
== CMD_HELP_REVISION_HISTORY ==
Remarks:
This command shows a list of revisions for a given item, and label, branch,
and comment info for each revision.
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} | {^date} Date.
{1} | {^changesetid} Changeset number.
{2} | {^branch} Branch.
{4} | {^comment} Comment.
{5} | {^owner} Owner.
{6} | {^id} Revision id.
{7} | {^repository} Repository.
{8} | {^server} Server.
{9} | {^repspec} Repository spec.
{^tab} Inserts a tab space.
{^newline} Inserts a new line.
Examples:
cm ^history file1.txt "file 2.txt"
cm ^hist c:\workspace --^long
(Displays all information.)
cm ^history link --^symlink
(Applies the history operation to the 'link' file and not to the target,
available on UNIX environments.)
cm ^history ^serverpath:/src/foo/bar.c#^br:/main/task001@myserver
(Retrieves the revision history from a server path in a given branch.)
== CMD_DESCRIPTION_REVISION_TREE ==
Shows the revision tree for an item.
== CMD_USAGE_REVISION_TREE ==
Usage:
cm ^tree <path> [--^symlink]
path Item path.
Options:
--^symlink Applies the operation to the link file and not to the target.
== CMD_HELP_REVISION_TREE ==
Examples:
cm ^tree fichero1.txt
cm ^tree c:\workspace
cm ^tree link --^symlink
(Applies the operation to the link file and not to the target; available on
UNIX environments.)
== CMD_DESCRIPTION_RM ==
Allows the user to delete files and directories.
== CMD_USAGE_RM ==
Usage:
cm ^remove | ^rm <command> [options]
Commands:
^controlled (optional)
^private
To get more information about each command run:
cm ^remove <command> --^usage
cm ^remove <command> --^help
== CMD_HELP_RM ==
Examples:
cm ^remove \path\controlled_file.txt
cm ^remove ^private \path\private_file.txt
== CMD_DESCRIPTION_RM_CONTROLLED ==
Deletes a file or directory from version control.
== CMD_USAGE_RM_CONTROLLED ==
Usage:
cm ^remove | ^rm <item_path>[ ...] [--^format=<str_format>]
[--^errorformat=<str_format>] [--^nodisk]
item_path Items path to remove. Use double quotes (" ") to specify
paths containing spaces. Use a whitespace to separate
paths.
Options:
--^format Retrieves the output progress message in a specific
format. See the Examples for more information.
--^errorformat Retrieves the error message (if any) in a specific
format. See the Examples for more information.
--^nodisk Removes from version control, but keeps the item on
disk.
== CMD_HELP_RM_CONTROLLED ==
Remarks:
Items are deleted from disk. Removed items are removed from the parent
directory in the source code control.
Requirements:
- The item must be under source code control.
Reading input from stdin:
The '^remove' command can read paths from stdin. To do this, pass a single
dash "-".
Example: cm ^remove -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify which files to remove.
Example:
dir /S /B *.c | cm ^remove -
(In Windows, removes all .c files in the workspace.)
Examples:
cm ^remove src
(Removes 'src'. If src is a directory, this is the same as
'cm ^remove -^R src'.)
cm ^remove c:\workspace\file.txt --^format="{0} - REMOVED" \
--^errorformat="{0} - ERROR REMOVING"
(Removes 'file.txt' from version control and from disk, writing
"c:\workspace\file.txt - ^REMOVED" if the operation succeeded, or
"c:\workspace\file.txt - ^ERROR ^REMOVING" otherwise.)
cm ^remove c:\workspace\file.txt --^nodisk
(Removes 'file.txt' from version control, but keeps it on disk.)
== CMD_DESCRIPTION_RM_PRIVATE ==
Deletes a private file or directory.
Warning: files deleted using the command are permanently erased, and are not
recoverable. It is recommended that you use the '--^dry-run' option to check
which files will be affected by the command.
== CMD_USAGE_RM_PRIVATE ==
Usage:
cm ^remove | ^rm ^private <path>[ ...] [-^R | -^r | --^recursive] [--^ignored]
[--^verbose] [--^dry-run]
path Path of the files or directories to remove. Use double
quotes (" ") to specify paths containing spaces. Use a
whitespace to separate paths.
Options:
--^r Recursively deletes private files from within controlled
directories.
--^ignored Deletes also ignored and cloaked files and directories.
--^verbose Prints all affected paths.
--^dry-run Runs the command without making any changes on disk.
== CMD_HELP_RM_PRIVATE ==
Remarks:
If the path is a private file or directory, it will be deleted from disk.
If the path is a controlled file, the command fails.
If the path is a controlled directory, the command fails unless you
specify the '-^r' option, in which case it will delete all private files and
directories below the specified directory.
Examples:
cm ^remove ^private private_directory
(Deletes 'private_directory'.)
cm ^remove ^private c:\workspace\controlled_directory
(Fails, because 'controlled_directory' is not private.)
cm ^remove ^private -^r c:\workspace\controlled_directory
(Deletes all private files and directories below 'controlled_directory'.)
cm ^rm ^private --^dry-run --^verbose c:\workspace\controlled_directory -^r
(Shows all of the paths affected by the deletion of private files below
'controlled_directory' without actually deleting anything.)
cm ^rm ^private --^verbose c:\workspace\controlled_directory -^r
(Shows all of the paths affected by the deletion of private files below
'controlled_directory', performing the delete.)
== CMD_DESCRIPTION_TRIGGER_DELETE ==
Deletes a trigger.
== CMD_USAGE_TRIGGER_DELETE ==
Usage:
cm ^trigger | ^tr ^delete | ^rm <subtype-type> <position_number>
[--^server=<repserverspec>]
subtype-type Trigger execution and trigger operation.
Type 'cm ^showtriggertypes' to see a list of trigger
types.
position_number Position assigned to the trigger when it was created.
Options:
--^server Deletes the trigger on the specified server.
If no server is specified, executes the command on the
one configured on the client.
== CMD_HELP_TRIGGER_DELETE ==
Examples:
cm ^trigger ^delete ^after-setselector 4
cm ^tr ^rm ^after-setselector 4
== CMD_DESCRIPTION_ATTRIBUTE_SET ==
Sets an attribute on a given object.
== CMD_USAGE_ATTRIBUTE_SET ==
Usage:
cm ^attribute | ^att ^set <att_spec> <object_spec> <att_value>
att_spec Attribute specification. (Use 'cm ^help ^objectspec' to
learn more about attribute specs.)
object_spec Specification of the object to set the attribute on.
Attributes can be set on: branches, changesets,
shelvesets, labels, items, and revisions.
(Use 'cm ^help ^objectspec' to learn more about specs.)
att_value The attribute value to set to the object.
== CMD_HELP_ATTRIBUTE_SET ==
Remarks:
An attribute can be set on an object to save additional information for
this object.
Attributes can be set on the following objects: branches, changesets,
shelvesets, labels, items, and revisions.
Examples:
cm ^attribute ^set ^att:status ^br:/main/SCM105 open
(Sets attribute 'status' to branch 'SCM105' with value 'open'.)
cm ^att ^set ^att:integrated@reptest@server2:8084 ^lb:LB008@reptest@server2:8084 yes
(Sets attribute 'integrated' to label 'LB008' in repository 'reptest' with
value 'yes'.)
== CMD_DESCRIPTION_SETOWNER ==
Sets the owner of an object.
== CMD_USAGE_SETOWNER ==
Usage:
cm ^setowner | ^sto --^user=<usr_name> | --^group=<group> <object_spec>
--^user User name. New owner of the object.
--^group Group name. New owner of the object.
object_spec Specification of the object to set the new owner on.
The owner can be set on the following objects:
repository server, repository, branch, changeset,
label, item, revision and attribute.
(Use 'cm ^help ^objectspec' to learn more about specs.)
== CMD_HELP_SETOWNER ==
Remarks:
The owner of an object can be a user or a group.
The owner can be set on the following objects: repository server,
repository, branch, changeset, label, item, revision, and attribute.
Examples:
cm ^setowner --^user=john ^repserver:localhost:8084
(Sets 'john' as repository server owner.)
cm ^sto --^group=development ^rep:mainRep@PlasticServer:8084
(Sets 'development' group as owner of 'mainRep' repository.)
== CMD_DESCRIPTION_SETSELECTOR ==
Sets the selector to a workspace.
== CMD_USAGE_SETSELECTOR ==
This command is deprecated. It is still present for backwards compatibility
but selectors were largely deprecated in Plastic SCM 4.0. Selectors still
exist to specify the working branch or changeset, but the old rules to
filter paths are no longer supported.
Usage:
cm ^setselector | ^sts [--^file=<selector_file>] [--^ignorechanges]
[--^forcedetailedprogress] [<wk_path> | <wk_spec>]
Options:
--^file File to load a selector from.
--^ignorechanges Ignores the pending changes warning message that is
shown if there are pending changes detected when
updating the workspace.
--^forcedetailedprogress Forces detailed progress even when standard output
is redirected.
wk_path Path of the workspace to set the selector.
wk_spec Workspace specification. (Use 'cm ^help ^objectspec'
to learn more about workspace specs.)
== CMD_HELP_SETSELECTOR ==
Remarks:
This command sets the selector of a workspace.
A workspace needs information to load revisions from the repository.
To get this information, Plastic SCM uses a selector.
Using a selector, it is possible to load revisions from a given branch,
label, or changeset.
If a file to load the selector is not specified, the default Operating
System editor will be executed.
Sample selector:
^repository "^default" // working repository
^path "/" // rules will be applied to the root directory
^branch "/^main" // obtain latest revisions from ^br:/^main
^checkout "/^main" // place checkouts on branch ^br:/^main
Examples:
cm ^sts
(Opens the current selector file to be applied.)
cm ^sts ^wk:workspace_projA@reptest
(Opens the specified selector file to be applied.)
cm ^setselector --^file=c:\selectors\sel.xml
(Sets the specified selector file in the current workspace.)
cm ^setselector --^file=c:\selectors\sel.xml ^wk:MyWorkspace
(Sets the specified selector file in the selected workspace.)
== CMD_DESCRIPTION_SHELVE ==
Shelves the contents of checked-out items.
== CMD_USAGE_SHELVE ==
This command is deprecated. Use 'cm ^shelveset' instead.
Usage:
cm ^shelve [<item_path>+] [--^all] [--^dependencies]
[-^c=str_comment | -^commentsfile=<comments_file>]
[--^encoding=name] [--^comparisonmethod=comp_method]
(Shelves the contents.)
cm ^shelve --^apply=<sh_spec> [--^mount]
(Applies a stored shelveset.)
--^apply Restores the shelved contents of the specified shelveset.
Shelve specification: check 'cm ^help ^objectspec'.
cm ^shelve --^delete=<sh_spec>
(Removes a stored shelveset.)
--^delete Removes the specified shelveset.
Shelveset specification: check 'cm ^help ^objectspec'.
Options:
item_path Items to be shelved, separated by spaces. Quotes (") can
be used to specify paths containing spaces.
--^all The items changed, moved and deleted locally, on the
given paths, will also be included.
--^dependencies Includes local change dependencies in the items to
shelve.
-^c Applies the specified comment to the created shelveset.
-^commentsfile Applies the comment in the specified file to the created
shelveset.
--^encoding Specifies the output encoding, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^comparisonmethod Sets the comparison method. See remarks for more info.
--^mount The mount point for the given repository.
== CMD_HELP_SHELVE ==
Remarks:
If neither <item_path> nor any option is specified, the shelve will involve
all the pending changes in the workspace.
The shelve operation is always applied recursively from the given path.
Requirements to shelve an item:
- The item must be under source code control.
- The item must be checked out or changed (--^all option must be used).
Comparison methods:
^ignoreeol Ignores end of line differences.
^ignorewhitespaces Ignores whitespace differences.
^ignoreeolwhitespaces Ignores end of line and whitespace differences.
^notignore Detects end of line and whitespace differences.
Set PLASTICEDITOR environment variable to specify an editor to type the
comment.
Examples:
cm ^shelve -^c="my comment"
(Shelves all the pending changes in the current workspace including a
comment.)
cm ^shelve file1.txt "file 2.txt" -^commentsfile=commentshelve.txt
(Shelves the selected pending changes and applies the comment in the
commentshelve.txt file.)
cm ^shelve --^apply=^sh:3
(Applies a stored shelveset.)
cm ^shelve --^delete=^sh:3
(Removes a stored shelveset.)
cm ^status --^short --^changelist=pending_to_review | cm ^shelve -
(Shelves client changelist.
The command above lists the paths in the changelist named
'pending_to_review' and the path list is redirected to the input of the
shelve command.)
== CMD_DESCRIPTION_SHELVESET ==
Allows the user to manage shelvesets.
== CMD_USAGE_SHELVESET ==
Usage:
cm ^shelveset <command> [options]
Commands:
^create | ^mk
^delete | ^rm
^apply
To get more information about each command run:
cm ^shelveset <command> --^usage
cm ^shelveset <command> --^help
== CMD_HELP_SHELVESET ==
Examples:
cm ^shelveset ^create -^c="my comment"
cm ^shelveset ^delete ^sh:3
cm ^shelve ^apply ^sh:3
== CMD_DESCRIPTION_SHELVESET_CREATE ==
Shelves pending changes.
== CMD_USAGE_SHELVESET_CREATE ==
Usage:
cm ^shelveset ^create | ^mk [<item_path>[ ...]] [--^all] [--^dependencies]
[-^c=<str_comment> | -^commentsfile=<comments_file>]
Options:
item_path Items to shelve. Use a whitespace to separate user names.
Use double quotes (" ") to specify paths containing
spaces.
--^all The items changed, moved, and deleted locally, on the
given paths, will also be included.
--^dependencies Includes local change dependencies into the items to
shelve.
-^c Applies the specified comment to the created shelve.
-^commentsfile Applies the comment in the specified file to the created
shelve.
== CMD_HELP_SHELVESET_CREATE ==
The '^shelveset ^create' command stores the contents of checked out items inside the
repository. This way the contents are protected without the need to
checkin the files.
Remarks:
If neither <item_path> nor any option is specified, the shelveset will
include all the pending changes in the workspace.
The '^shelveset ^create' operation is always applied recursively from the
given path.
Requirements to shelve an item:
- The item must be under source code control.
- The item must be checked out or changed ('--^all' option must be used).
Set PLASTICEDITOR environment variable to specify an editor to type the
comment.
Examples:
cm ^shelveset ^create -^c="my comment"
(Shelves all the pending changes in the current workspace including a
comment.)
cm ^shelveset file1.txt "file 2.txt" -^commentsfile=commentshelve.txt
(Shelves the selected pending changes and applies the comment in the
'commentshelve.txt' file. Note, '^create' is the default subcommand.)
cm ^status --^short --^changelist=pending_to_review | cm ^shelveset -
(Shelves client changelist.
The command above lists the paths in the changelist named
'pending_to_review' and the path list is redirected to the input of the
'^shelveset' command.)
== CMD_DESCRIPTION_SHELVESET_DELETE ==
Deletes a shelveset.
== CMD_USAGE_SHELVESET_DELETE ==
Usage:
cm ^shelveset ^delete | ^rm <sh_spec>
sh_spec Shelveset specification. (Use 'cm ^help ^objectspec' to
learn more about shelveset specs.)
== CMD_HELP_SHELVESET_DELETE ==
The '^shelveset ^delete' command deletes a shelveset.
Examples:
cm ^shelveset ^delete ^sh:3
(Removes a stored shelveset.)
== CMD_DESCRIPTION_SHELVESET_APPLY ==
Applies a stored shelveset.
== CMD_USAGE_SHELVESET_APPLY ==
Usage:
cm ^shelveset ^apply <sh_spec> [--^mount] [--^encoding=<name>]
[--^comparisonmethod=(^ignoreeol | ^ignorewhitespaces| \
^ignoreeolwhitespaces | ^notignore)]
sh_spec Shelveset specification. (Use 'cm ^help ^objectspec' to
learn more about shelveset specs.)
Options:
--^mount The mount point for the given repository.
--^encoding Specifies the output encoding, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^comparisonmethod Sets the comparison method. See Remarks for more info.
== CMD_HELP_SHELVESET_APPLY ==
The '^shelveset ^apply' command restores the contents of a stored shelveset.
Remarks:
Comparison methods:
^ignoreeol Ignores end of line differences.
^ignorewhitespaces Ignores whitespace differences.
^ignoreeolwhitespaces Ignores end of line and whitespace differences.
^notignore Detects end of line and whitespace differences.
Examples:
cm ^shelveset ^apply ^sh:3
(Applies a stored shelve.)
== CMD_DESCRIPTION_SHOW_FIND_OBJECTS ==
Lists objects and attributes.
== CMD_USAGE_SHOW_FIND_OBJECTS ==
Usage:
cm ^showfindobjects
== CMD_HELP_SHOW_FIND_OBJECTS ==
Available objects and attributes:
^attribute:
You can find attributes by filtering using the following fields:
^type : string.
Example:
cm ^find ^attribute "^where ^type = 'status'"
(Finds all attributes of type 'status'.)
^value : string.
^date : date.
Check "date constants" for more info in this guide.
Example:
cm ^find ^attribute "^where ^date > '^this ^week'"
(Finds all attributes applied during the current week.)
^owner : user.
Admits special user '^me'.
Example:
cm ^find ^attribute "^where ^value = 'resolved' ^and ^owner = '^me'"
(Finds all attributes with value 'resolved' applied by me.)
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^comment : string.
^srcobj : object spec: item path, branch, changeset, revision, or label.
Use 'cm ^help ^objectspec' to learn how to specify these objects.
Examples:
cm ^find ^attribute "^where ^srcobj = '^item:readme.txt'"
(Finds the attributes applied to the item 'readme.txt'.)
cm ^find ^attribute "^where ^srcobj = '^br:/main/scm23343'"
(Finds the attributes applied to the branch scm23343.)
cm ^find ^attribute "^where ^srcobj = '^rev:readme.txt#^br:/main/task002'"
(Finds the attributes applied to the specified revision.)
cm ^find ^attribute "^where ^srcobj = '^rev:^revid:1126'"
(Finds the attributes applied to the specified revision id.)
^ID : integer.
^attributetype:
You can find attribute types by filtering using the following fields:
^name : string.
Example:
cm ^find ^attributetype "^where ^name ^like 'st%'"
(Finds all attribute where name starts with 'st'.)
^value : string.
^date : date.
Check "date constants" for more info in this guide.
Example:
cm ^find ^attribute "^where ^date > '^today'"
(Finds all attributes applied today.)
^owner : user.
Admits special user '^me'.
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^comment : string.
Example:
cm ^find ^attributetype "^where ^comment != ''" --^xml
(Finds all attribute types that have a comment and prints the
output in XML format to the standard output.)
^source : object spec: item path, branch, changeset or label.
Use 'cm ^help ^objectspec' to learn how to specify these objects.
Example:
cm ^find ^attributetype "^where ^source = '^item:readme.txt'"
(Finds all attribute types in item 'readme.txt'.)
cm ^find ^attributetype "^where ^source = '^cs:30'"
(Finds all attribute types in changeset '30'.)
cm ^find ^attributetype "^where ^source = '^lb:v0.14.1'"
(Finds all attribute types in label 'v0.14.1'.)
^ID : integer.
Replication field. Check "replication related fields" below.
^ReplLogId
^ReplSrcDate
^ReplSrcId
^ReplSrcRepository
^ReplSrcServer
^branch:
You can find branches by filtering using the following fields:
^name : string.
Example:
cm ^find ^branch "^where ^name ^like 'scm23%'"
(Finds branches which name starts with 'scm23'.)
^date : date.
Check "date constants" for more info in this guide.
Example:
cm ^find ^branch "^where ^date > '^one ^week ^ago'"
(Finds branches created during the last week.)
^changesets : date (of the changesets in the branch).
Check "date constants" for more info in this guide.
Example:
cm ^find ^branch "^where ^changesets >= '^today'"
(Finds branches with changesets created today.)
^attribute : string.
^attrvalue : string.
Example:
cm ^find ^branch "^where ^attribute = 'status' ^and ^attrvalue = 'failed'"
(Finds branches that have the attribute 'status' and which
value is 'failed'.)
^owner : user.
Admits special user '^me'.
^parent : branch spec.
Use 'cm ^help ^objectspec' to learn how to specify this object.
Example:
cm ^find ^branch "^where ^owner != '^me' ^and ^parent != '^br:/main'"
(Finds branches created by other than me and which parent
branch is not '/main'.)
^comment : string.
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^ID : integer.
Example:
cm ^find ^branch "^where ^id = 2029607"
(Finds the branch which id is 2029607.)
Replication fields. Check "replication related fields" below.
^ReplLogId
^ReplSrcDate
^ReplSrcId
^ReplSrcRepository
^ReplSrcServer
^changeset:
You can find changesets by filtering using the following fields:
^branch : branch spec.
Use 'cm ^help ^objectspec' to learn how to specify this
object.
Example:
cm ^find ^changeset "^where ^branch = '/main/scm23119'"
(Finds all changesets in branch 'scm23119'.)
^changesetid : integer.
^attribute : string.
Example:
cm ^find ^changeset "^where ^attribute = 'status'"
(Finds the changesets with the attribute 'status'.)
^attrvalue : string.
^date : date.
Check "date constants" for more info in this guide.
^owner : user.
Admits special user '^me'.
Example:
cm ^find ^changeset "^where ^date >= '6/8/2018' ^and ^owner != '^me'"
(Finds all changesets with creation date equal or
greater than 6/8/2018 and created by others than me.)
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
Example:
cm ^find ^changeset "^where ^guid = '1b30674f-14cc-4fd7-962b-676c8a6f5cb6'"
(Finds the changeset with the specified guid.)
^comment : string.
Example:
cm ^find ^changeset "^where ^comment = ''"
(Finds the changesets with no comments.)
^onlywithrevisions : boolean.
To filter whether a cset has revisions or not.
Example:
cm ^find ^changeset "^where ^onlywithrevisions = 'false'"
(Finds changesets with no revisions.)
^returnparent : boolean.
A way to return the parent of a cset. Good for scripting.
Example:
cm ^find ^changeset "^where ^changesetid = 29 ^and ^returnparent = 'true'"
(Finds the parent of changeset 29.)
^parent : changeset id (integer).
Example:
cm ^find ^changeset "^where ^parent = 548"
(Finds all changesets which parent is cset 548.)
^ID : integer.
Replication fields. Check "replication related fields" below.
^ReplLogId
^ReplSrcDate
^ReplSrcId
^ReplSrcRepository
^ReplSrcServer
^label:
You can find labels by filtering using the following fields:
^name : string.
Example:
cm ^find ^label "^where ^name ^like '7.0.16.%'"
(Finds the labels with a name that starts with '7.0.16.'.)
^attribute : string.
^attrvalue : string.
^date : date.
Check "date constants" for more info in this guide.
Example:
cm ^find ^label "^where ^date >= '^this ^month' ^and \
^attribute = 'publish-status' ^and ^attrvalue != 'PUBLISHED'"
(Finds the labels created this month with an attribute 'publish-status'
set to a value other than 'PUBLISHED'.)
^owner : user.
Admits special user '^me'.
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^branch : branch spec.
Use 'cm ^help ^objectspec' to learn how to specify this object.
Example:
cm ^find ^label "^where ^branch = '/main'"
(Finds all labels applied to the main branch.)
^branchid : integer.
^changeset : changeset id (integer).
Example:
cm ^find ^label "^where ^changeset = 111733"
(Finds the labels applied to changeset 111733.)
^comment : string.
^ID : integer.
Replication fields. Check "replication related fields" below.
^ReplLogId
^ReplSrcDate
^ReplSrcId
^ReplSrcRepository
^ReplSrcServer
^merge:
You can find merges by filtering using the following fields:
^srcbranch : branch spec.
Use 'cm ^help ^objectspec' to learn how to specify this object.
Example:
cm ^find ^merge "^where ^srcbranch = '^br:/main'"
(Finds merges from the main branch.)
^srcchangeset : changeset id (integer).
^dstbranch : branch spec.
Use 'cm ^help ^objectspec' to learn how to specify this object.
^dstchangeset : changeset id (integer).
Example:
cm ^find ^merge "^where ^dstchangeset = 108261" \
--^format="{^srcbranch} {^srcchangeset} {^dstbranch} {^dstchangeset} {^owner}"
(Finds the merges to changeset 108261 and prints the
formatted output showing the source (branch and cset id),
the destination (branch and cset id), and the merge owner.)
^date : date.
Check "date constants" for more info in this guide.
^owner : user.
Admits special user '^me'.
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^type : string.
Possible values are '^merge', '^cherrypick',
'^cherrypicksubstractive', '^interval', '^intervalcherrypick'
and '^intervalcherrypicksubstractive'
Example:
cm ^find ^merge "^where ^type = '^cherrypick' ^and ^owner = '^me'"
(Finds all my cherrypicks.)
^ID : integer.
^replicationlog:
You can find replication log by filtering using the following fields:
^branch : branch spec.
Use 'cm ^help ^objectspec' to learn how to specify this object.
Example:
cm ^find ^replicationlog "^where ^branch = '/main/gm22358'"
(Finds the replication logs of branch 'gm22358'.)
^repositoryname : string.
^owner : user.
Admits special user '^me'.
^date : date.
Check "date constants" for more info in this guide.
^server : string.
^package : boolean.
Example:
cm ^find ^replicationlog "^where ^package = 'T' ^and ^server ^like '%cloud%'"
(Finds the replication logs created from package which
server name contains 'cloud'.)
^ID : integer.
^review:
You can find code reviews by filtering using the following fields:
^status : string.
^assignee : string.
Example:
cm ^find ^review "^where ^status = 'pending' ^and ^assignee = '^me'"
(Finds all my pending reviews.)
^title : string.
^target : object spec: branch or changeset.
Use 'cm ^help ^objectspec' to learn how to specify this object.
Example:
cm ^find ^review "^where ^target = '^br:/main/scm17932'"
(Finds the reviews related to branch 'scm17932'.)
^targetid : integer.
^targettype : string.
Possible values are '^branch' and '^changeset'.
Example:
cm ^find ^review "^where ^targettype = '^changeset'"
(Finds the reviews which target type is changeset.)
^date : date.
Check "date constants" for more info in this guide.
^owner : user.
Admits special user '^me'.
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^ID : integer.
^revision:
You can find revisions by filtering using the following fields:
^branch : branch spec.
Use 'cm ^help ^objectspec' to learn how to specify this object.
^changeset : changeset id (integer).
Example:
cm ^find ^revision "^where ^changeset >= 111756"
(Finds the revisions created in changeset 111756
and later.)
^item : string or integer.
^itemid : integer.
Examples:
cm ^find ^revision "^where ^item = 'readme.txt' ^or ^itemid = 2250"
(Finds the revisions of item 'readme.txt' plus
item id 2250.)
cm ^find ^revision "^where ^item = 'readme.txt' ^or ^item = 2250"
(Gets the same revisions as the previous example.)
^attribute : string.
^attrvalue : string.
Example:
cm ^find ^revision "^where ^attribute = 'status' ^and ^attrvalue != 'open'"
(Finds the revisions with attribute 'status' which
value is other than 'open'.)
^archived : boolean.
Example:
cm ^find ^revision "^where ^archived = 'true'"
(Finds the revisions that are archived in an
external storage.)
^comment : string.
^date : date.
Check "date constants" for more info in this guide.
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^owner : user.
Admits special user '^me'.
^parent : revision id (integer).
^returnparent : boolean.
^shelve : shelve id (integer).
^size : integer (in bytes).
^type : string.
Possible values are '^dir', '^bin', and '^txt'.
Example:
cm ^find ^revision "^where ^type = '^txt' and \
^size > 300000 ^and ^owner = '^me' and ^date >= '2 ^months ^ago'"
(Finds the text revisions created by me two months
ago and with size greater than about 3MB.)
^workspacecheckoutid : integer.
^ID : integer.
Replication fields. Check "replication related fields" below.
^ReplLogId
^ReplSrcDate
^ReplSrcId
^ReplSrcRepository
^ReplSrcServer
^shelve:
You can find shelves by filtering using the following fields:
^owner : user.
Admits special user '^me'.
^date : date.
Check "date constants" for more info in this guide.
Example:
cm ^find ^shelve "^where ^owner != '^me' ^and ^date >= '^1 ^years ^ago'"
(Finds the shelves created by others than me during the last
year.)
^attribute : string.
^attrvalue : string.
^comment : string.
^GUID : Global Unique Identifier.
Hexadecimal id in the format xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.
^parent : integer.
^shelveid : integer.
Example:
cm ^find ^shelve "^where ^shelveid = 2"
(Finds the shelve with name 2.)
^ID : integer.
Example:
cm ^find ^shelve "^where ^id >= 3848"
(Finds the shelves which object id is greater than 3848.)
Replication fields. Check "replication related fields" below.
^ReplLogId
^ReplSrcDate
^ReplSrcId
^ReplSrcRepository
^ReplSrcServer
Replication related fields:
Many objects track replication data, meaning Plastic tracks where they were
originally created.
The fields you can use are:
^ReplSrcServer : repspec. Stands for "replication source server".
Server where the object was replicated from.
Example:
cm ^find ^branch "^where ^replsrcserver='skull.codicefactory.com:9095'"
(Finds the branches replicated from server 'skull'.)
^ReplSrcRepository : string. Stands for "replication source repo". It is
the repository where the object was replicated from.
Example:
cm ^find ^branch "^where ^replsrcserver = 'skull.codicefactory.com:9095' \
^and ^replsrcrepository = 'codice'"
(Finds the branches replicated from server 'skull'
and from repository 'codice'.)
^ReplLogId : integer. ID of the replication operation. In Plastic,
each time new objects are created from a replica,
a new 'replicationlog' is created.
Example:
cm ^find ^revision "^where ^repllogid = 2019974"
(Finds the revisions replicated from replica
2019974.)
^ReplSrcDate : date. It is the date when the replica actually took
place.
Replicated objects will retain its original creation
date, o this field is useful if you want to find
objects that where replicated within a specific
timeframe.
Example:
cm ^find ^label "^where ^replsrcdate >= '^one ^month ^ago' \
^and ^date >= '15 ^days ^ago'"
(Finds the labels created 15 days ago and were
replicated one month ago.)
cm ^find ^replicationlog "^where ^date > '^one ^week ^ago'"
8780433 27/09/2018 8:49:38 codice@BACKYARD:8087 F mbarriosc
(Finds the replication logs created one week ago.)
Now, you can check that the replicated branch was
created before it was replicated over:
cm ^find ^branch "^where ^repllogid = 8780433"
8780443 26/09/2018 12:20:55 /main/scm23078 maria codice T
^ReplSrcId : integer. It is the ID of the replication source server.
You can discover this ID searching for
'^replicationsource' objects with the 'cm ^find' command.
Example:
cm ^find ^replicationsource
7860739 codice@AFRODITA:8087 d9c4372a-dc55-4fdc-ad3d-baeb2e975f27
8175854 codice@BACKYARD:8087 66700d3a-036b-4b9a-a26f-adfc336b14f9
Now, you can find the changesets replicated from
codice@AFRODITA:8087:
cm ^find ^changesets "^where ^replsrcid = 7860739"
Date constants:
You can use date formats that follow your machine localization settings.
For example, if your computer displays dates in the format 'MM-dd-yyyy',
you can use dates such as '12-31-2019' in your queries.
You can also use the following constants to simplify your queries:
'^today' : today's date.
'^yesterday' : yesterday's date.
'^this ^week' : current week's Monday date.
'^this ^month' : current month's 1st day date.
'^this ^year' : current year's January 1st date.
'^one ^day ^ago' : one day before the current date.
'^one ^week ^ago' : seven days before the current date.
'^one ^month ^ago' : one month before the current date.
'n ^days ^ago' : 'n' days before the current date.
'n ^months ^ago' : 'n' months before the current date.
'n ^years ^ago' : 'n' years before the current date.
The following '^where' clauses are valid for fields of type '^date':
'(...) ^where ^date > '^today' (...)'
'(...) ^where ^date < '^yesterday' (...)'
'(...) ^where ^date > '^this ^week' (...)'
'(...) ^where ^date > '^this ^month' (...)'
'(...) ^where ^date < '^one ^day ^ago' ^and ^date > '3 ^days ^ago' (...)'
'(...) ^where ^date < '^one ^week ^ago' ^and ^date > '3 ^weeks ^ago' (...)'
'(...) ^where ^date < '^one ^month ^ago' ^and ^date > '3 ^months ^ago' (...)'
'(...) ^where ^date > '1 ^year ^ago' (...)'
You can also force a specific date format on the 'cm ^find' command using the
--^dateformat flag. Check 'cm ^find --^help' for further details.
== CMD_DESCRIPTION_TRIGGER_SHOWTYPES ==
Displays available trigger types.
== CMD_USAGE_TRIGGER_SHOWTYPES ==
Usage:
cm ^trigger ^showtypes
== CMD_DESCRIPTION_SHOWACL ==
Shows the ACL of an object.
== CMD_USAGE_SHOWACL ==
Usage:
cm ^showacl | ^sa <object_spec> [--^extended] [--^xml[=<output_file>]]
[--^encoding=<name>]
object_spec Specification of the object to show the ACL of.
The valid objects for this command are:
repserver, repository, branch, changeset, label, item,
and attribute.
(Use 'cm ^help ^objectspec' to learn more about specs.)
Options:
--^extended Shows ACL hierarchy tree.
--^xml Prints the output in XML format to the standard output.
It is possible to specify an output file.
--^encoding Used with the '--^xml' option, specifies the encoding to
use in the XML output, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
== CMD_HELP_SHOWACL ==
Examples:
cm ^showacl ^repserver:PlasticServer:8084
(Shows the ACL of the selected server.)
cm ^sa ^br:/main --^extended
(Shows the ACL hierarchy tree of the selected branch specification.)
== CMD_DESCRIPTION_SHOWCOMMANDS ==
Shows all the available commands.
== CMD_USAGE_SHOWCOMMANDS ==
Usage:
cm ^showcommands
== CMD_HELP_SHOWCOMMANDS ==
== CMD_DESCRIPTION_SHOWOWNER ==
Shows the owner of an object.
== CMD_USAGE_SHOWOWNER ==
Usage:
cm ^showowner | ^so <object_spec>
object_spec Specification of the object to show the owner of.
The object must be one of the following:
repository server, repository, branch, changeset,
label, attribute, revision, and item.
(Use 'cm ^help ^objectspec' to learn more about specs.)
== CMD_HELP_SHOWOWNER ==
Remarks:
This command displays the owner of an object. The owner can be a user or
a group. The owner can be modified with 'cm ^setowner' command.
Examples:
cm ^showowner ^repserver:PlasticServer:8084
(Shows the owner of the selected server.)
cm ^so ^item:samples\
(Shows the owner of the selected item specification.)
== CMD_DESCRIPTION_SHOWPERMISSIONS ==
Lists the available permissions.
== CMD_USAGE_SHOWPERMISSIONS ==
Usage:
cm ^showpermissions | ^sp
== CMD_HELP_SHOWPERMISSIONS ==
Examples:
cm ^showpermissions
== CMD_DESCRIPTION_SHOWSELECTOR ==
Shows the workspace selector.
== CMD_USAGE_SHOWSELECTOR ==
This command is deprecated. It is still present for backwards compatibility
but selectors were largely deprecated in Plastic SCM 4.0. Selectors still
exist to specify the working branch or changeset, but the old rules to
filter paths are no longer supported.
Usage:
cm ^showselector | ^ss [<wk_path> | <wk_spec>]
wk_path Path of the workspace to show the selector.
wk_spec Workspace specification. (Use 'cm ^help ^objectspec' to
learn more about workspace specs.)
== CMD_HELP_SHOWSELECTOR ==
Remarks:
If neither path nor workspace spec is specified, the command will take the
current directory as the workspace path.
Examples:
cm ^showselector c:\workspace
(Shows the selector for the selected workspace path.)
cm ^ss
(Shows the selector for current workspace.)
cm ^showselector > mySelector.txt
(Writes into a file the selector for the current workspace.)
cm ^showselector ^wk:mywk@reptest
(Shows the selector for the workspace 'mywk' in the repository 'reptest'.)
== CMD_DESCRIPTION_SUPPORT ==
Allows the user to perform support related operations.
== CMD_USAGE_SUPPORT ==
Usage:
cm ^support <command> [options]
Commands:
^bundle
To get more information about each command run:
cm ^support <command> --^usage
cm ^support <command> --^help
== CMD_HELP_SUPPORT ==
Examples:
cm ^support
cm ^support ^bundle
cm ^support ^bundle c:\outputfile.zip
== CMD_DESCRIPTION_SUPPORT_BUNDLE ==
Creates a "support bundle" package with relevant logs.
You can attach the file while requesting help, asking for extra info, or
submitting a bug.
== CMD_USAGE_SUPPORT_BUNDLE ==
Usage:
cm ^support ^bundle [<outputfile>]
Options:
outputfile Creates the "support bundle" package at the specified
location.
== CMD_HELP_SUPPORT_BUNDLE ==
Remarks:
This command allows users to create a "support bundle" package which can be
attached when requesting help, asking for extra info, or submitting a bug.
The user can optionally specify a location for the output file; otherwise, the
output file will be written to the temp directory.
Examples:
cm ^support ^bundle
(Creates "support bundle" in temp directory.)
cm ^support ^bundle c:\outputfile.zip
(Creates "support bundle" at the specified location.)
== CMD_DESCRIPTION_SWITCH ==
Switches the workspace to a branch, changeset, label, or shelveset.
== CMD_USAGE_SWITCH ==
Usage:
cm ^switch (<brspec> | <csetspec> | <lbspec> | <shspec>)
[--^workspace=<path>] [--^repository=<name>]
[--^forcedetailedprogress]
(Use 'cm ^help ^objectspec' to learn more about branch, changeset, label,
and shelveset specifications.)
Options:
--^workspace Path where the workspace is located.
--^repository Switches to the specified repository.
--^forcedetailedprogress Forces detailed progress even when standard
output is redirected.
== CMD_HELP_SWITCH ==
Remarks:
This command allows users to update the workspace tree to the contents
of the specified object (branch, label, shelveset, or changeset).
Examples:
cm ^switch ^br:/main
cm ^switch ^lb:Rel1.1
cm ^switch ^br:/main/scm002 --^repository=rep2
cm ^switch ^cs:4375
cm ^switch ^sh:2
== CMD_DESCRIPTION_SWITCH_TO_BRANCH ==
Sets a branch as the working branch.
== CMD_USAGE_SWITCH_TO_BRANCH ==
This command is deprecated. Use cm switch instead.
Usage:
cm ^switchtobranch [options] [branch_spec]
branch_spec: Branch specification.
Options:
--^label=name | --^changeset=number: load revisions from the specified
label or changeset. One of these options is required if no branch_spec is
given.
--^changeset=cset: Switch to the specified changeset.
--^repository=rep: Switch to the specified repository.
--^workspace | -wk=path: path where the workspace is located.
== CMD_HELP_SWITCH_TO_BRANCH ==
Remarks:
This command allows users to work in a branch.
If no branch_spec specified, a label or a changeset must be specified.
If no repository is specified, the branch is set to the current repository.
Examples:
cm ^switchtobranch ^br:/main
cm ^switchtobranch ^br:/main/task001
cm ^switchtobranch --^label=BL050
(Read-only configuration. The command loads the contents of the labeled
changeset.)
== CMD_DESCRIPTION_SYNC ==
Synchronize with Git.
== CMD_USAGE_SYNC ==
Usage:
cm ^synchronize | ^sync <repspec> ^git [<url> [--^user=<usr_name> --^pwd=<pwd>]]
[(--^txtsimilaritypercent | --^binsimilaritypercent | \
--^dirsimilaritypercent)=<value>]
[--^author] [--^skipgitlfs]
repspec Repository specification. (Use 'cm ^help ^objectspec' t
learn more about repository specs.)
git (Default).
Options:
url Remote repository URL (http(s):// or git:// or a
SSH URL).
--^user User name for the specified URL.
--^pwd Password for the specified URL.
--^txtsimilaritypercent \
--^binsimilaritypercent \
--^dirsimilaritypercent
To detect moved items, the same way as Plastic SCM
GUI does.
--^author Uses name and timestamp values from the git author.
(git committer by default)
--^skipgitlfs Ignores the Git LFS configuration in the
.gitattributes file. It acts like without Git LFS
support.
== CMD_HELP_SYNC ==
Remarks:
If the git repository requires user and password, then use '^url', '--^user',
and '--^pwd' options.
If the git repository doesn't require user and password, then use '^url'
option with the first sync operation. With next sync operations, '^url'
option is optional.
To use the SSH protocol to perform the sync, you must have the 'ssh' client
added to the PATH environment variable and properly configured to connect
to the remote host (i.e. private/public keys configured).
Examples:
cm ^sync default@localhost:8087 ^git git://localhost/repository
== CMD_DESCRIPTION_TRIGGER ==
Allows the user to manage triggers.
== CMD_USAGE_TRIGGER ==
Usage:
cm ^trigger | ^tr <command> [options]
Commands:
^create | ^mk
^delete | ^rm
^edit
^list | ^ls
^showtypes
To get more information about each command run:
cm ^trigger <command> --^usage
cm ^trigger <command> --^help
== CMD_HELP_TRIGGER ==
Examples:
cm ^tr ^mk ^before-mklabel new "/path/to/script" --^server=myserver:8084
cm ^tr ^edit ^before-mklabel 7 --^position=4 --^server=myserver:8084
cm ^tr ^ls ^before-mkbranch --^server=myserver:8084
cm ^tr ^rm ^after-setselector 4
cm ^tr ^showtypes
== CMD_DESCRIPTION_TUBE ==
Runs commands related to Plastic Tube.
== CMD_USAGE_TUBE ==
Usage:
cm ^tube ^config -^u=<user> -^p=<password>
(Configures Plastic SCM to use Plastic Tube with the specified user and
password.)
cm ^tube ^create <remoteuser>
(Creates the tube "remoteuser -> myuser".
The user "myuser" allows to "remoteuser" to connect to "myuser" server.
Connections can be established from "remoteuser" to "myuser".
Only tubes from other users to the current tube user can be created.)
cm ^tube ^remove <remoteuser>
(Removes the tube "remoteuser -> myuser".)
cm ^tube ^local
(Lists the local repositories shared in the local server and the users
that it is shared with.)
cm ^tube ^remote
(Lists the shared remote repositories that are shared with the current
tube user.)
cm ^tube ^share <rep_spec>[ ...] -^u=<remoteuser> -^a=(^pull | ^push | ^pull,^push)
(Shares the local repository(s) with the remote user and sets the specified
access mode. Use a whitespace to separate repository specs.)
cm ^tube ^unshare <rep_spec>[ ...] -^u=<remoteuser>
(Unshares the local repository(s) with the remote user. Use a whitespace to
separate repository specs.)
cm ^tube ^connect
(Connects the Plastic SCM server to Plastic Tube.)
cm ^tube ^disconnect
(Disconnects the Plastic SCM server from Plastic Tube.)
cm ^tube ^status
(Shows if the Plastic SCM server is connected to Plastic Tube.)
Options
-^u Tube user (the plasticscm.com user).
-^p User password.
-^a Sets the access mode.
rep_spec Repository specification. (Use 'cm ^help ^objectspec' to
learn more about repository specs.)
== CMD_HELP_TUBE ==
Remarks:
Use the 'cm ^tube' command to manage Plastic Tube.
Examples:
cm ^tube ^config -^u=ruben@codicesoftware.com -^p=rubenpassword
cm ^tube ^create pablo@codicesoftware.com
('pablo@codicesoftware.com' can connect to the current Plastic Tube user)
cm ^tube ^remove pablo@codicesoftware.com
cm ^tube ^local
cm ^tube ^remote
cm ^tube ^share repo@server:8087 -^u=pablo@codicesoftware.com -^a=^pull,^push
cm ^tube ^share repo@server:8087 doc@server:8087 -^u=pablo@codicesoftware.com -^a=^push
cm ^tube ^unshare repo@server:8087 -^u=pablo@codicesoftware.com
cm ^tube ^connect
cm ^tube ^disconnect
cm ^tube ^status
== CMD_DESCRIPTION_UNCO ==
Undoes the checkout of an item.
== CMD_USAGE_UNCO ==
Usage:
cm ^undocheckout | ^unco <item_path>[ ...] [-^a | --^all] [--^symlink] [--^silent]
[--^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
item_path Items to apply the operation. Use a whitespace to separate
paths. Use double quotes (" ") to specify paths
containing spaces.
Use . to apply the operation to current directory.
Options:
-^a | --^all Undoes all of the changes in the specified items. If
the item(s) were checked out, the checkout will be
reverted. If the item(s) were locally modified, the
modifications will be reverted.
--^symlink Applies the undocheckout operation to the link and not
to the target.
--^silent Does not show any output.
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag,
specifies how the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag,
specifies how the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag,
specifies how the fields should be separated.
== CMD_HELP_UNCO ==
Remarks:
If an item is checked out and you do not want to checkin it, you can undo
the checkout using this command. Both files and folders can be unchecked
out. The item will be updated to the state it had before checking it out.
Requirements:
- The item must be under source code control.
- The item must be checked out.
Reading input from stdin:
The '^undocheckout' command can read paths from stdin. To do this, pass a
single dash "-".
Example: cm ^undocheckout ^checkin -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify for which files to undo the checkout.
Example:
dir /S /B *.c | cm ^undocheckout --^all -
(In Windows, undoes the checkout of all .c files in the workspace.)
Examples:
cm ^undocheckout .
(Undoes checkouts in the current directory.)
cm ^undocheckout file1.txt file2.txt
cm unco c:\workspace\file.txt
(Undoes checkouts of the selected files.)
cm ^unco -^a file1.txt
(Undoes checkouts or local modifications of 'file1.txt')
cm ^unco link --^symlink
(Applies the undocheckout operation to the link file and not to the target,
available on UNIX environments.)
cm ^status --^short --^changelist=pending_to_review | cm ^undocheckout -
(Undoes client changelist.
The command above will list the paths in the changelist named
'pending_to_review' and the path list will be redirected to the input of the
undocheckout command).
cm ^unco . --^machinereadable
(Undoes checkouts in the current directory, and prints the result in a
simplified, easier-to-parse format.)
cm ^unco . --^machinereadable --^startlineseparator=">" --^endlineseparator="<" \
--^fieldseparator=","
(Undoes checkouts in the current directory, and prints the result in a
simplified, easier to parse format, starting and ending the lines, and
separating the fields, with the specified strings.)
== CMD_DESCRIPTION_UNCOUNCHANGED ==
Undoes non-changed checked out items.
== CMD_USAGE_UNCOUNCHANGED ==
Usage:
cm ^uncounchanged | ^unuc <item_path>[ ...] [-^R | -^r | --^recursive]
[--^symlink] [--^silent]
item_path Items to apply the operation. Use a whitespace to separate
paths. Use double quotes (" ") to specify paths
containing spaces.
Use . to apply the operation to current directory.
Options:
-^R Undoes unchanged items recursively in the specified paths.
--^symlink Applies the uncounchanged operation to the link and not
to the target.
--^silent Does not show any output.
== CMD_HELP_UNCOUNCHANGED ==
Remarks:
This command is applied from the root of the workspace recursively.
Reading input from stdin:
The '^uncounchanged' command can read paths from stdin. To do this, pass a
single dash "-".
Example: cm ^uncounchanged -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify for which unchanged files to undo
the checkout.
Example:
dir /S /B *.c | cm ^uncounchanged -
(In Windows, undoes the checkout on all unchanged .c files in the
workspace.)
Examples:
cm ^uncounchanged . -^R
(Undoes checkouts of not changed files recursively on the current directory.)
cm ^unuc /home/myuser/mywk/project/templates -^R
(Undoes checkouts of not changed files recursively on the selected directory.)
== CMD_DESCRIPTION_UNDELETE ==
Undeletes an item using a specific revision.
== CMD_USAGE_UNDELETE ==
Usage:
cm ^undelete <revspec> <path>
revspec Specification of the revision whose contents will
be loaded in the workspace. (Use 'cm ^help ^objectspec' to
learn more about revision specs.)
path Restore path.
== CMD_HELP_UNDELETE ==
Remarks:
The item to undelete should not be already loaded in the workspace.
The '^undelete' operation is not supported for xlinks.
Example:
cm ^undelete ^revid:756 C:\mywks\src\foo.c
cm ^undelete ^itemid:68#^cs:2 C:\mywks\dir\myfile.pdf
cm ^undelete ^serverpath:/src#^br:/main C:\mywks\Dir
== CMD_DESCRIPTION_UNDOCHANGE ==
Undoes the changes on a path.
== CMD_USAGE_UNDOCHANGE ==
Usage:
cm ^undochange | ^unc <item_path>[ ...] [-^R | -^r | --^recursive]
item_path Items to apply the operation. Use a whitespace to separate
paths. Use double quotes (" ") to specify paths
containing spaces.
Use . to apply the operation to current directory.
Options:
-^R Applies the operation recursively.
== CMD_HELP_UNDOCHANGE ==
Remarks:
If an item is checked out or modified but not checked in and you do not
want to check it in, you can undo the changes using this command. The item
will be updated to the contents it had before.
Reading input from stdin:
The '^undochange' command can read paths from stdin. To do this, pass a
single dash "-".
Example: cm ^undochange -
Paths will be read until an empty line is entered.
This allows you to use pipe to specify for which files to undo changes.
Example:
dir /S /B *.c | cm ^undochange -
(In Windows, undoes the changes of all .c files in the workspace.)
Examples:
cm ^unc .
(Undoes changes of the files on the current directory.)
cm ^undochange . -^R
(Undoes changes of the files recursively on the current directory.)
cm ^unc file1.txt "file 2.txt"
(Undoes changes of the selected files.)
cm ^unc c:\workspace\file.txt
(Undoes changes of the selected file.)
== CMD_DESCRIPTION_UNDO ==
Undoes changes in a workspace.
== CMD_USAGE_UNDO ==
Usage:
cm ^undo [<path>[ ...]] [--^symlink] [-^r | --^recursive] [<filter>[ ...]]
[--^silent | --^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
path Path of the files or directories to apply the operation
to. Use double quotes (" ") to specify paths containing
spaces. Use a whitespace to separate paths.
If no path is specified, by default the undo
operation will take all of the files in the current
directory.
filter Applies the specified filter or filters to the given
paths. Use a whitespace to separate filters. See the
Filters section for more information.
Options:
--^symlink Applies the undo operation to the symlink and not
to the target.
-^r Executes the undo recursively.
--^silent Does not show any output.
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag, specifies
how the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag, specifies
how the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag, specifies
how the fields should be separated.
Filters:
If no flag is specified, by default all changes are undone, but the
paths can be filtered using one or more of the flags below.
If a file or directory matches one or more of the specified kinds of change,
all of the changes on said file or directory will be undone.
For example, if you specify both '--^checkedout' and '--^moved', if a file is
both checkedout and moved, both changes will be undone.
--^checkedout Selects checked-out files and directories.
--^unchanged Selects files whose content is unchanged.
--^changed Selects locally changed or checked-out files and
directories.
--^deleted Selects deleted files and directories.
--^moved Selects moved files and directories.
--^added Selects added files and directories.
== CMD_HELP_UNDO ==
Remarks:
The '^undo' command is dangerous - it undoes work in an irreversible way.
Once the ^undo has finished, it is not possible to recover the previous state
of the files and directories affected by it. If no path is specified
in the arguments, by default it will undo every change in the current
directory, but not recursively.
These are equivalent when executed from the /src directory:
/src
|- file.txt
|- code.cs
\- /test
|- test_a.py
\- test_b.py
cm ^undo
cm ^undo *
cm ^undo file.txt code.cs /test
cm ^undo .
cm ^undo /src file.txt code.cs
If you want the operation to be recursive, you must specify the '-^r' flag.
To undo all of the changes below a directory (including changes affecting
the directory itself):
cm ^undo dirpath -^r
If dirpath is a workspace path, every change in the workspace will be
undone.
Deleted items:
To undo file and directory deletions, you must either specify the full path
of the item, or specify the containing directory and use the recursive ('-^r')
flag.
For example:
cm ^undo .
(Does NOT undo deletions in the current directory.)
cm ^undo . -^r
(Undoes all deletions (and other changes) in the current directory recursively.)
cm ^undo src/file.txt
(Undoes deletion (or other change) of src/file.txt.)
Examples:
cm ^undo . -^r
(Undoes all changes in the current directory recursively. If executed
from the workspace's root, undoes all changes in the entire workspace.)
cm ^co file.txt
cm ^undo file.txt
(Undoes the checkout on 'file.txt'.)
^echo ^content >> file.txt
cm ^undo file.txt
(Undoes the local change to 'file.txt'.)
cm ^undo src
(Undoes changes to the src directory and its files.)
cm ^undo src/*
(Undoes changes in every file and directory contained in src, without
affecting src.)
cm ^undo *.cs
(Undoes changes to every file or directory that matches *.cs in the current
directory.)
cm ^undo *.cs -^r
(Undoes changes on every file or directory that matches *.cs in the current
directory and every directory below it.)
cm ^co file1.txt file2.txt
^echo ^content >> file1.txt
cm ^undo --^unchanged
(Undoes the checkout of unchanged 'file2.txt', ignoring locally changed
'file1.txt'.)
^echo ^content >> file1.txt
^echo ^content >> file2.txt
cm ^co file1.txt
cm ^undo --^checkedout
(Undoes the changes in checked-out file 'file1.txt', ignoring 'file2.txt' as
it is not checked-out.)
cm ^add file.txt
cm ^undo file.txt
(Undo the add of 'file.txt' making it once again a private file.)
^rm file1.txt
^echo ^content >> file2.txt
cm ^add file3.txt
cm ^undo --^deleted --^added *
(Undoes the 'file1.txt' delete and 'file3.txt' add, ignoring the 'file2.txt'
change.)
== CMD_DESCRIPTION_LOCK_UNLOCK ==
Undoes item locks on a lockserver.
== CMD_USAGE_LOCK_UNLOCK ==
Usage:
cm ^lock ^unlock [<repserverspec>] <guid>[ ...]
repserverspec Repository server specification. (Use 'cm ^help ^objectspec'
to learn more about repserver specs.)
guid A list of item GUIDs to be unlocked. Use a whitespace to
separate GUIDs.
== CMD_HELP_LOCK_UNLOCK ==
Remarks:
- The command uses the specified server to unlock the items.
- If no server is specified, the command tries to obtain a server from the
current workspace.
- If no server was calculated on the previous steps, the server is obtained
from the current Plastic SCM client configuration.
- Only the administrator of the server can run the 'cm ^unlock' command.
- To specify a GUID, the format should be the 32-digit separated by
hyphens format (optionally enclosed in braces):
{00000000-0000-0000-0000-000000000000}
or 00000000-0000-0000-0000-000000000000
Examples:
cm ^lock ^unlock 91961b14-3dfe-4062-8c4c-f33a81d201f5
(Undoes the selected item lock.)
cm ^lock ^unlock DIGITALIS:8084 2340b4fa-47aa-4d0e-bb00-0311af847865 \
bcb98a61-2f62-4309-9a26-e21a2685e075
(Undoes the selected item locks on lockserver named 'DIGITALIS'.)
cm ^lock ^unlock tardis@cloud 4740c4fa-56af-3dfe-de10-8711fa248635 \
71263c17-5eaf-5271-4d2c-a25f72e101d4
(Undoes the selected item locks on cloud lockserver named 'tardis'.)
== CMD_DESCRIPTION_UPDATE ==
Updates the workspace and downloads latest changes.
== CMD_USAGE_UPDATE ==
Usage:
cm ^update [<item_path> | --^last]
[--^changeset=<csetspec>] [--^cloaked] [--^dontmerge] [--^forced]
[--^ignorechanges] [--^override] [--^recursewk] [--^skipchangedcheck]
[--^silent] [--^verbose] [--^xml[=<output_file>]] [--^encoding=<name>]
[--^machinereadable [--^startlineseparator=<sep>]
[--^endlineseparator=<sep>] [--^fieldseparator=<sep>]]
[--^forcedetailedprogress]
item_path Path to update.
Use . to apply update to current directory.
If no path is specified, then the current workspace is
fully updated.
--^last Changes the workspace selector from a changeset
configuration or a label configuration to a branch
configuration before updating.
The selector is changed to the branch the changeset or
label belongs to.
Options:
--^changeset Updates the workspace to a specific changeset.
(Use 'cm ^help ^objectspec' to learn more about
changeset specs.)
--^cloaked Includes the cloaked items in the update operation.
If this option is not specified, those items that are
cloaked will be ignored in the operation.
--^dontmerge In case an update merge is required during the update
operation, does not perform it.
--^forced Forces updating items to the revision specified in
the selector.
--^ignorechanges Ignores the pending changes warning message that is
shown if there are pending changes detected when
updating the workspace.
--^override Overrides changed files outside Plastic SCM control.
Their content will be overwritten with the server
content.
--^recursewk Updates all the workspaces found within the current
path. Useful to update all the workspaces contained
in a specific path.
--^skipchangedcheck The update checks if there are local changes in your
workspace before starting. If you always checkout
before modifying a file, you can use this check and
speed up the operation.
--^silent Does not show any output.
--^verbose Shows additional information.
--^xml Prints the output in XML format to the standard output.
It is possible to specify an output file.
--^encoding Used with the --^xml option, specifies the encoding to
use in the XML output, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag,
specifies how the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag,
specifies how the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag,
specifies how the fields should be separated.
--^forcedetailedprogress Forces detailed progress even when standard output
is redirected.
== CMD_HELP_UPDATE ==
Remarks:
The '^update' command only downloads needed files.
The command assumes recursive operation.
When the '--^last' option is used, it is not necessary to specify a path.
In this case, the workspace the current working directory belongs to will
be updated.
(Remember that specifying this flag could cause the workspace
selector to be changed to a branch configuration if the selector was
previously pointing to a changeset or a label.)
Examples:
cm ^update
(Updates all in the current workspace.)
cm ^update .
(Updates current directory, and all children items.)
cm ^update . --^forced --^verbose
(Forces retrieval of all revisions.)
cm ^update --^last
cm ^update . --^machinereadable --^startlineseparator=">"
(Updates current directory and prints the result in a simplified
easier-to-parse format, starting the lines with the specified
strings.)
== CMD_DESCRIPTION_VERSION ==
Shows the current client version number.
== CMD_USAGE_VERSION ==
Usage:
cm ^version
== CMD_HELP_VERSION ==
== CMD_DESCRIPTION_WHOAMI ==
Shows the current Plastic SCM user.
== CMD_USAGE_WHOAMI ==
Usage:
cm ^whoami
== CMD_HELP_WHOAMI ==
== CMD_USAGE_WKTREENODESTATUS ==
Usage:
cm ^wktreenodestatus path1, path2, ...
== CMD_DESCRIPTION_WORKSPACE ==
Allows the user to manage workspaces.
== CMD_USAGE_WORKSPACE ==
Usage:
cm ^workspace | ^wk <command> [options]
Commands:
^list | ^ls
^create | ^mk
^delete | ^rm
^move | ^mv
^rename
To get more information about each command run:
cm ^workspace <command> --^usage
cm ^workspace <command> --^help
== CMD_HELP_WORKSPACE ==
Examples:
cm ^workspace ^create myWorkspace wk_path
cm ^workspace ^list
cm ^workspace ^delete myWorkspace
== CMD_DESCRIPTION_WORKSPACE_CREATE ==
Creates a new workspace.
== CMD_USAGE_WORKSPACE_CREATE ==
Usage:
cm ^workspace | ^wk [^create | ^mk] <wk_name> <wk_path> [<rep_spec>]
[--^selector[=<selector_file>]
(Creates a new workspace.)
cm ^workspace | ^wk [^create | ^mk] <wk_name> <wk_path> --^dynamic --^tree=[<tree>]
(Creates a dynamic workspace. This feature is still experimental, and it's
only available for Windows.)
wk_name The new workspace name.
wk_path Path of the new workspace.
rep_spec Creates the new workspace with the specified repository.
Repository specification: check 'cm ^help ^objectspec'.
Options:
--^selector Edits a selector for the new workspace.
If a selector file is specified, then sets the selector
for the new workspace from the specified file.
--^dynamic Creates a dynamic workspace. This feature is still
experimental, and it's only available for Windows.
Specifying this flag requires using the --^tree parameter.
--^tree Used with the '--^dynamic' flag, specifies the initial
point the dynamic workspace is going to load. It can
either be a branch, changeset, or label specification.
The workspace will later on use the repository in the
spec. (Use 'cm ^help ^objectspec' to learn more about specs.)
== CMD_HELP_WORKSPACE_CREATE ==
Remarks:
- A workspace is a view of the repository mapped to the local filesystem.
The workspace selector defines the rules that specify workspace content.
Use 'cm ^showselector' to display a workspace selector or 'cm ^setselector'
to modify it.
- If neither rep_spec nor '--^selector' is specified, then the workspace
will automatically be configured to use the first repository
(alphabetically) of the server configured in the client.conf file.
- The dynamic workspaces is a experimental feature (Windows only), and it
requires the plasticfs.exe program running.
Examples:
cm ^workspace ^create myworkspace c:\workspace
cm ^wk ^mk myworkspace /home/john/plastic_view
(Creates 'myworkspace' workspace in Windows and in Linux respectively.)
cm ^wk mywktest c:\wks\wktest --^selector=myselector.txt
(Creates 'mywktest' workspace using the selector in 'myselector.txt' file.)
cm ^wk mywkprj c:\wks\wkprj myrep@^repserver:localhost:8084
(Creates 'mywkprj' workspace with the selected repository.)
cm ^wk mywkprj c:\dynwks\mywkprj --^dynamic --^tree=^br:/main@myrep@localhost:8084
(Creates dynamic 'mywkprj' workspace with the 'myrep@localhost:8084'
repository, pointing to '^br:/main' the first time it gets mounted.)
== CMD_DESCRIPTION_WORKSPACE_DELETE ==
Deletes a workspace.
== CMD_USAGE_WORKSPACE_DELETE ==
Usage:
cm ^workspace | ^wk ^delete | ^rm [<wk_path> | <wkspec>] [--^keepmetadata]
wk_path Path of the workspace to be deleted.
wkspec Specification of the workspace to delete. (Use
'cm ^help ^objectspec' to learn more about specs.)
Options:
--^keepmetadata Does not delete the metadata files in the .plastic
folder.
== CMD_HELP_WORKSPACE_DELETE ==
Remarks:
This command deletes a workspace, specified by path or spec.
If no arguments are specified, current workspace will be assumed.
Examples:
cm ^workspace ^delete
(Removes current workspace.)
cm ^wk ^delete c:\workspace
cm ^workspace rm /home/danipen/wks
cm ^wk ^rm ^wk:MiWorkspace
cm ^wk ^rm ^wk:MiWorkspace@DIGITALIS
== CMD_DESCRIPTION_WORKSPACE_LIST ==
Lists workspaces.
== CMD_USAGE_WORKSPACE_LIST ==
Usage:
cm ^workspace | ^wk [^list | ^ls] [--^format=<str_format>]
Options:
--^format Retrieves the output message in a specific format. See
Remarks for more info.
== CMD_HELP_WORKSPACE_LIST ==
Remarks:
This command accepts a format string to show the output.
The output parameters of this command are the following:
{0} | {^wkname} Workspace name.
{1} | {^machine} Client machine name.
{2} | {^path} Workspace path.
{3} | {^wkid} Workspace unique identifier.
{4} | {^wkspec} Workspace specification using the format:
'wkname@machine'.
{^tab} Inserts a tab space.
{^newline} Inserts a new line.
Examples:
cm ^wk
(Lists all workspaces.)
cm ^workspace ^list --^format={0}#{3,40}
cm ^workspace ^list --^format={^wkname}#{^wkid,40}
(Lists all workspaces and shows the workspace name, a # symbol and the
workspace GUID field in 40 spaces, aligned to left.)
cm ^wk --^format="Workspace {0} in path {2}"
cm ^wk --^format="Workspace {^wkname} in path {^path}"
(Lists all workspaces and shows result as formatted strings.)
== CMD_DESCRIPTION_WORKSPACE_MOVE ==
Moves a workspace.
== CMD_USAGE_WORKSPACE_MOVE ==
Usage:
cm ^workspace | ^wk ^move | ^mv [<wkspec>] <new_path>
Options:
wkspec Specification of the workspace to move. (Use
'cm ^help ^objectspec' to learn more about specs.)
new_path Workspace will be moved to here.
== CMD_HELP_WORKSPACE_MOVE ==
Remarks:
This command allows users to move a workspace to another location on disk.
Examples:
cm ^workspace ^move myWorkspace \new\workspaceDirectory
(Moves 'myWorkspace' to the specified location.)
cm ^wk ^mv c:\users\maria\wkspaces\newlocation
(Moves the current workspace to the new location.)
== CMD_DESCRIPTION_WORKSPACE_RENAME ==
Renames a workspace.
== CMD_USAGE_WORKSPACE_RENAME ==
Usage:
cm ^workspace | ^wk ^rename [<wk_name>] <new_name>
wk_name Workspace to rename.
new_name New name for the workspace.
== CMD_HELP_WORKSPACE_RENAME ==
Remarks:
This command renames a workspace.
If no workspace name is supplied, the current workspace will be used.
Examples:
cm ^workspace ^rename mywk1 wk2
(Renames the workspace 'mywk1' to 'wk2'.)
cm ^wk ^rename newname
(Renames the current workspace to 'newname'.)
== CMD_DESCRIPTION_WORKSPACESTATUS ==
Shows changes in the workspace.
== CMD_USAGE_WORKSPACESTATUS ==
Usage:
cm ^status [<wk_path>] [--^changelist[=<name>] | --^changelists] [--^cutignored]
[ --^header] [ --^noheader] [ --^nomergesinfo] [ --^head]
[--^short] [--^symlink] [ --^dirwithchanges] [--^xml[=<output_file>]]
[--^encoding=<name>] [ --^wrp | --^wkrootrelativepaths]
[--^fullpaths | --^fp] [<legacy_options>] [<search_types>[ ...]]
[--^machinereadable [--^startlineseparator=sep]
[--^endlineseparator=sep] [--^fieldseparator=sep]]
Options:
wk_path Path of the workspace where the search will be
performed.
--^changelist Shows changes in the selected changelist.
--^changelists Shows changes grouped in client changelists.
--^cutignored Skips the contents of ignored directories.
Requires the '--^ignored' search type. See the Search
types section for more information.
--^header Only prints the workspace status.
--^noheader Only prints the modified item search result.
--^nomergesinfo Doesn't print the merge info for changes.
--^head Prints the status of the last changeset on the branch.
--^short Lists only paths that contains changes.
--^symlink Applies the operation to the symlink and not to the
target.
--^dirwithchanges Shows directories that contain changes inside them
(added, moved, removed items inside).
--^xml Prints the output in XML format to the standard output.
It is possible to specify an output file.
--^encoding Used with the --^xml option, specifies the encoding to
use in the XML output, i.e.: utf-8.
See the MSDN documentation at
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx
to get the table of supported encodings and its format,
(at the end of the page, in the "Name" column).
--^wrp Print workspace root relative paths instead of
current directory relative paths.
--^fullpaths, --^fp Force printing absolute paths, overriding any other
path printing setting.
--^machinereadable Outputs the result in an easy-to-parse format.
--^startlineseparator Used with the '--^machinereadable' flag,
specifies how the lines should start.
--^endlineseparator Used with the '--^machinereadable' flag,
specifies how the lines should end.
--^fieldseparator Used with the '--^machinereadable' flag,
specifies how the fields should be separated.
Legacy options:
--^cset Prints the workspace status in the legacy format.
--^compact Prints the workspace status and changelists in the
legacy format.
--^noheaders When used in conjunction with the '--^compact' flag, the
changelist headers will not be printed. (Does not apply
to the new changelists format.)
Search types:
--^added Prints added items.
--^checkout Prints checkedout items.
--^changed Prints changed items.
--^copied Prints copied items.
--^replaced Prints replaced items.
--^deleted Prints deleted items.
--^localdeleted Prints locally deleted items.
--^moved Prints moved items.
--^localmoved Prints locally moved items.
--^percentofsimilarity=<value> Percent of similarity between two files in
order to consider them the same item. Used
in the locally moved search. Its default
value is 20%.
--^txtsameext Only those text files that have the same
extension will be taken into account by the
similarity content matching process during
the moved items search. By default, any
text file will be processed.
--^binanyext Any binary file will be taken into account
by the similarity content matching process
during the moved items search. By default,
only those binary files that have the same
extension will be processed.
--^private Prints non controlled items.
--^ignored Prints ignored items.
--^hiddenchanged Prints hidden changed items. (Includes
'--^changed')
--^cloaked Prints cloaked items.
--^controlledchanged This flag substitutes the following options:
'--^added', '--^checkout', '--^copied',
'--^replaced', '--^deleted', '--^moved'.
--^all This flag replaces the following parameters:
'--^controlledchanged', '--^changed',
'--^localdeleted', '--^localmoved', '--^private'.
== CMD_HELP_WORKSPACESTATUS ==
Remarks:
The '^status' command prints the loaded changeset on a workspace and gets
the changed elements inside the workspace.
This command can be used to show the pending changes in a workspace; the
type of changes that can be searched can be modified by using the command
parameters. By default, all changes are displayed, be they controlled
or local.
The percent of similarity parameter '--^percentofsimilarity' (-^p) is used
by the locally moved search to decide if two elements are the same item.
The default value is 20% but it can be adjusted.
It is possible to show workspace changes grouped by client changelists.
The '^default' changelist includes the changes that are not included in
other changelists. That being said, the changes the default changelist
will show depends on the search types flags specified.
Showing changes grouped by changelists requires showing controlled
changes too (items with status equal to '^added', '^checkout', '^copied',
'^replaced', '^deleted', or '^moved'). So, the '--^controlledchanged' option
will be automatically enabled when changelists are shown.
The default encoding for XML output is utf-8.
By default, this command will print current directory relative paths,
unless the '--^machinereadable' or '--^short' flags are specified. If
any of them are specified, the command will print absolute paths.
If '--^xml' flag is specified, workspace root relative paths will
be printed (unless the '--^fp' flag is also specified, printing
absolute paths instead).
Examples:
cm ^status
(Prints the working changeset and also all item types changed in the
workspace, except the ignored ones.)
cm ^status --^controlledchanged
(Prints the working changeset and also the items that are checkedout, added,
copied, replaced, deleted, and moved.)
cm ^status --^added
(Prints only the working changeset and the added items inside the workspace.)
cm ^status c:\workspaceLocation\code\client --^added
(Prints the working changeset and the added items under the specified path
recursively.)
cm ^status --^changelists
cm ^status --^changelist
(Shows all the workspace changes grouped by client changelists.)
cm ^status --^changelist=pending_to_review
(Shows the changes on the changelist named 'pending_to_review'.)
cm ^status --^changelist=default --^private
(Shows the changes in the 'default' changelist, showing private items, along
with items with controlled changes, if any.)
cm ^status --^short --^changelist=pending_to_review | cm ^checkin -
(Checkins the changes in the changelist 'pending_to_review'.)
cm ^status C:\workspaceLocation --^xml=output.xml
(Gets the status information in XML format and using utf-8 in the file
output.xml.)
cm ^status --^ignored
(Shows all ignored items.)
Output:
/main@myrepo@local (^cs:2 - ^head)
^Added
Status Size Last Modified Path
^Ignored 0 bytes 19 seconds ago out\app.exe
^Ignored 48 seconds ago src
^Ignored 0 bytes 48 seconds ago src\version.c
cm ^status --^ignored --^cutignored
(Shows ignored files whose parent directory is not ignored and ignored
directories but not their contents.)
Output:
/main@myrepo@local (^cs:2 - ^head)
^Added
Status Size Last Modified Path
^Ignored 0 bytes 19 seconds ago out\app.exe
^Ignored 48 seconds ago src
== CMD_DESCRIPTION_XLINK ==
Creates, edits, or displays details of an Xlink.
== CMD_USAGE_XLINK ==
Usage:
cm ^xlink [-^w] [-^rs] <xlink_path> / (<csetspec> | <lbspec> | <brspec)>
[<expansion_rules>[ ...]]
(Creates an Xlink.)
cm ^xlink [-^rs] <xlink_path> /<relative_path> (<csetspec> | <lbspec> | <brspec>)
[<expansion_rules>[ ...]]
(Creates a readonly partial Xlink pointing to /<relative_path> instead of
the default root / .)
cm ^xlink -^e <xlink_path> (<csetspec> | <lbspec> | <brspec>)
(Edits an Xlink to change the target specification.)
cm ^xlink -^s|--^show <xlink_path>
(Shows the Xlink information including the expansion rules.)
cm ^xlink -^ar|--^addrules <xlink_path> <expansion_rules>[ ...]
(Adds the given expansion rules to the Xlink).
cm ^xlink -^dr|--^deleterules <xlink_path> <expansion_rules>[ ...]
(Removes the given expansion rules from the Xlink).
xlink_path This is the directory in the current workspace where
the linked repository will be mounted (when creating an
Xlink) or is mounted (when editing an Xlink).
csetspec The full target changeset specification in the remote
repository.
This determines what version and branch is loaded in the
workspace for the linked repository.
(Use 'cm ^help ^objectspec' to learn more about changeset
specs.)
lbspec The full label specification in the remote repository.
(Use 'cm ^help ^objectspec' to learn more about label
specs.)
brspec The full branch specification in the remote repository.
This uses the current changeset where the specified
branch is pointing to. (Use 'cm ^help ^objectspec' to
learn more about branch specs.)
-^e Edits an existing Xlink to change the target changeset
specification.
-^s | --^show Shows information about the selected Xlink.
-^ar | --^addrules Adds one or more expansion rules to the selected Xlink.
-^dr | --^deleterules Deletes one or more expansion rules from the selected
Xlink.
expansion_rules To specify one or more expansion rule. Each expansion
rule is a pair branch-target branch:
^br:/main/fix-^br:/main/develop/fix
Options:
-^w Indicates that the Xlink is writable. This means that
the contents of the target repository can be modified
through branch autoexpansion.
-^rs Relative server. This option allows creating a relative
Xlink that is independent of the repository server. This
way, Xlinks created in replicated repositories in
different servers will be automatically identified.
== CMD_HELP_XLINK ==
Remarks:
This command creates an Xlink to a given changeset. By default, a read-only
Xlink is created. This means that the contents loaded in the workspace
inside the Xlink cannot be modified. To be able to make changes in the
Xlinked content, create a writable Xlink instead (using the '-^w' option).
It is possible to use a simplified syntax of the command when editing the
target changeset of an Xlink. This way, the only required parameter is the
new target changeset. The rest of parameters of the Xlink will not be
modified.
Branch auto-expansion:
When a change is made in any writable-xlinked repositories ('-^w' option), a
new branch needs to be created in the target repository. The name of the
new branch is based on the checkout branch defined in the top-level
repository. To determine the name of the branch to use, these rules apply:
1) A check is made to see if a branch with the same full name exists
in the target repository:
- If it exists, this is used as the checkout branch.
- If it does not exist, the branch name is built this way:
- Name of the branch of the target Xlinked changeset + short name of
the checkout branch (last part).
- If this branch exists, it is used as the checkout branch.
- Otherwise, the branch is created and the branch base is set to the
Xlinked changeset.
2) A new version of the Xlink is created in the branch on the parent
repository pointing to the new changeset in the Xlinked repository.
Finally, the complete Xlink structure is kept up to date with the latest
changes in the right versions.
Examples:
cm ^xlink code\firstrepo / 1@first@localhost:8084
(Creates an Xlink in folder 'firstrepo' in the current workspace where the
changeset '1' in the repository 'first' will be mounted.)
cm ^xlink opengl\include /includes/opengl 1627@includes@localhost:8087
(Creates a readonly partial Xlink in directory 'opengl\include' in the
current workspace where the path '/includes/opengl' in changeset '1627' in
the repository 'includes' will be mounted as root. It means that whatever
is inside '/includes/opengl' will be mounted in 'opengl\include' while the
rest of the repository will be ignored.)
cm ^xlink -^w -^rs code\secondrepo / ^lb:LB001@second@localhost:8084
(Creates a writable and relative Xlink in folder 'secondrepo' in the
current workspace where the label 'LB001' in the repository 'second' will
be mounted.)
cm ^xlink code\thirdrepo / 3@third@localhost:8087 ^br:/main-^br:/main/scm003
(Creates an Xlink in folder 'thirdrepo' in the current workspace where the
changeset '3' in the repository 'third' will be mounted.)
cm ^xlink -^e code\secondrepo ^br:/main/task1234@second@localhost:8084
(Edits the Xlink 'code\secondrepo' to change the target repository by
linking the branch 'main/task1234' in the repository 'second'.)
cm ^xlink --^show code\thirdrepo
(Shows information of the Xlink 'code\thirdrepo' including its expansion
rules if exist).
cm ^xlink -^ar code\secondrepo ^br:/main-^br:/main/develop ^br:/main/fix-^br:/main/develop/fix
(Adds two expansion rules to the xlink 'code\secondrepo'.)
cm ^xlink -^dr code\secondrepo ^br:/main/fix-^br:/main/develop/fix
(Deletes the expansion rule from the xlink 'code\secondrepo').
== CMD_USAGE_AUTOCOMPLETE ==
Usage:
cm ^autocomplete ^install
(Installs 'cm' command completion in the shell.)
cm ^autocomplete ^uninstall
(Uninstalls 'cm' command completion from the shell.)
cm ^autocomplete --^line <shell_line> --^position <cursor_position>
(Returns autocomplete suggestions for 'shell_line' to be inserted at
'cursor_position'. This command is not intended to be used by the final
user, but it is documented in case you want to extend autocompletion
support for your shell of choice.)
shell_line The line the user has written into the shell when the
autocompletion was requested.
In Bash, it is at the COMP_LINE environment variable.
In PowerShell, it is at the $wordToComplete variable.
cursor_position The position of the cursor when the autocompletion was
requested.
In Bash, it is at the COMP_POINT environment variable.
In PowerShell, it is at the $cursorPosition variable.