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
|
<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
<!ENTITY kdiff3 "<application
>KDiff3</application
>">
<!ENTITY kappname "&kdiff3;">
<!ENTITY package "extragear-utils">
<!ENTITY % addindex "IGNORE">
<!ENTITY % Swedish "INCLUDE">
]>
<book lang="&language;">
<!-- This header contains all of the meta-information for the document such
as Authors, publish date, the abstract, and Keywords -->
<bookinfo>
<title
>Handbok &kdiff3;</title>
<authorgroup>
<author
><firstname
>Joachim</firstname
> <surname
>Eibl</surname
> <affiliation
><address
> <email
>joachim.eibl snabela gmx.de</email>
</address
></affiliation>
</author>
<othercredit role="translator"
><firstname
>Stefan</firstname
><surname
>Asserhäll</surname
><affiliation
><address
><email
>stefan.asserhall@comhem.se</email
></address
></affiliation
><contrib
>Översättare</contrib
></othercredit
>
</authorgroup>
<copyright>
<year
>2002-2006</year>
<holder
>Joachim Eibl</holder>
</copyright>
<!-- Translators: put here the copyright notice of the translation -->
<!-- Put here the FDL notice. Read the explanation in fdl-notice.docbook
and in the FDL itself on how to use it. -->
<legalnotice
>&FDLNotice;</legalnotice>
<!-- Date and version information of the documentation
Don't forget to include this last date and this last revision number, we
need them for translation coordination !
Please respect the format of the date (YYYY-MM-DD) and of the version
(V.MM.LL), it could be used by automation scripts.
Do NOT change these in the translation. -->
<date
>2006-05-14</date>
<releaseinfo
>0.9.90</releaseinfo>
<abstract>
<para
>&kdiff3; är ett verktyg för jämförelser och sammanfogning av filer och kataloger, som <itemizedlist>
<listitem
><para
>jämför och sammanfogar två eller tre indatafiler med text eller kataloger,</para
></listitem>
<listitem
><para
>visar skillnaden rad-för-rad och tecken-för-tecken(!),</para
></listitem>
<listitem
><para
>tillhandahåller en automatisk sammanfogningsfunktion,</para
></listitem>
<listitem
><para
>har en editor för bekväm upplösning av sammanfogningskonflikter,</para
></listitem>
<listitem
><para
>erbjuder nätverkstransparens via TDEIO,</para
></listitem>
<listitem
><para
>har alternativ för att färglägga eller dölja ändringar av blanktecken och kommentarer,</para
></listitem>
<listitem
><para
>stöder Unicode, UTF-8 och andra filkodningar,</para
></listitem>
<listitem
><para
>skriver ut skillnader,</para
></listitem>
<listitem
><para
>stöder versionshanteringsnyckelord och historiksammanfogning.</para
></listitem>
</itemizedlist>
</para
><para
>Det här dokumentet beskriver &kdiff3; version 0.9.89. </para>
</abstract>
<!-- This is a set of Keywords for indexing by search engines.
Please at least include KDE, the KDE package it is in, the name
of your application, and a few relevant keywords. -->
<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdeextragear</keyword>
<keyword
>kdiff3</keyword>
<keyword
>diff</keyword>
<keyword
>sammanfoga</keyword>
<keyword
>CVS</keyword>
<keyword
>trippeljämförelse</keyword>
<keyword
>jämföra</keyword>
<keyword
>filer</keyword>
<keyword
>kataloger</keyword>
<keyword
>versionshantering</keyword>
<keyword
>trevägs sammanfogning</keyword>
<keyword
>skillnader på plats</keyword>
<keyword
>synkronisera</keyword>
<keyword
>kpart</keyword>
<keyword
>tdeio</keyword>
<keyword
>nätverkstransparent</keyword>
<keyword
>editor</keyword>
<keyword
>blanktecken</keyword>
<keyword
>kommentarer</keyword>
</keywordset>
</bookinfo>
<chapter id="introduction"
><title
>Inledning</title>
<sect1 id="why"
><title
>Ännu ett jämförelsegränssnitt?</title>
<para
>Det finns flera grafiska jämförelseverktyg. Varför ska du välja &kdiff3;? Låt mig tala om varför jag skrev det. </para
><para
>&kdiff3; påbörjades därför att jag var tvungen att göra en svår sammanfogning. Att sammanfoga är nödvändigt när flera personer arbetar med samma fil i ett projekt. En sammanfogning kan vara delvis automatiserad, när sammanfogningsverktyget inte bara har tillgång till de nya ändrade filerna (som kallas "grenar"), utan också originalfilen (som kallas "bas"). Sammanfogningsverktyget väljer automatiskt en ändring som bara gjorts i en gren. När flera bidragsgivare ändrar samma rader, detekterar sammanfogningsverktyget en konflikt som måste lösas manuellt. </para
><para
>Sammanfogningen var svår eftersom en bidragsgivare hade ändrat mycket och rättat indenteringen på många ställen. Den andra bidragsgivaren hade också ändrat mycket text i samma fil, vilket orsakade flera konflikter vid sammanfogningen. </para
><para
>Verktyget som jag då använde visade bara ändrade rader, men inte vad som hade ändrats inom raden. Det fanns inte heller någon information om var bara indenteringen hade ändrats. Sammanfogningen var en mindre mardröm. </para
><para
>Det var alltså början. Den första versionen kunde visa skillnader på en rad, och visade skillnader i blanktecken. Senare tillkom många funktioner för att öka användbarheten. </para
><para
>Om du till exempel snabbt vill jämföra en text, kan du kopiera den till klippbordet och tdelistra in i endera jämförelsefönstret. </para
><para
>En funktion som krävde en stor ansträngning var funktionen för katalogjämförelse och sammanfogning, som gjorde programmet till en nästan fullständig filbläddrare. </para
><para
>Jag hoppas att &kdiff3; fungerar för dig, också. Ha det så kul! </para
><para
>Joachim Eibl (2003) </para>
</sect1>
<sect1 id="screenshots"
><title
>Skärmbilder och funktioner</title>
<para
>Den här skärmbilden visar skillnaden mellan två textfiler</para>
<para
>(Med en tidig version av &kdiff3;):</para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
<para
>Trevägs sammanfogning stöds fullständigt. Den är användbar om två personer ändrar kod oberoende av varandra. Originalfilen (basen) används för att hjälpa &kdiff3; att automatiskt välja de riktiga ändringarna. Sammanfogningseditorn under jämförelsefönstren låter dig lösa konflikter, medan utdata du kommer att få visas. Skärmbilden visar tre indatafiler som håller på att' sammanfogas: </para
><para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
</para>
<para id="dirmergebigscreenshot"
>&kdiff3; hjälper dig också att jämföra och sammanfoga hela kataloger. Den här skärmbilden visar &kdiff3; under en katalogsammanfogning: </para
><para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="dirmergebig.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
</para>
</sect1>
<sect1 id="features"
><title
>Mer funktioner</title>
<sect2
><title
>Rad-för-rad och tecken-för-tecken jämförelsevisning</title>
<para
>Genom att använda möjligheterna hos en grafisk färgskärm, visar &kdiff3; exakt vad skillnaderna är. När du måste göra många kodgranskningar, gillar du det här. </para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="letter_by_letter.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
</sect2>
<sect2
><title
>Se skillnader i blanktecken med en blick</title>
<para
>Mellanslag och tabulatorer som skiljer sig åt syns. När rader bara skiljer sig i mängden blanktecken syns det med en blick i sammanfattningskolumnen till vänster. (Inga mer problem om någon ändrar indenteringen.) </para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="white_space.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
</sect2>
<sect2
><title
>Trevägsjämförelse</title>
<para
>Analysera tre filer och se var de skiljer sig åt. </para
><para
>Vänster/mitten/höger fönster kallas A/B/C och har blå/grön/magenta färg. </para
><para
>Om en fil är likadan och en annan annorlunda för en rad, så visar färgerna vilken fil som är annorlunda. Den röda färgen betyder att båda de andra filerna är olika. </para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="triple_diff.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
</sect2>
<sect2
><title
>Bekväm sammanfogning av två eller tre indatafiler</title>
<para
>&kdiff3; kan användas för att sammanfoga två eller tre indatafiler och sammanfogar automatiskt så mycket som möjligt. Resultatet visas i ett redigerbart fönster där de flesta konflikter kan lösas med ett enda musklick. Välj knapparna A/B/C i verktygsraden för att välja källan som ska användas. Du kan också välja mer än en källa. Eftersom utmatningsfönstret är en editor, kan till och med konflikter som behöver ytterligare korrigering lösas här utan att kräva ett annat verktyg. </para>
</sect2>
<sect2
><title
>Och ...</title>
<itemizedlist>
<listitem
><para
>Snabb navigering via knappar.</para
></listitem>
<listitem
><para
>Ett musklick i sammanfattningskolumnen synkroniserar alla fönster så att samma position visas.</para
></listitem>
<listitem
><para
>Markera och kopiera från vilket fönster som helst, och tdelistra in i resultatfönstret för sammanfogning.</para
></listitem>
<listitem
><para
>Översiktskolumn som visar var ändringar och konflikter finns.</para
></listitem>
<listitem
><para
>Färgerna kan justeras enligt dina specifika önskemål.</para
></listitem>
<listitem
><para
>Justerbar flikstorlek.</para
></listitem>
<listitem
><para
>Alternativ för att infoga mellanslag istället för tabulatortecken.</para
></listitem>
<listitem
><para
>Öppna filer bekvämt via dialogrutor, eller ange filnamn på kommandoraden.</para
></listitem>
<listitem
><para
>Sök efter strängar i alla textfönster. Sök (Ctrl+F) och Sök igen (F3)</para
></listitem>
<listitem
><para
>Visa radnummer för varje rad. </para
></listitem>
<listitem
><para
>Klistra in klippbordet eller dra text till ett indatafönster för jämförelse</para
></listitem>
<listitem
><para
>Nätverkstransparens via TDEIO.</para
></listitem>
<listitem
><para
>Kan användas för jämförelsevisning i KDevelop 3.</para
></listitem>
<listitem
><para
>Radbrytning för långa rader.</para
></listitem>
<listitem
><para
>Stöd för Unicode, UTF-8 och andra kodningar.</para
></listitem>
<listitem
><para
>Stöd för språk som läses från höger till vänster.</para
></listitem>
<listitem
><para
>...</para
></listitem>
</itemizedlist>
</sect2>
</sect1>
</chapter>
<chapter id="documentation"
><title
>Filjämförelse och sammanfogning</title>
<sect1 id="commandline"
><title
>Kommandoradsväljare</title>
<sect2
><title
>Jämföra två filer: </title>
<screen
><command
>kdiff3</command
> <replaceable
>fil1 fil2</replaceable
>
</screen>
</sect2>
<sect2
><title
>Sammanfoga två filer: </title>
<screen
><command
>kdiff3</command
> <replaceable
>fil1 fil2</replaceable
> -m
<command
>kdiff3</command
> <replaceable
>fil1 fil2</replaceable
> -o <replaceable
>utdatafil</replaceable
>
</screen>
</sect2>
<sect2
><title
>Jämföra tre filer: </title>
<screen
><command
>kdiff3</command
> <replaceable
>fil1 fil2 fil3</replaceable
>
</screen>
</sect2>
<sect2
><title
>Sammanfoga tre filer: </title>
<screen
><command
>kdiff3</command
> <replaceable
>fil1 fil2 fil3</replaceable
> -m
<command
>kdiff3</command
> <replaceable
>fil1 fil2 fil3</replaceable
> -o <replaceable
>utdatafil</replaceable
>
</screen>
<para
>Observera att <replaceable
>fil1</replaceable
> behandlas som bas för <replaceable
>fil2</replaceable
> och <replaceable
>fil3</replaceable
>. </para>
</sect2>
<sect2
><title
>Specialfall: Filer med samma namn </title>
<para
>Om alla filer har samma namn men finns i olika kataloger, kan du reducera hur mycket du måste skriva genom att bara ange filnamnet för den första filen. T.ex.: </para>
<screen
><command
>kdiff3</command
> <replaceable
>kat1/filnamn kat2 kat3</replaceable
>
</screen>
</sect2>
<sect2
><title
>Kommandorad för att starta en katalogjämförelse eller sammanfogning: </title>
<para
>Det här är mycket likt, men nu handlar det om kataloger.</para>
<screen
><command
>kdiff3</command
> <replaceable
>kat1 kat2</replaceable>
<command
>kdiff3</command
> <replaceable
>kat1 kat2</replaceable
> -o <replaceable
>målkat</replaceable>
<command
>kdiff3</command
> <replaceable
>kat1 kat2 kat3</replaceable>
<command
>kdiff3</command
> <replaceable
>kat1 kat2 kat3</replaceable
> -o <replaceable
>målkat</replaceable
>
</screen>
<para
>För katalogjämförelse och sammanfogning kan du fortsätta att läsa <link linkend="dirmerge"
>här</link
>.</para>
</sect2>
<sect2
><title
>Andra kommandoradsväljare</title>
<para
>För att se alla tillgängliga kommandoradsväljare, skriv</para>
<screen
><command
>kdiff3</command
> --help
</screen>
<para
>Exempel på utmatning:</para>
<screen
>Väljare:
-m, --merge Sammanfoga indata.
-b, --base file Explicit basfil. För att fungera tillsammans med vissa verktyg.
-o, --output file Utdatafil. Betyder underförstått -m. T.ex.: -o ny_fil.txt
--out file Utdatafil, igen. (för att fungera med vissa verktyg.)
--auto Inget grafiskt gränssnitt om alla konflikter kan lösas automatiskt (kräver -o fil)
--qall Lös inte konflikter automatiskt. (För att fungera med andra verktyg...)
--L1 alias1 Synlig ersättning av namn för indatafil 1 (bas).
--L2 alias2 Synlig ersättning av namn för indatafil 2.
--L3 alias3 Synlig ersättning av namn för indatafil 3.
-L, --fname alias Alternativ synlig ersättning av namn. Ange detta en gång för all indata.
--cs string Överskrid en inställning. Använd en gång för varje inställning, t.ex. --cs "AutoAdvance=1"
--confighelp Visa lista med inställningar och nuvarande värden.
--config file Använd en annan inställningsfil.
</screen>
<para
>Väljaren <option
>-cs</option
> låter dig justera ett inställningsalternativ som annars bara kan justeras via inställningsdialogrutorna. Men var medveten om att när &kdiff3; avslutas lagras det ändrade värdet tillsammans med andra inställningar. Med <option
>--confighelp</option
> kan du ta reda på namnen på tillgängliga alternativ och nuvarande värden.</para>
<para
>Via <option
>--config</option
> kan du ange en annan inställningsfil. Om du ofta använder &kdiff3; med helt olika inställningar låter det dig enkelt byta mellan dem.</para>
</sect2>
<sect2
><title
>Kommandoradsväljare som ignoreras</title>
<para
>Många personer vill använda &kdiff3; tillsammans med något versionshanteringssystem, men när versionshanteringssystemet anroppar &kdiff3; med kommandoradsväljare som &kdiff3; inte känner igen, avslutas &kdiff3; med ett fel. Integrationsinställningarna gör det möjligt att ange kommandoradsväljare som ska ignoreras av &kdiff3;. De visas i användningshjälpen som i det här exemplet:</para>
<screen
>--<replaceable
>väljare</replaceable
> Ignoreras. (anvädardefinierad)
</screen>
<variablelist>
<varlistentry
><term
><emphasis
>Kommandoradsväljare att ignorera:</emphasis
></term
><listitem
><para
>En lista med väljare, åtskilda med semikolon ';'. När en av dessa väljare finns på kommenderaden, ignorerar &kdiff3; den och kör utan att rapportera ett fel. (Förval är "u;query;html;abort").</para
></listitem
></varlistentry>
</variablelist>
<para
>Om det inte är nog, rekommenderas du att skriva ett skalskript som gör översättningen av väljare.</para>
</sect2>
</sect1>
<sect1 id="opendialog"
><title
>Dialogrutan Öppna</title>
<para
>Eftersom många indatafiler måste kunna väljas, har programmet en särskild öppningsdialogruta: </para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="open_dialog.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
<para
>Öppningsdialogrutan tillåter att filnamnen redigeras för hand, att en fil väljes via filbläddraren ("Fil...") eller att senast använda filer väljes i kombinationsrutan. Om du öppnar dialogrutan igen, finns de nuvarande namnen fortfarande där. Den tredje indatafilen krävs inte. Om fältet för "C" förblir tomt, görs bara en tvåvägs jämförelseanalys. </para
><para
>Du kan också välja en katalog med "Katalog...". Om en katalog anges för A, startar en katalogjämförelse och sammanfogning. Om A anger en fil, men B, C eller utmatningen anger en katalog, använder &kdiff3; filnamnet från A i de angivna katalogerna. </para
><para
>Om "Sammanfoga" är valt, blir raden "Utmatning" redigerbar. Det krävs dock inte att utdatafilens namn anges omedelbart. Du kan också vänta med detta till du sparar. </para
><para
>Knappen "Anpassa..." visar inställningsdialogrutan, så att du kan ställa in alternativ innan analysen utförs. </para>
</sect1>
<sect1 id="pasteinput"
><title
>Klistra in eller släpp indata</title>
<para
>Ibland vill du jämföra delar av en text som inte är en egen fil. &kdiff3; låter dig också tdelistra in text från klippbordet i det indatafönster för jämförelse som har fokus. Jämförelseanalysen sker då omedelbart. I öppningsdialogrutan behöver du då inte ange filer, utan bara stänga den via "Avbryt". </para
><para
>Du kan också använda drag och släpp: Dra en fil från en filhanterare eller markerad text från en editor och släpp den på ett indatafönster för jämförelse. </para
><para
>Vad är idén? Ibland innehåller en fil två liknande funktioner, men att kontrollera hur lika de verkligen är blir en stor ansträngning om du först måste skapa två filer och sedan ladda dem. Nu kan du helt enkelt kopiera, tdelistra in och jämföra de relevanta avsnitten. </para
><para
>För närvarande kan du inte dra någonting från &kdiff3;. Bara att släppa indata i jämförelsefönstret stöds. </para
><para
>Varning: Vissa editorer tolkar fortfarande drag och släpp till ett annat program som klipp ut (istället för kopiera) och tdelistra in. Ditt ursprungliga data kan då gå förlorat. </para>
</sect1>
<sect1 id="interpretinginformation"
><title
>Jämföra filer och tolka informationen i indatafönstren</title>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="screenshot_diff.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
<sect2
><title
>Informationsrad</title
><para
>Längst upp i varje textfönster finns dess "informationsrad". Informationsraderna i indatafönstret innehåller bokstaven "A", "B" eller "C", filnamnet och radnumret för den första synliga raden i fönstret. (Observera att fönstret "C" är valfritt.) Varje informationsrad visas i en egen färg. </para
><para
>När du väljer en annan fil genom att bläddra eller avslutar redigera filnamnet här genom att trycka på returtangenten, laddas den nya filen och jämförs med filen eller filerna som redan är laddade. </para
></sect2
><sect2
><title
>Färgläggning</title
><para
>De tre indatafönstren tilldelas bokstäverna "A", "B" och "C". "A" har blå färg, "B" har grön färg och "C" har magenta. (Det är förvalda färger, men de kan ändras via menyn Inställningar.) </para
><para
>När en skillnad upptäcks visar färgen vilken indatafil som skiljer sig åt. När båda övriga indatafiler skiljer sig åt, är färgen som används för att uttrycka det normalt röd ("Konfliktfärg" i inställningarna). Det här färgläggningsschemat är särskilt användbart i fallet med tre indatafiler, som syns i nästa avsnitt (<link linkend="merging"
>Sammanfogning</link
>). </para
></sect2
><sect2
><title
>Sammanfattningskolumn</title
><para
>Till vänster om varje text är "sammanfattningskolumnen". Om skillnader uppstod på en rad, visar sammanfattningskolumnen motsvarande färg. För en skillnad som bara består av blanktecken är sammanfattningen kryssad. För programspråk, där blanktecken inte är så viktiga är det användbart för att se med en blick om något av vikt ändrades. (För C/C++ är blanktecken bara intressanta inne i strängar, i kommentarer, för preprocessorn och i några mycket esoteriska situationer.) </para
><para
>Den vertikala linjen som skiljer sammanfattningskolumnen och texten är avbruten om indatafilen inte har några rader där. När radbrytning är aktiverad visas den vertikala linjen med punkter för brutna rader. </para
></sect2
><sect2
><title
>Översiktskolumn</title
><para
>På höger sida är en "översiktskolumn" synlig till vänster om den vertikala rullningslisten. Den visar en komprimerad sammanfattning av indata "A". Alla skillnader och konflikter är synliga med en blick. När bara två indatafönster används, syns alla skillnader i rött här, eftersom alla skillnader också är konflikter. En svart rektangel ramar in den synliga delen av indata. För mycket långa indatafiler, där antalet indatarader är större än höjden på översikten i bildpunkter, delar flera indatarader en översiktsrad. En konflikt har prioritet över enkla skillnader, som har prioritet över inga ändringar, så att inga skillnader eller konflikter går förlorade här. Genom att klicka på översiktskolumnen visas motsvarande text. </para
></sect2
><sect2 id="manualdiffhelp"
><title
>Justera rader manuellt</title
><para
>Ibland placerar algoritmen fel rader intill varandra, eller så vill du jämföra ett textstycke med text på en helt annan position i den andra filen. I dessa fall kan du manuellt tala om för &kdiff3; att vissa rader ska arrangeras i rak linje. Markera texten som du vill arrangera med musen, som du skulle göra vid kopiera och tdelistra in, i det första jämförelsefönstret och välj därefter "Lägg till manuell justering av jämförelse" i menyn "Jämförelsevy" (snabbtangenten "Ctrl+Y"). En orange rad visas i sammanfattningskolumnen intill den markerade texten. Upprepa det för den andra och (om tillgänglig) tredje jämförelsevyn. &kdiff3; beräknar omedelbart om jämförelsen varje gång du gör det, och radar upp de markerade raderna. Naturligtvis kanske några av raderna som tidigare matchade inte längre matchar. </para
><para
>För närvarande stöder inte sammanfogning användning av manuell hjälp vid jämförelse. </para
></sect2>
</sect1>
<sect1 id="merging"
><title
>Sammanfogning och editorfönstret för sammanfogningsutdata</title>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="screenshot_merge.png" format="PNG"/></imageobject>
</mediaobject
></screenshot>
<para
>Editorfönstret för sammanfogningsutdata (under indatafönstren för jämförelse) har också en informationsrad längst upp som visar "Utmatning", filnamnet och "[Ändrad]" om du redigerat något. Oftast innehåller det någon text från de automatiska sammanfogningsfunktionerna, men det innehåller också ofta konflikter. </para
><para
>Spara är inaktiverat till alla konflikter är lösta! (Använd knapparna "Gå till föregående/nästa olösta konflikt" för att hitta återstående konflikter.) </para
><para
>Med bara två filer är varje skillnad också en konflikt, som måste lösas manuellt. </para
><para
>Med tre indatafiler behandlas den första som bas, medan den andra och tredje indatafilen innehåller ändringar. Om bara indata B eller C har ändrats för en viss rad, men inte båda väljes den ändrade källan automatiskt. Bara om B och C har ändrats på samma rader, detekterar verktyget en konflikt som måste lösas manuellt. När B och C är likadana, men inte samma som A, väljes C. </para
><sect2
><title
>Sammanfattningskolumnen</title
><para
>Editorfönstret för sammanfogningsutdata har också en sammanfattningskolumn till vänster. Den visar bokstaven för indata som raden valdes, eller ingenting om alla tre källorna var likadana för raden. Vid konflikter visar den ett frågetecken "?" och raden visar "< Konflikter vid sammanfogning >", allt med rött. Eftersom det skulle ta mycket lång tid att lösa konflikter rad för rad, grupperas rader i grupper som har samma skillnader och konfliktkaraktär. Konflikter med bara blanktecken skiljs dock från andra konflikter för att förbättra sammanfogningen av filer där indenteringen ändrats på många rader. </para
></sect2
><sect2 id="synchronise_views"
><title
>Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns position</title
><para
>När du klickar på sammanfattningskolumnen med vänster musknapp i endera fönstret, så markeras gruppen som hör till den raden i alla fönster och gruppens början visas. (Det här kan innebära ett automatiskt byte av position i fönstren om gruppens början inte syns.) Gruppen blir då den "aktuella gruppen". Den markeras med "Bakgrundsfärgen för aktuellt jämförelseintervall" och en svart rad visas till vänster om texten. </para
></sect2
><sect2
><title
>Välja indata A, B eller C för aktuell konflikt och redigering</title
><para
>Knappraden under menyraden innehåller tre knappar för indataval som innehåller bokstäverna "A", "B" och "C". Klicka på knappen för indataval för att infoga rader (eller ta bort dem om de redan infogats) från respektive källfil. För att välja rader från flera indatafiler klicka på respektive knappar i nödvändig ordning. Om du till exempel vill att rader från "B" ska hamna före rader från "A" i utdata, klicka först på "B" och därefter på "A". </para
><para
>Om du använder alternativet för att automatiskt gå vidare (<link linkend="autoadvance"
>Gå automatiskt till nästa olösta konflikt efter val av källa</link
>), måste du inaktivera det innan du väljer rader från flera indatafiler eller om du vill redigera raderna efter du valt dem. Annars går &kdiff3; till nästa konflikt efter den första indatafilen valts. </para
><para
>Det är ofta användbart att direkt redigera sammanfogad utdata. Sammanfattningskolumnen visar "m" för varje rad som ändrades manuellt. När skillnaderna till exempel justeras på ett sätt så att ett enkelt val av indata inte är tillfredsställande, kan du markera texten som behövs och använda normal <link linkend="selections"
>kopiera och tdelistra in</link
> för att placera den i sammanfogad utdata. </para
><para
>Ibland, när en rad tas bort antingen på grund av automatisk sammanfogning eller genom redigering och inga andra rader finns kvar i gruppen, visas texten <Ingen källrad> på raden. Det är bara en platsmarkör för gruppen om du ändrar dig och väljer en källa igen. Texten syns inte i sparade filer eller i några markeringar som du vill kopiera och tdelistra in. </para
><para
>Texten "< Konflikter vid sammanfogning >" visas på klippbordet om du kopierar och tdelistrar in någon text som innehåller en sådan rad. Men var ändå försiktig med att göra det. </para
></sect2
><sect2
><title
>Välja indata A, B eller C för alla konflikter</title
><para
>Den normala sammanfogningen börjar med att automatiskt lösa enkla konflikter. Menyn "Sammanfoga" tillhandahåller också några alternativ för andra vanliga behov. Om du måste välja samma källfil för de flesta konflikter, kan du välja "A", "B" eller "C" överallt, eller bara för återstående olösta konflikter, eller för olösta konflikter med blanktecken. Om du vill bestämma själv för varje enskild skillnad, kan du "Ändra skillnader till konflikter", eller om du vill återgå till de automatiska valen i &kdiff3; kan du välja "Lös automatiskt enkla konflikter". Då startar &kdiff3; om sammanfogningen. För åtgärder som påverkar dina tidigare ändringar frågar &kdiff3; om bekräftelse innan åtgärden utförs. </para
><para
>Observera: När endera källan väljes för olösta konflikter för blanktecken och alternativet "Ignorera siffror" eller "Ignorera C/C++ kommentarer" används, så behandlas ändringar i siffror eller kommentarer också som blanktecken. </para
></sect2
><sect2 id="vcskeywordsmergesupport"
><title
>Sammanfoga automatiskt nyckelord för versionshantering och historik (logg)</title
><para
>Många versionshanteringssystem stöder särskilda nyckelord i filen (t.ex. "$Date$", "$Header$", "$Author$", "$Log$" etc.) Vid arkivering ändrar versionshanteringssystemet (VCN) dessa rader. Till exempel ändras "$Date$" till "$Date: 2005/03/22 18:45:01 $". Eftersom raden är olika i varje version av filen, skulle den kräva manuell interaktion under sammanfogningen. </para
><para
>&kdiff3; erbjuder automatisk sammanfogning av dessa poster. För enkla rader som matchar alternativet "Reguljärt uttryck för automatisk sammanfogning" i alla indatafiler väljer &kdiff3; raden från B, eller om tillgänglig, den från C. (Dessutom är det nödvändigt att raderna i fråga radas upp i jämförelsen och att föregående rad inte innehåller en konflikt.) Den automatiska sammanfogningen kan antingen utföras omedelbart när sammanfogningen startas (aktivera alternativet "Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar") eller senare via "Kör automatisk sammanfogning med reguljärt uttryck" i menyn Sammanfoga. </para
><para
>Automatisk sammanfogning för versionshanteringshistorik (också kallat "logg") stöds också. Automatisk sammanfogning av historik kan antingen utföras omedelbart när sammanfogningen startas genom att aktivera alternativet "Sammanfogning enligt versionshanteringshistorik när sammanfogning startar" eller senare via "Lös automatiskt historikkonflikter" i menyn Sammanfoga. </para
><para
>Oftast börjar versionshanteringshistoriken med en rad som innehåller nyckelordet "$Log$". Den måste matchas av alternativet "Reguljärt uttryck för historikens början". &kdiff3; detekterar vilka efterföljande rader som ingår i historiken genom att analysera de inledande tecknen som fanns före nyckelordet "$Log$". Om samma "inledande kommentar" också finns på följande rader inkluderas de också i historiken. </para
><para
>Vid varje arkivering skriver VCS en unik rad som anger version, datum- och tidsinformation följd av rader med användarens kommentarer. Raderna utgör en historikpost. Historikavsnittet växer vid varje arkivering och de senaste posterna visas längst upp (efter historikens startrad). </para
><para
>När två utvecklare arkiverar grenar av en fil under parallell utveckling, kommer historiken för sammanfogning att innehålla flera poster som visas som konflikter under sammafogning av grenarna. Eftersom sammafogning av dem kan bli mycket tröttsam, erbjuder &kdiff3; stöd för den med två möjliga strategier: Bara infoga historikinformationen från båda bidragsgivarna längst upp, eller sortera historikinformationen enligt en användardefinierad nyckel. </para
><para
>Metoden att bara infoga alla poster är enklast att ställa in. &kdiff3; behöver bara en metod att detektera vilka rader som hör till en historikpost. De flesta VCS infogar en tom rad efter varje historikpost. Om det inte finns några andra tomma rader, är det ett tillräckligt villkor för &kdiff3;. Ange bara en tom "Reguljärt uttryck för historikens början". Om kriteriet med en tom rad inte är tillräckligt kan du ange ett reguljärt uttryck för att detektera historikpostens början. </para
><para
>Observera att &kdiff3; tar bort duplicerade historikposter.Om en historikpost fanns flera gånger i en indatafils historik, förblir bara en post i utmatningen. </para
><para
>Om du vill sortera historiken måste du ange hur sorteringsnyckeln ska byggas. Använd parenteser som i "Reguljärt uttryck för historikpostens början" för att gruppera delar av det reguljära uttrycket som senare ska användas i sorteringsnyckeln. Ange därefter "Sorteringsnycklarnas ordning från historikpostens början" med en lista av nummer som refererar till gruppens position i det reguljära uttrycket åtskilda av kommatecken ",". </para
><para
>Eftersom det inte är så enkelt att få det rätt omedelbart, kan du prova och förbättra det reguljära uttrycket och nyckelgenereringen i en särskild dialogruta genom att klicka på knappen "Prova dina reguljära uttryck". </para
><para
>Antag att historiken ser ut så här: <screen>
/**************************************************************************
** HISTORIK: $Log: \toms_sammanfogning_huvudvy\Mitt_program\kod\komplexalgoritm.cpp $
**
** \head\integreringsgren_12 2 Apr 2001 10:45:41 tom
** Sammanfogade grenen simongren_15.
**
** \main\henry_felrättningsgren_7\1 30 Mar 2001 19:22:05 henry
** Förbättrade hastigheten för delrutinen omvandlaTill().
** Fixade krasch.
**************************************************************************/
</screen
> Historikens inledande rad matchar det reguljära uttrycket ".*\$Log.*\$.*". Därefter följer historikposterna. </para
><para
>Raden med nyckelordet "$Log$" börjar med två "*" och därefter följer ett mellanslag. &kdiff3; använder den första strängen utan blanktecken som "inledande kommentar" och antar att historiken slutar med den första raden utan denna inledande kommentar. I exemplet slutar den sista raden med en sträng som också börjar med två "*", men istället för ett mellanslag följer fler "*". Därför avslutar denna rad historiken. </para
><para
>Om sortering av historiken inte krävs kan det reguljära uttrycket för historikpostens början se ut så här. (Raden är delad i två eftersom den inte skulle få plats annars.) <screen>
\s*\\main\\\S+\s+[0-9]+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
[0-9][0-9][0-9][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9]\s+.*
</screen
> För detaljinformation om reguljära uttryck se <ulink url="http://doc.trolltech.com/3.3/qregexp.html#details"
>Trolltechs dokumentation av reguljära uttryck</ulink
>. Observera att "\s" (med ett litet "s") matchar alla blanktecken och "\S" (med ett stort "S") matchar alla tecken som inte är blanktecken. I vårt exempel innehåller historikpostens början först versionsinformation med det reguljära uttrycket "\\main\\\S+", datumet som består av dagen "[0-9]+", månaden "(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)" och året "[0-9][0-9][0-9][0-9]", tiden "[0-9][0-9]:[0-9][0-9]:[0-9][0-9]" och till sist utvecklarens inloggningsnamn ".*". Observera att den inledande kommentaren (i exemplet "**") redan har tagits bort av &kdiff3; innan matchningsförsöket, därför börjar det reguljära uttrycket med en matchning av en eller flera blanktecken "\s*". </para
><para
>Om du kräver sorterad historik måste sorteringsnyckeln beräknas. För att göra det måste relevanta delar i det reguljära uttrycket grupperas med parenteser. (De extra parenteserna kan också vara kvar även om historiksortering inaktiveras.) <screen>
\s*\\main\\(\S+)\s+([0-9]+) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)
([0-9][0-9][0-9][0-9]) ([0-9][0-9]:[0-9][0-9]:[0-9][0-9])\s+(.*)
</screen
> Parenteserna innehåller nu 1. versionsinformation, 2. dag, 3. månad, 4. år, 5. tid, 6. namn. Men om vi vill sortera enligt datum och tid måste vi skapa en nyckel med elementen synliga i en annan ordning: Först året, följt av månad, dag, tid, versionsinformation och namn. Därför ska sorteringsnyckelns ordning som anges vara "4,3,2,5,1,6". </para
><para
>Eftersom månadsnamn inte är bra att sortera enligt ("Apr" skulle vara först) detekterar &kdiff3; vilken ordning månadsnamnen anges och använder det numret istället ("Apr"->"04"). Och om ett rent nummer hittas omvandlas det till ett fyrasiffrors värde med inledande nollor för sortering. Till sist blir den resulterande sorteringsnyckeln för den första historikpostens inledande rad: <screen
>2001 04 0002 10:45:41 integreringsgren_12 tom
</screen>
</para
><para
>För mer information, se också <link linkend="diffmergeoptions"
>Inställningar av jämför och sammanfoga</link
>. </para>
</sect2>
</sect1>
<sect1 id="navigation"
><title
>Navigering och redigering</title>
<para
>Mycket navigering görs med rullningslisterna och musen, men du kan också navigera med tangentbordet. Om du klickar på något fönster kan du använda markörtangenterna vänsterpil, högerpil, uppåtpil, neråtpil, Page Up, Page Down, Home, End, Ctrl+Home och Ctrl+End som du kan i andra program. Sammanfattningskolumnen intill indatafilernas vertikala rullningslist kan också användas för att navigera genom att klicka i den. </para
><para
>Du kan också använda hjulmusen för att rulla uppåt och neråt. </para
><para
>I editorn för sammanfogningsutdata kan du också använda andra tangenter för redigering. Du kan byta mellan infognings- och ersättningsläge med tangenten Insert. (Normalläget är infoga.) </para
><para
>Ett klick med vänster musknapp i någon sammanfattningskolumn synkroniserar alla fönster för att visa början på samma grupp av rader (som förklaras i avsnittet <link linkend="synchronise_views"
>Ställa in aktuell grupp och synkronisera sammanfognings- och jämförelsevyns position</link
>). </para
><para
>Verktygsraden innehåller också nio navigeringsknappar som du kan använda för att gå till aktuell/första/sista skillnaden, till nästa/föregående skillnad (Ctrl+Neråtpil eller Ctrl+Uppåtpil), till nästa/föregående konflikt (Ctrl+Page Down eller Ctrl+Page Up) eller till nästa/föregående olösta konflikt. Observera att för &kdiff3; förblir en "konflikt" som inte automatiskt löstes vid start av sammanfogningen alltid en "konflikt" även om den är löst. Därav nödvändigheten att särskilja "olösta konflikter". </para>
<sect2 id="autoadvance"
><title
>Automatisk fortsättning</title>
<para
>Det finns också en knapp som heter "Gå automatiskt till nästa olösta konflikt efter val av källa" (automatisk fortsättning). Om du aktiverar det här, så går &kdiff3; automatiskt till nästa olösta konflikt när en källa väljes. Det kan hjälpa till när du bara vill välja en källa. När du behöver båda källor, eller du vill redigera efter valet, bör du troligen stänga av det här. Innan &kdiff3; fortsätter till nästa olösta konflikt, visas effekten av valet en kort tid. Den här fördröjningen kan justeras i inställningarna under Jämför och sammanfoga. Du kan ange "Fördröjning vid automatisk fortsättning" i millisekunder mellan 0 och 2000. Tips: Är du trött på många klick? Använd en kort fördröjning vid automatisk fortsättning och snabbtangenterna Ctrl+1/2/3 för att välja A/B/C för många konflikter. </para>
</sect2>
</sect1>
<sect1 id="selections"
><title
>Markera, kopiera och tdelistra in</title>
<para
>Indatafönstren visar inte någon markör, så markeringar måste göras med musen, genom att klicka med vänster musknapp på början, hålla nere musknappen och gå till slutet, där musknappen släpps upp igen. Du kan också markera ett ord genom att dubbelklicka på det. I editorn för sammanfogningsutdata kan du också markera med tangentbordet, genom att hålla nere skifttangenten och navigera med piltangenterna. </para
><para
>Om markeringen överstiger det synliga området, kan du flytta musen över fönsterkanterna, vilket gör att &kdiff3; rullar i den riktningen. </para
><para
>För mycket stora markeringar kan du också använda navigationstangenterna medan musknappen hålls nere. Använd t.ex. Page Up och Page Down för att snabbt gå till en viss position. Släpp upp musknappen på slutpositionen. </para
><para
>För att markera allt i det nuvarande fönstret, använd menyn "Redigera" -> "Markera allt" (Ctrl+A). </para
><para
>För att kopiera till klippbordet måste du trycka på knappen "Kopiera" (Ctrl+C eller Ctrl+Insert). Men det finns ett alternativ som heter "Kopiera automatiskt markering". Om det är aktiverat, kopieras vad du än väljer omedelbart, och du behöver aldrig explicit kopiera. Men var försiktig när du använder detta, eftersom klippbordets innehåll kan förstöras av misstag. </para
><para
>"Klipp ut" (Ctrl+X eller Skift+Delete) kopierar till klippbordet och tar bort den markerade texten. </para
><para
>"Klistra in" (Ctrl+V eller Skift+Insert) infogar texten på klippbordet vid markörens position eller istället för den nuvarande markeringen. Om du tdelistrar in i något av jämförelsefönstren visas klippbordets innehåll i fönstret och jämförelsen startas omedelbart om. Det är användbart om du snabbt vill hämta ett textstycke någonstans och jämföra det med något annat utan att först skapa filer. </para>
</sect1>
<sect1 id="saving"
><title
>Spara</title>
<para
>Att spara tillåts bara när alla konflikter är lösta. Om filen redan finns och alternativet "Säkerhetskopiera filer" är markerat, ändras originalversionens namn med tillägg av filändelsen .orig, och om en sådan fil redan finns tas den bort. När du avslutar eller startar en ny jämförelseanalys och data inte sparats ännu, frågar &kdiff3; om du vill spara, avbryta eller fortsätta utan att spara. (&kdiff3; fångar inga signaler, så om du "dödar" &kdiff3; går data förlorat.) </para
><para
>Radslut sparas enligt den normala metoden i det underliggande operativsystemet. För Unix slutar varje rad med ett nyradstecken "\n", medan för Windows-baserade system slutar varje rad med ett returtecken och ett nyradstecken "\r\n". &kdiff3; behåller inte radslut för indatafilerna, vilket också betyder att du inte ska använda &kdiff3; med binärfiler. </para>
</sect1>
<sect1 id="find"
><title
>Söka efter strängar</title>
<para
>Du kan söka efter en sträng i vilket textfönster som helst i &kdiff3;. Kommandot "Sök..." (Ctrl+F) i menyn Redigera, visar en dialogruta som låter dig ange strängen att söka efter. Du kan också välja de fönster som ska sökas. Sökning startar alltid från början. Använd kommandot "Sök igen" (F3) för att fortsätta till nästa förekomst. Om du väljer att söka i flera fönster, söks det första fönstret från början till slut innan sökningen fortsätter från början i nästa fönster, etc. </para>
</sect1>
<sect1 id="printing"
><title
>Utskrift</title>
<para
>&kdiff3; stöder utskrift av skillnader mellan textfiler. Kommandot "Skriv ut..." (Ctrl+P) i menyn Arkiv visar en dialogruta som låter dig välja skrivare och justera andra alternativ. </para
><para
>Det finns flera möjligheter att justera intervallet. Beroende på olika utskriftsdialogrutor på olika operativsystem, varierar metoden för att åstadkomma val av ett visst intervall. </para>
<variablelist>
<varlistentry
><term
>Alla:</term
><listitem
><para
>Skriv ut allt.</para
></listitem
></varlistentry>
<varlistentry
><term
>Aktuell:</term
><listitem
><para
>Skriv ut en sida som börjar på den första synliga raden i fönstret. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 10000 för utskrift.)</para
></listitem
></varlistentry>
<varlistentry
><term
>Markering:</term
><listitem
><para
>Innan du väljer att skriva ut, markera text med musen (som för kopiera och tdelistra in) i ett av jämförelsefönstren för att definiera start- och slutrad. Om ingen text var markerad i något av jämförelsefönstren, är inte alternativet tillgängligt. (På system utan alternativet kan det åstadkommas genom att ange sidnumret 9999 för utskrift.)</para
></listitem
></varlistentry>
<varlistentry
><term
>Intervall:</term
><listitem
><para
>Ange första och sista sidan. </para
></listitem
></varlistentry>
</variablelist>
<para
>Andra viktiga inställningar för utskrift tas från de normala inställningarna: </para
><itemizedlist>
<listitem
><para
>Teckensnitt, teckenstorlek</para
></listitem>
<listitem
><para
>Visa radnummer</para
></listitem>
<listitem
><para
>Radbryt</para
></listitem>
<listitem
><para
>Färger</para
></listitem>
<listitem
><para
>etc.</para
></listitem>
</itemizedlist>
<para
>Liggande formatering rekommenderas också för utskrift. </para>
</sect1>
<sect1 id="options"
><title
>Alternativ</title>
<para
>Alternativ och listan med senaste filer sparas när du avslutar programmet, och laddas igen när du startar det. (Menyn Inställningar -> Anpassa &kdiff3;...) </para>
<sect2
><title
>Teckensnitt</title>
<para
>Välj ett teckensnitt med fast breddsteg. (På vissa system visar dialogrutan också teckensnitt med variabel bredd, men du bör inte använda dem.) </para>
<variablelist>
<varlistentry
><term
><emphasis
>Kursiv stil för skillnader:</emphasis
></term
><listitem
><para
>Om du markerar detta, visas textskillnader med kursiv version av det valda teckensnittet. Om teckensnittet inte stöder kursiv stil, gör det ingenting.</para>
</listitem
></varlistentry>
</variablelist>
</sect2>
<sect2
><title
>Färger</title>
<variablelist>
<varlistentry
><term
><emphasis
>Förgrundsfärg:</emphasis
></term
><listitem
><para
>Oftast svart. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Bakgrundsfärg:</emphasis
></term
><listitem
><para
>Oftast vit. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Bakgrundsfärg för jämförelse:</emphasis
></term
><listitem
><para
>Oftast ljusgrå. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg A:</emphasis
></term
><listitem
><para
>Oftast mörkblå. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg B:</emphasis
></term
><listitem
><para
>Oftast mörkgrön. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg C:</emphasis
></term
><listitem
><para
>Oftast mörk magenta. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Konfliktfärg:</emphasis
></term
><listitem
><para
>Oftast röd.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Bakgrundsfärg för aktuellt intervall:</emphasis
></term
><listitem
><para
>Oftast ljusgul.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Bakgrundsfärg för aktuellt jämförelseintervall:</emphasis
></term
><listitem
><para
>Oftast mörkgul.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg för manuellt valda jämförelseintervall:</emphasis
></term
><listitem
><para
>Oftast orange.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg för nyaste fil i katalogjämförelse:</emphasis
></term
><listitem
><para
>Oftast grön.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg för äldsta fil i en katalogjämförelse:</emphasis
></term
><listitem
><para
>Oftast röd.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg för medelgamla filer i en katalogjämförelse:</emphasis
></term
><listitem
><para
>Oftast mörkgul.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Färg för saknade filer i en katalogjämförelse:</emphasis
></term
><listitem
><para
>Oftast svart.</para
></listitem
></varlistentry>
</variablelist>
<para
>Att ändra färgerna för katalogjämförelser får inte någon effekt förrän nästa katalogjämförelse startas. </para>
<para
>För system med bara 16 eller 256 färger är vissa rena färger inte tillgängliga. För sådana system väljer knappen "Förval" en ren färg. </para>
</sect2>
<sect2
><title
>Inställningar för editor</title>
<variablelist>
<varlistentry
><term
><emphasis
>Tabulator infogar mellanslag:</emphasis
></term
><listitem
><para
>Om det här inte är markerat, och du trycker på tabulatortangenten, infogas en tabulator, annars infogas lämpligt antal mellanslag.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Tabulatorbredd:</emphasis
></term
><listitem
><para
>Kan justeras för dina speciella behov. Normalvärdet är 8. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Automatisk indentering:</emphasis
></term
><listitem
><para
>När du trycker på Enter eller returtangenten, används föregående rads indentering för den nya raden. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Kopiera automatiskt markering:</emphasis
></term
><listitem
><para
>Varje markering kopieras omedelbart till klippbordet när den aktiveras, och du behöver inte kopiera den explicit. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Radslutstil:</emphasis
></term
><listitem
><para
>När du sparar kan du välja vilken radslutsstil du föredrar. Förvald inställning är det vanliga valet för operativsystemet som används. </para
></listitem
></varlistentry>
</variablelist>
</sect2>
<sect2 id="diffmergeoptions"
><title
>Inställningar av jämför och sammanfoga</title>
<para
>När filer jämförs försöker &kdiff3; först att matcha rader som är lika i alla indatafiler. Det är bara under detta steg som blanktecken kan ignoreras. Det andra steget jämför varje rad. Under detta steg ignoreras inte blanktecken. Under sammanfogning ignoreras inte heller blanktecken. </para>
<variablelist>
<varlistentry
><term
><emphasis
>Behåll returtecken:</emphasis
></term
><listitem
><para
>Vissa editorer (på vissa system) sparar returtecken '\r' och nyradstecken '\n' i slutet på raden, medan andra bara sparar nyradstecknet '\n'. Oftast ignorerar &kdiff3; returtecknet, men då ser filer som inte har samma storlek likadana ut vid jämförelse sida vid sida. När det här alternativet är markerat, görs returtecken synliga, men behandlas som blanktecken. Det här alternativet måste vara av under en sammanfogning. Normalvärdet är av.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Ignorera siffror:</emphasis
></term
><listitem
><para
>Normalvärdet är av. Siffertecken ('0'-'9', '.', '-') ignoreras under första delen av analysen när radmatchningen görs. Skillnaderna för resultatet visas ändå, men de behandlas som blanktecken. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Ignorera C/C++ kommentarer:</emphasis
></term
><listitem
><para
>Normalvärdet är av. Ändringar i kommentarer behandlas som ändringar i blanktecken. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Ignorera skiftläge:</emphasis
></term
><listitem
><para
>Normalvärdet är av. Ändringar i skiftläge för tecken (som 'A' eller 'a') hanteras som ändringar i blanktecken. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Preprocessorkommando:</emphasis
></term
><listitem
><para
>Se <link linkend="preprocessors"
>nästa avsnitt</link
>. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Radmatchande preprocessorkommando:</emphasis
></term
><listitem
><para
>Se <link linkend="preprocessors"
>nästa avsnitt</link
>. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Var noggrann:</emphasis
></term
><listitem
><para
>Gör en ansträngning att hitta en ännu mindre skillnad (Normalvärdet är på). Det här är troligen effektivt för komplicerade och stora filer, och långsamt för mycket stora filer. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Fördröjning vid automatisk fortsättning (ms):</emphasis
></term
><listitem
><para
>I automatiskt fortsättningsläge anger den här inställningen hur länge resultatet för gruppen ska visas innan hopp till nästa olösta konflikt. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Standardvärde för sammanfogning av blanktecken med två/tre filer:</emphasis
></term
><listitem
><para
>Lös automatiskt alla konflikter för blanktecken genom att välja angiven fil. (Normalvärdet är manuellt val.) Användbart om blanktecken verkligen är oviktiga i många filer. Om du bara behöver det ibland, är det bättre att använda "Välj A/B/C för olösta konflikter med blanktecken" i menyn Sammanfoga. Observera att om du antingen aktiverar "Ignorera siffror" eller "Ignorera C/C++ kommentarer" gäller det automatiska valet också vid konflikter för siffror eller kommentarer. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Reguljärt uttryck för automatisk sammanfogning:</emphasis
></term
><listitem
><para
>Reguljärt uttryck för rader där &kdiff3; automatisk ska välja en källa. Se också <link linkend="vcskeywordsmergesupport"
>Automatisk sammanfogning ...</link
> </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Kör automatisk sammanfogning med reguljärt uttryck när sammanfogning startar:</emphasis
></term
><listitem
><para
>Om aktiverad utför &kdiff3; den automatiska sammanfogningen med "Reguljärt uttryck för automatisk sammanfogning" när en sammanfogning startas. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Reguljärt uttryck för historikens början:</emphasis
></term
><listitem
><para
>Reguljärt uttryck för början av historikposten för sammanfogning. Oftast innehåller raden nyckelordet "$Log$". Förvalt värde: ".*\$Log.*\$.*" </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Reguljärt uttryck för historikpostens början:</emphasis
></term
><listitem
><para
>En historikpost för sammanfogning består av flera rader. Ange det reguljära uttrycket för att detektera den första raden (utan inledande kommentar). Använd parenteser för att gruppera nycklarna du vill använda för sortering. Om det lämnas tomt, antar &kdiff3; att tomma rader skiljer historikposterna åt. Se också <link linkend="vcskeywordsmergesupport"
>Automatisk sammanfogning ...</link
> </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Sortering av historiksammanfogning:</emphasis
></term
><listitem
><para
>Aktivera sortering av versionshanteringshistorik. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Sorteringsnycklarnas ordning från historikpostens början:</emphasis
></term
><listitem
><para
>Varje parentes som används i det reguljära uttrycket för historikens startpost grupperar en nyckel som kan användas för sortering. Ange listan med nycklar (som numreras i ordning de uppträder med början på 1) med ',' som skiljetecken (t.ex. "4,5,6,1,2,3,7"). Om det lämnas tomt utförs ingen sortering. Se också <link linkend="vcskeywordsmergesupport"
>Automatisk sammanfogning ...</link
> </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Sammanfogning enligt versionshanteringshistorik när sammanfogningen startar:</emphasis
></term
><listitem
><para
>Om aktiverad utför &kdiff3; den automatiska sammafogningen av historik med tidigarenämnda alternativ när en sammanfogning startas. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Prova dina reguljära uttryck</emphasis
></term
><listitem
><para
>Knappen visar en dialogruta som låter dig förbättra och prova det reguljära uttrycket ovan. Kopiera bara respektive data från dina filer till exempelraderna. "Matchningsresultat" visar omedelbart om matchningen lyckas eller inte. "Sorteringsnyckelresultat" visar nyckeln som används för sortering vid sammanfogning av historik. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Ej relevant sammanfogningskommando:</emphasis
></term
><listitem
><para
>Ange ett eget kommando som ska anropas när &kdiff3; detekterar att filen från B inte bidrar med något relevant data som inte reda finns i filen från C. Kommandot anropas med de tre filnamnen som parametrar. Data som matchas av "Reguljärt uttryck för automatisk sammanfogning" eller i historiken anses inte vara relevant. </para
></listitem
></varlistentry>
</variablelist>
</sect2>
<sect2
><title
>Katalogsammanfogning</title>
<para
>De här alternativen har att göra med avsökning av katalogen och hantering av sammanfogningen: Se <link linkend="dirmergeoptions"
>Katalogjämförelse och sammanfogning</link
> för detaljinformation. </para
><para
>Ändå finns det ett alternativ här som också är relevant för att spara enstaka filer: </para>
<variablelist>
<varlistentry
><term
><emphasis
>Säkerhetskopiera filer:</emphasis
></term
><listitem
><para
>När en fil sparas och en äldre version redan finns, ändras originalversionens namn med tillägg av filändelsen ".orig". Om en gammal säkerhetskopia med filändelsen ".orig" redan finns tas den bort utan säkerhetskopiering. </para
></listitem
></varlistentry>
</variablelist>
</sect2>
<sect2
><title
>Inställningar för region och språk</title>
<variablelist>
<varlistentry
><term
><emphasis
>Språk:</emphasis
></term
><listitem
><para
>Justera användargränssnittets språk. Att ändra alternativet påverkar inte programmet som kör. Du måste avsluta och starta om &kdiff3; för att ändra språk. (Alternativet är inte tillgängligt i KDE-versionen av &kdiff3;, eftersom språket kan justeras i de allmänna KDE-inställningarna.) </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Använd samma kodning för allt:</emphasis
></term
><listitem
><para
>Följande kodningsalternativ kan justeras separat för varje objekt, eller om alternativet är sant, ställs alla värden in till det första värdet. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Lokal kodning:</emphasis
></term
><listitem
><para
>Ovanför kodningsväljarna visas en anmärkning som talar om för dig vad den lokala kodningen är (Den kan inte justeras, utan bara som information om du inte vet vad den lokala kodningen är, men behöver kunna välja den.) </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Filkodning för A/B/C:</emphasis
></term
><listitem
><para
>Justera filkodningen för indatafiler. Det ger effekt på hur specialtecken tolkas. Eftersom du kan justera varje kodning separat, kan du till och med jämföra och sammanfoga filer som sparades med olika kodningar. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Filkodning för sammanfogad utdata och vid spara:</emphasis
></term
><listitem
><para
>När du har redigerat en fil, kan du justera vilken kodning som används när den sparas till disk. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Filkodning för preprocessorfiler:</emphasis
></term
><listitem
><para
>När du definierar preprocessorer kanske de inte kan hantera din kodning (exempelvis om dina filer använder 16-bitars Unicode och preprocessorn bara kan hantera 8-bitars ASCII). Med det här alternativet kan du definiera kodningen för preprocessorns utdata. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Språk som läses från höger till vänster</emphasis
></term
><listitem
><para
>Vissa språk skrivs från höger till vänster. När alternativet är aktiverat, ritar &kdiff3; text från höger till vänster i jämförelsefönstren och i sammanfogningsfönstret. Observera att om du startar &kdiff3; med kommandoradsväljaren "--reverse" så visas all layout också från höger till vänster. (Det är en funktion som Qt tillhandahåller.) Denna dokumentation är skriven med antagandet att "Språk som läses från höger till vänster" eller omvänd layout inte är aktiverade. Vissa referenser till "vänster" eller "höger" måste ersättas av motsatsen om du använder alternativen. </para
></listitem
></varlistentry>
</variablelist>
</sect2>
<sect2
><title
>Diverse</title>
<para
>(Dessa alternativ och åtgärder är tillgängliga i menyerna eller verktygsraden.)</para>
<variablelist>
<varlistentry
><term
><emphasis
>Visa radnummer:</emphasis
></term
><listitem
><para
>Du kan välja om radnummer ska visas för indatafilerna.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Visa mellanslag och tabulatortecken i jämförelse:</emphasis
></term
><listitem
><para
>Ibland är synliga mellanslag och tabulatortecken störande. Du kan stänga av detta.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Visa blanktecken:</emphasis
></term
><listitem
><para
>Stäng av det här för att inte visa ändringar av bara blanktecken i texten eller översiktskolumnerna. (Observera att detta också gäller ändringar av siffror eller kommentarer om alternativen "Ignorera siffror" eller "Ignorera C/C++ kommentarer" är aktiva.)</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Översiktsalternativ:</emphasis
></term
><listitem
><para
>Dessa alternativ är bara tillgängliga när du jämför tre filer. I normalläge visas alla skillnader i en färgkodad översiktskolumn, men ibland är du särskilt intresserad av skillnaderna mellan två av de tre filerna. Genom att välja översikten "A mot B", "A mot C" eller "B mot C", visas en andra översiktskolumn med begärd information intill den vanliga översikten. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Radbryt skillnadsfönster:</emphasis
></term
><listitem
><para
>Radbryt rader när deras längd skulle överskrida ett fönsters bredd. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Visa fönster A/B/C:</emphasis
></term
><listitem
><para
>Ibland vill du använda skärmutrymmet bättre för långa rader. Dölj fönster som inte är viktiga. (I menyn Fönster.)</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Byt delningsorientering:</emphasis
></term
><listitem
><para
>Byt mellan jämförelsefönster som visas intill varandra (A till vänster om B till vänster om C) eller ovanför varandra (A ovanför B ovanför C). Det bör också hjälpa för långa rader. (I menyn Fönster.) </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Starta sammanfogning snabbt:</emphasis
></term
><listitem
><para
>Ibland tittar du på skillnader, och bestämmer dig för att sammanfoga. <inlinemediaobject
><imageobject
><imagedata fileref="merge_current.png" format="PNG"/></imageobject
></inlinemediaobject
> "Sammanfoga aktuell fil" i menyn Katalog fungerar också om du bara jämför två filer. Ett enkelklick startar sammanfogningen och använder filnamnet på den sista indatafilen som förvalt utmatningsfilnamn. (När detta används för att starta om en sammanfogning, behålls utmatningsfilnamnet.)</para
></listitem
></varlistentry>
</variablelist>
</sect2>
<sect2 id="shortcuts"
><title
>Anpassa snabbtangenter</title>
<para
>För närvarande stöder bara KDE-versionen anpassningsbara snabbtangenter (Menyn Inställningar -> Anpassa genvägar...) </para>
</sect2>
</sect1>
<sect1 id="preprocessors"
><title
>Preprocessorkommandon</title>
<para
>&kdiff3; stöder två preprocessoralternativ. </para
><para>
<variablelist>
<varlistentry
><term
><emphasis
>Preprocessorkommando:</emphasis
></term
><listitem
><para
>När en fil läses, skickas den via det här externa kommandot. Utmatningen från kommandot visas istället för den ursprungliga filen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Använd det här för att ta bort störande delar av filen, eller för att automatiskt korrigera indenteringen, etc. </para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Radmatchande preprocessorkommando:</emphasis
></term
><listitem
><para
>När en fil läses, skickas den via det här externa kommandot. Om ett preprocessorkommando (se ovan) också anges är utmatningen från preprocessorn inmatning till den radmatchande preprocessorn. Utmatningen används bara under radmatchningsfasen av analysen. Du kan skriva din egen preprocessor som uppfyller dina speciella behov. Varje indatarad måste ha en motsvarande utdatarad. </para
></listitem
></varlistentry>
</variablelist>
</para>
<para
>Idén är att ge användaren större flexibilitet när jämförelseresultatet ställs in, men det kräver ett externt program, och många användare vill inte skriva ett själva. De goda nyheterna är att ofta klarar <command
>sed</command
> eller <command
>perl</command
> av jobbet. </para>
<para
>Till exempel ett enkelt fall att prova: Betrakta filen a.txt (6 rader): <screen>
aa
ba
ca
da
ea
fa
</screen
> Och filen b.txt (3 rader): <screen>
cg
dg
eg
</screen
> Utan en preprocessor skulle följande rader placeras intill varandra: <screen>
aa - cg
ba - dg
ca - eg
da
ea
fa
</screen
> Det är troligen inte vad som önskas eftersom den första bokstaven innehåller den intressanta informationen. För att hjälpa matchningsalgoritmen att ignorera den andra bokstaven kan man använda ett radmatchande preprocessorkommando som ersätter 'g' med 'a': <screen>
<command
>sed</command
> 's/g/a/'
</screen
> Med det kommandot blir resultatet av matchningen: <screen>
aa
ba
ca - cg
da - dg
ea - eg
fa
</screen
> Internt ser matchningsalgoritmen filerna efter den radmatchande preprocessorn har körts, men på skärmen är filen oförändrad. (Den normala preprocessorn skulle också ändra data på skärmen.) </para>
<sect2 id="sedbasics"
><title
>Grundläggande information om <command
>sed</command
></title>
<para
>Det här avsnittet introducerar bara några mycket grundläggande funktioner i <command
>sed</command
>. För mer information se <ulink url="info:/sed"
>info:/sed</ulink
> eller <ulink url="http://www.gnu.org/software/sed/manual/html_mono/sed.html"
>http://www.gnu.org/software/sed/manual/html_mono/sed.html</ulink
>. En förkompilerad version för Windows finns på <ulink url="http://unxutils.sourceforge.net"
>http://unxutils.sourceforge.net</ulink
>. Observera att följande exempel antar att <command
>sed</command
> finns i någon katalog i miljövariabeln PATH. Om det inte är fallet, måste du ange fullständig absolut sökväg till kommandot. </para>
<note
><para
>Observera också att följande exempel använder enkla citationstecken ('), vilket inte fungerar i Windows. I Windows ska du istället använda dubbla citationstecken (").</para
></note>
<para
>I det här sammanhanget används bara ersättningskommandot i <command
>sed</command
>: <screen>
<command
>sed</command
> 's/<replaceable
>REGUTTRYCK</replaceable
>/<replaceable
>ERSÄTTNING</replaceable
>/<replaceable
>FLAGGOR</replaceable
>'
</screen
> Innan du använder ett nytt kommando inne i &kdiff3;, bör du först prova det i en terminal. Då är kommandot <command
>echo</command
> användbart. Till exempel: <screen>
<command
>echo</command
> abrakadabra | <command
>sed</command
> 's/a/o/'
-> obrakadabra
</screen
> Exemplet visar ett mycket enkelt sed-kommando som ersätter den första förekomsten av "a" med "o". Om du vill ersätta alla förekomster behöver du flaggan "g": <screen>
<command
>echo</command
> abrakadabra | <command
>sed</command
> 's/a/o/g'
-> obrokodobro
</screen
> Symbolen "|" är rörledningskommandot som överför utdata från föregående kommando till indata i efterföljande kommando. Om du vill prova med en längre fil kan du använda <command
>cat</command
> på Unix-liknande system eller <command
>type</command
> på Windows-liknande system. <command
>sed</command
> utför ersättningen för varje rad. <screen
><command
>cat</command
> <replaceable
>filnamn</replaceable
> |<command
>sed</command
> <replaceable
>väljare</replaceable
>
</screen>
</para>
</sect2>
<sect2 id="sedforkdiff3"
><title
>Exempel på användning av <command
>sed</command
> i &kdiff3;</title>
<sect3
><title
>Ignorera andra typer av kommentarer</title>
<para
>För närvarande förstår &kdiff3; bara C/C++ kommentarer. Genom att använda ett radmatchande preprocessorkommando kan du också ignorera andra typer av kommentarer genom att konvertera dem till C/C++ kommentarer. För att till exempel ignorera kommentarer som börjar med "#", skulle du vilja konvertera dem till "//". Observera att du också måste aktivera alternativet "Ignorera C/C++ kommentarer" för att få någon effekt. Ett lämpligt radmatchande preprocessorkommando skulle vara: <screen>
<command
>sed</command
> 's/#/\/\//'
</screen
> Eftersom tecknet "/" har en särskild betydelse i <command
>sed</command
>, är det nödvändigt att lägga till tecknet "\" innan varje "/" i ersättningssträngen. Ibland behövs "\" för att lägga till eller ta bort en särskild betydelse för vissa tecken. De enkla citationstecknen (') innan och efter ersättningskommandot är nu viktiga, eftersom skalet annars skulle försöka tolka vissa specialtecken som '#', '$' eller '\' innan de skickas till <command
>sed</command
>. <emphasis
>Observera att i Windows behöver du dubbla citationstecken (") här. Windows ersätter andra tecken som '%', så du kan behöva experimentera något.</emphasis
> </para>
</sect3>
<sect3
><title
>Jämförelse som inte är skiftlägeskänslig</title>
<para
>Använd följande radmatchande preprocessorkommando för att omvandla all indata till stora bokstäver: <screen>
<command
>sed</command
> 's/\(.*\)/\U\1/'
</screen
> Här är ".*" ett reguljärt uttryck som matchar alla strängar, och i det här sammanhanget matchar alla tecken på raden. Tecknet "\1" i ersättningssträngen motsvarar den matchade texten mellan det första paret "\(" och "\)". "\U" konverterar den infogade texten till stora bokstäver. </para>
</sect3>
<sect3
><title
>Ignorera nyckelord för versionshantering</title>
<para
>CVS och andra versionshanteringssystem använder flera nyckelord för att infoga automatiskt skapade strängar (<ulink url="info:/cvs/Keyword substitution"
>info:/cvs/Keyword substitution</ulink
>). Alla följer mönstret "$NYCKELORD skapad text$". Nu behöver vi ett radmatchande preprocessorkommando som bara tar bort den skapade texten: <screen>
<command
>sed</command
> 's/\$\(Revision\|Author\|Log\|Header\|Date\).*\$/\$\1\$/'
</screen
> Strängen "\|" skiljer de möjliga nyckelorden åt. Du kanske vill ändra listan enligt dina behov. Tecknet "\" framför "$" behövs eftersom annars matchar "$" radens slut. </para>
<para
>Medan du experimenterar med <command
>sed</command
> kan du komma att förstå och till och med tycka om de reguljära uttrycken. De är användbara eftersom det finns många andra program som också stöder liknande funktioner. </para>
</sect3>
<sect3
><title
>Ignorera siffror</title>
<para
>Att ignorera siffror är i själva verket ett inbyggt alternativ, men som ett annat exempel, visas hur det skulle se ut som ett radmatchande preprocessorkommando. <screen>
<command
>sed</command
> 's/[0123456789.-]//g'
</screen
> Alla tecken inom '[' och ']' matchar och kommer att ersättas av ingenting. </para>
</sect3>
<sect3
><title
>Ignorera vissa kolumner</title>
<para
>Ibland är texten mycket strikt formaterad, och innehåller kolumner som du alltid vill ignorera, medan det finns andra kolumner du vill bevara för analys. I följande exempel ignoreras de fem första kolumnerna (tecknen), de följande tio kolumnerna bevaras, därefter ignoreras återigen fem kolumner och resten av raden bevaras. <screen>
<command
>sed</command
> 's/.....\(..........\).....\(.*\)/\1\2/'
</screen
> Varje punkt '.' motsvarar vilket enstaka tecken som helst. Strängarna "\1" och "\2" i ersättningssträngen refererar till den matchande texten inom det första och andra paret av "\(" och "\)" som anger texten att bevara. </para>
</sect3>
<sect3
><title
>Kombinera flera ersättningar</title>
<para
>Ibland vill du tillämpa flera ersättningar samtidigt. Då kan du använda semikolon ';' för att skilja dem från varandra. Till exempel: <screen
><command
>echo</command
> abrakadabra | <command
>sed</command
> 's/a/o/g;s/\(.*\)/\U\1/'
-> OBROKODOBRO
</screen>
</para>
</sect3>
<sect3
><title
>Använda <command
>perl</command
> istället för <command
>sed</command
></title>
<para
>Istället för <command
>sed</command
> kanske du vill använda något annat som <command
>perl</command
>. <screen>
<command
>perl</command
> -p -e 's/<replaceable
>REGUTTRYCK</replaceable
>/<replaceable
>ERSÄTTNING</replaceable
>/<replaceable
>FLAGGOR</replaceable
>'
</screen
> Men vissa detaljer är annorlunda i <command
>perl</command
>. Observera att där <command
>sed</command
> behöver "\(" och "\)" kräver <command
>perl</command
> det enklare "(" och ")" utan inledande '\'. Till exempel: <screen
><command
>sed</command
> 's/\(.*\)/\U\1/'
<command
>perl</command
> -p -e 's/(.*)/\U\1/'
</screen>
</para>
</sect3>
</sect2>
<sect2
><title
>Ordning vid körning av preprocessor</title>
<para
>Data skickas igenom all intern och extern förbehandling i följande ordning: </para>
<itemizedlist>
<listitem
><para
>Normal preprocessor,</para
></listitem>
<listitem
><para
>Preprocessor för radmatchning,</para
></listitem>
<listitem
><para
>Ignorera skiftläge (konvertering till stora bokstäver),</para
></listitem>
<listitem
><para
>Detektering av C/C++ kommentarer,</para
></listitem>
<listitem
><para
>Ignorera siffror,</para
></listitem>
<listitem
><para
>Ignorera blanktecken</para
></listitem>
</itemizedlist>
<para
>Data efter den normala förbehandlingen bevaras för att visas och sammanfogas. De andra åtgärderna ändrar bara data som algoritmen för radmatchande jämförelse ser. </para
><para
>I de sällsynta fall då du använder normal förbehandling, observera att den radmatchande förbehandlingen ser utdata från den normala förbehandlingen som indata. </para>
</sect2>
<sect2
><title
>Varning</title>
<para
>Förbehandlingskommandon är ofta mycket användbara, men som med alla alternativ som ändrar texten eller döljer vissa skillnader automatiskt, kan du av misstag hoppa över vissa skillnader och i värsta fall förstöra viktig data. </para
><para
>Av denna orsak, om ett normalt preprocessorkommando används under en sammanfogning, talar &kdiff3; om det för dig och frågar om det ska inaktiveras eller inte. Men du får ingen varning om ett radmatchande preprocessorkommando är aktivt. Sammanfogningen sker inte förrän alla konflikter är lösta. Om du inaktiverade "Visa blanktecken" blir också skillnaderna som togs bort med det radmatchande preprocessorkommandot osynliga. Om knappen Spara förblir inaktiv under en sammanfogning (på grund av kvarvarande konflikter), försäkra dig om att aktivera "Visa blanktecken". Om du inte vill sammanfoga dessa mindre viktiga skillnader för hand kan du välja "Välj [A|B|C] för olösta konflikter med blanktecken" i menyn "Sammanfoga". </para>
</sect2>
</sect1>
</chapter>
<chapter id="dirmerge"
><title
>Katalogjämförelse och sammanfogning med &kdiff3;</title>
<sect1 id="dirmergeintro"
><title
>Introduktion till katalogjämförelse och sammanfogning</title>
<para
>Ofta måste programmerare ändra många filer i en katalog för att uppnå sina syften. För att åstadkomma detta låter &kdiff3; dig också jämföra och sammanfoga hela kataloger rekursivt! </para
><para
>Även om jämförelse och sammanfogning av kataloger verkar vara ganska självklart, finns det flera detaljer som du bör känna till. Det viktigaste är förstås faktum att många filer nu kan påverkas av varje åtgärd. Om du inte har säkerhetskopior av originaldata, kan det vara mycket svårt eller till och med omöjligt att återgå till originalläget. Så innan du påbörjar en sammanfogning, försäkra dig om att data är säkert, och att det är möjligt att återställa. Om du skapar ett arkiv, eller använder ett versionshanteringssystem är ditt eget beslut, men till och med erfarna programmerare och integratörer behöver ibland gammal källkod. Observera också att även om jag (upphovsmannen till &kdiff3;) försöker att göra mitt bästa, kan jag inte garantera att det inte finns fel. Enligt GNU GPL finns det INGEN GARANTI av något slag för det här programmet. Så var ödmjuk, och kom alltid ihåg: </para>
<blockquote
><para>
<emphasis
>Att fela är mänskligt, men för att verkligen ställa till det behövs en dator.</emphasis>
</para
></blockquote>
<para
>Så det här är vad programmet kan göra åt dig: &kdiff3; ... </para>
<itemizedlist>
<listitem
><para
>... läser och jämför två eller tre kataloger rekursivt,</para
></listitem>
<listitem
><para
>... hanterar symboliska länkar särskilt,</para
></listitem>
<listitem
><para
>... låter dig bläddra mellan filer med ett dubbelklick på musen,</para
></listitem>
<listitem
><para
>... föreslår ett sammanfogningsalternativ för varje objekt, som du kan ändra innan katalogsammanfogningen startas,</para
></listitem>
<listitem
><para
>... låter dig simulera sammanfogningen och listar åtgärderna som skulle ske, utan att verkligen göra dem,</para
></listitem>
<listitem
><para
>... låter dig utföra sammanfogningen, och låter dig bestämma så fort manuell interaktion behövs,</para
></listitem>
<listitem
><para
>... låter dig utföra vald åtgärd för alla objekt (tangenten F7 ) eller markerat objekt (tangenten F6),</para
></listitem>
<listitem
><para
>... låter dig fortsätta sammanfogningen efter manuell interaktion med tangenten F7,</para
></listitem>
<listitem
><para
>... skapar valfria säkerhetskopior, med filändelsen ".orig",</para
></listitem>
<listitem
><para
>...</para
></listitem>
</itemizedlist>
</sect1>
<sect1 id="startingdirmerge"
><title
>Starta katalogjämförelse eller sammanfogning</title>
<para
>Det här liknar mycket sammanfogning och jämförelse av en enstaka fil. Du måste bara ange kataloger på kommandoraden eller i dialogrutan för filöppning. </para>
<sect2
><title
>Jämföra eller sammanfoga två kataloger: </title>
<screen
><command
>kdiff3</command
> <replaceable
>kat1 kat2</replaceable>
<command
>kdiff3</command
> <replaceable
>kat1 kat2</replaceable
> <option
>-o</option
> <replaceable
>målkat</replaceable
>
</screen>
<para
>Om ingen målkatalog anges, använder &kdiff3; <replaceable
>kat2</replaceable
>. </para>
</sect2>
<sect2
><title
>Jämföra eller sammanfoga tre kataloger: </title>
<screen
><command
>kdiff3</command
> <replaceable
>kat1 kat2 kat3</replaceable>
<command
>kdiff3</command
> <replaceable
>kat1 kat2 kat3</replaceable
> <option
>-o</option
> <replaceable
>målkat</replaceable
>
</screen>
<para
>När tre kataloger sammanfogas, används <replaceable
>kat1</replaceable
> som basen för sammanfogningen. Om ingen målkatalog anges, använder &kdiff3; <replaceable
>kat3</replaceable
> som målkatalog för sammanfogningen. </para>
<para
>Observera att bara jämförelsen startas automatiskt, inte sammanfogningen. För det måste du först välja ett menyalternativ eller tangenten F7. (Mer information kommer senare.) </para>
</sect2>
</sect1>
<sect1 id="dirmergevisible"
><title
>Katalogsammanfogning av synlig information</title>
<para
>Medan katalogerna läses visas en meddelanderuta som informerar dig om förloppet. Om du avbryter katalogavsökningen, visas bara filer som hittills har jämförts. </para
><para
>När katalogavsökningen är färdig, visar &kdiff3; en listruta med återstående resultat, ... </para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="dirbrowser.png" format="PNG"/></imageobject
> <!--alt="Image of the directory browser."-->
</mediaobject
></screenshot>
<para
>... och detaljinformation om det markerade objektet till höger: </para>
<screenshot
><mediaobject>
<imageobject
><imagedata fileref="iteminfo.png" format="PNG"/></imageobject>
<!--alt="Image with information about the selected item."-->
</mediaobject
></screenshot>
<sect2 id="name"
><title
>Namnkolumnen</title>
<para
>Varje fil och katalog som hittades under avsökningen visas här i ett träd. Du kan välja ett objekt genom att klicka en gång på det med musen. </para
><para
>Katalogerna är normalt ihopdragna. Du kan expandera och dra ihop dem genom att klicka på "+"/"-", genom att dubbelklicka på objektet eller genom att använda tangenterna vänsterpil och högerpil. Menyn "Katalog" innehåller också två alternativ "Dra ihop alla underkataloger" och "Expandera alla underkataloger" som du kan använda för att dra ihop eller expandera alla kataloger på en gång. </para
><para
>Om du dubbelklickar på ett filobjekt, utförs filjämförelsen och jämförelsefönstret för filer visas. </para>
<para
>Ikonen i namnkolumnen motsvarar filtypen i den första katalogen ("A"). Den kan vara någon av dessa: </para>
<itemizedlist>
<listitem
><para
>Normal fil</para
></listitem>
<listitem
><para
>Normal katalog (katalogikon)</para
></listitem>
<listitem
><para
>Länk till en fil (filikon med en länkpil)</para
></listitem>
<listitem
><para
>Länk till en katalog (katalogikon med en länkpil)</para
></listitem>
</itemizedlist>
<para
>Om filtypen är annorlunda i övriga kataloger, syns det i kolumnerna A/B/C och i fönstret som visar detaljinformation om det markerade objektet. Observera att i dessa fall kan inte någon sammanfogningsåtgärd väljas automatiskt. När sammanfogningen startas, informeras användaren om den här sortens problem. </para>
</sect2>
<sect2 id="coloring"
><title
>Kolumnerna A/B/C och färgläggningsschemat</title>
<para
>Som syns i bilden ovan, används färgerna röd, grön, gul och svart i kolumnerna A/B/C. </para>
<itemizedlist>
<listitem
><para
>Svart: Det här objektet finns inte i den här katalogen.</para
></listitem>
<listitem
><para
>Grön: Nyaste objektet.</para
></listitem>
<listitem
><para
>Gul: Äldre än grön, nyare än röd.</para
></listitem>
<listitem
><para
>Röd: Äldsta objektet.</para
></listitem>
</itemizedlist>
<para
>Utom för objekt som var identiska i jämförelsen, där är färgen också identisk även om åldern inte är det. </para
><para
>Kataloger anses vara likadana om alla objekt de innehåller är likadana. Då har de också samma färg. Åldern på en katalog spelar dock ingen roll för dess färg. </para
><para
>Idén för färgläggningsschemat hittade jag i <ulink url="http://samba.org/cgi-bin/cvsweb/dirdiff"
>dirdiff</ulink
>. Färgerna motsvarar färgerna hos ett löv som är grönt från början, sedan blir gult och till sist rött när det är gammalt. </para>
</sect2
><sect2 id="operation"
><title
>Åtgärdskolumnen</title>
<para
>Efter att ha jämfört katalogerna utvärderar &kdiff3; också ett förslag på sammanfogningsåtgärd. Det visas i kolumnen "Åtgärd". Du kan ändra den genom att klicka på åtgärden du vill ändra. En liten meny dyker upp och låter dig välja en åtgärd för objektet. (Du kan också välja den oftast använda åtgärden via tangentbordet. Ctrl+1/2/3/4/Delete väljer A/B/C/Sammanfoga/Ta bort om de är tillgängliga.) Åtgärden utförs under sammanfogningen. Vilka åtgärder som är tillgängliga beror på objektet och sammanfogningsläget som används. Sammanfogningsläget är ett av </para>
<itemizedlist>
<listitem
><para
>Sammanfogning av tre kataloger ("A" behandlas som äldsta bas för båda).</para
></listitem>
<listitem
><para
>Sammanfogning av två kataloger.</para
></listitem>
<listitem
><para
>Tvåkatalogs synkroniseringsläge (aktiveras med alternativet "Synkronisera kataloger").</para
></listitem>
</itemizedlist>
<para
>Vid trekatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... </para>
<itemizedlist>
<listitem
><para
>... alla tre katalogerna är likadana: Kopiera från C</para
></listitem>
<listitem
><para
>... A och C är likadana med B är det inte: Kopiera från B (eller om B inte finns, ta bort målet om det finns)</para
></listitem>
<listitem
><para
>... A och B är likadana med C är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns)</para
></listitem>
<listitem
><para
>... B och C är likadana med A är det inte: Kopiera från C (eller om C inte finns, ta bort målet om det finns)</para
></listitem>
<listitem
><para
>... bara A finns: Ta bort målet (om det finns)</para
></listitem>
<listitem
><para
>... bara B finns: Kopiera från B</para
></listitem>
<listitem
><para
>... bara C finns: Kopiera från C</para
></listitem>
<listitem
><para
>... A, B och C är inte likadana: Sammanfoga</para
></listitem>
<listitem
><para
>... A, B och C har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas.</para
></listitem>
</itemizedlist>
<para
>Vid tvåkatalogers sammanfogning är den förslagna åtgärden: Om för ett objekt... </para>
<itemizedlist>
<listitem
><para
>... båda katalogerna är likadana: Kopiera från B</para
></listitem>
<listitem
><para
>... A finns men inte B: Kopiera från A</para
></listitem>
<listitem
><para
>... B finns men inte A: Kopiera från B</para
></listitem>
<listitem
><para
>... A och B finns men är inte likadana: Sammanfoga</para
></listitem>
<listitem
><para
>... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas.</para
></listitem>
</itemizedlist>
<para
>Synkroniseringsläge är bara aktivt om två kataloger och ingen explicit målkatalog anges, och om alternativet "Synkronisera kataloger" är aktivt. &kdiff3; väljer då en standardåtgärd så att båda katalogerna är likadana efteråt. Om för ett objekt ... </para>
<itemizedlist>
<listitem
><para
>... båda katalogerna är lika: Ingenting görs.</para
></listitem>
<listitem
><para
>... A finns, men inte B: Kopiera A till B</para
></listitem>
<listitem
><para
>... B finns, men inte A: Kopiera B till A</para
></listitem>
<listitem
><para
>... A och B finns, men är inte likadana: Sammanfoga och lagra resultatet i båda kataloger. (För användaren är det synliga filnamnet för att spara B, men därefter kopierar &kdiff3; också B till A.)</para
></listitem>
<listitem
><para
>... A och B har inte samma filtyp (t.ex. A är en katalog, B är en fil): "Fel: Konflikt i filtyper". Medan sådana objekt finns, kan inte katalogsammanfogningen startas.</para
></listitem>
</itemizedlist>
<para
>När två kataloger sammanfogas och alternativet "Kopiera nyare istället för att sammanfoga" är markerat, tittar &kdiff3; på datum och föreslår att välja den nyare filen. Om filerna inte är lika men har samma datum, innehåller åtgärden "Fel: Datum är lika men filerna är det inte." Medan sådana objekt finns, kan inte katalogsammanfogningen startas. </para>
</sect2>
<sect2 id="status"
><title
>Statuskolumnen</title>
<para
>Under sammanfogningen behandlas en fil i taget. Statuskolumnen visar "Klar" för objekt där sammanfogningsåtgärden har lyckats, och någon annan text om något oväntat inträffade. När en sammanfogning är färdig, bör du göra en sista kontroll för att se att status för alla objekt är acceptabel. </para>
</sect2>
<sect2 id="statisticscolulmns"
><title
>Statistikkolumner</title>
<para
>När filjämförelseläget "Fullständig analys" är aktiverat i alternativen, visar &kdiff3; extra kolumner som innehåller antal oupplösta, upplösta, inte blanka och blanka konflikter. (Kolumnen lösta visas bara när kataloger jämförs eller sammanfogas.) </para>
</sect2>
<sect2 id="selectingvisiblefiles"
><title
>Välja listade filer</title>
<para
>Flera alternativ påverkar vilka filer som listas här. Vissa är tillgängliga i <link linkend="dirmergeoptions"
>inställningsdialogrutan</link
>. Menyn Katalog innehåller alternativen: </para
><para
><itemizedlist>
<listitem
><para
>"Visa identiska filer": Filer som har detekterats som lika i alla indatakataloger.</para
></listitem>
<listitem
><para
>"Visa olika filer": Filer som finns i två eller flera kataloger men inte är lika.</para
></listitem>
<listitem
><para
>"Visa bara filer i A": Filer som bara finns i A, men inte i B eller C.</para
></listitem>
<listitem
><para
>"Visa bara filer i B": Filer som bara finns i B, men inte i A eller C.</para
></listitem>
<listitem
><para
>"Visa bara filer i C": Filer som bara finns i C, men inte i A eller B.</para
></listitem>
</itemizedlist
></para>
<para
>Aktivera bara alternativen "Visa" för objekten du vill lista. Om du till exempel bara vill lista alla objekt som antingen finns i A eller i B men inte i båda, måste du aktivera "Visa bara filer i A" och "Visa bara filer i B" och inaktivera alla andra ("Visa identiska filer", "Visa olika filer", "Visa bara filer i C"). Listan uppdateras omedelbart för att motsvara ändringen. </para
><para
>Alternativen gäller också för kataloger med ett undantag: Att inaktivera "Visa olika filer" döljer inte hela kataloger. Det fungerar bara för filer inne i dem. </para
><para
>Observera att av dessa är bara alternativet "Visa identiska filer" som är bestående Övriga aktiveras när &kdiff3; startas. </para>
</sect2>
</sect1>
<sect1 id="dothemerge"
><title
>Utföra en katalogsammanfogning</title>
<para
>Du kan antingen sammanfoga markerat objekt (fil eller katalog), eller alla objekt. När du har gjort alla val av åtgärder (också i alla underkataloger), kan du utföra sammanfogningen. </para
><para
>Var medveten om att om du inte explicit angav en målkatalog, blir målet "C" i trekatalogsläge, "B" i tvåkatalogsläge, och i synkroniseringsläge är det "A" och/eller "B". </para
><para
>Om du också har angivit en målkatalog, kontrollera att alla objekt som ska finnas i utmatningen finns i trädet. Det finns några alternativ som får vissa objekt att utelämnas från katalogjämförelsen och sammanfogningen. Kontrollera dessa alternativ för att undvika obehagliga överraskningar: </para>
<itemizedlist>
<listitem
><para
>"Rekursiva kataloger": Om det är av, hittas inte objekt i underkataloger.</para
></listitem>
<listitem
><para
>"Mönster" eller "Undantagsmönster": Inkludera eller undanta objekt som matchar</para
></listitem>
<listitem
><para
>"Undanta gömda filer"</para
></listitem>
<listitem
><para
><link linkend="selectingvisiblefiles"
>"Visa"-alternativ</link
> (Visa identiska/olika filer, bara filer i A/B/C)</para
></listitem>
</itemizedlist>
<para
>Om du ändrar inställningarna för att visa fler filer, måste du göra en omsökning via menyn "Katalog" -> "Avsök igen". (Orsaken till det är att &kdiff3; utelämnar jämförelsen för filer enligt kriterierna för att få snabbare jämförelsehastighet.) Om du ändrade fil- och katalogmönster för att undanta filer, uppdateras fillistan omedelbart när inställningsdialogrutan stängs. </para
><para
>Observera att när du skriver till en helt ny katalog vill du oftast också kopiera de identiska filerna. Aktivera "Visa identiska filer" i detta fall. Om din målkatalog är en av indatakatalogerna, är det inte nödvändigt eftersom filerna redan finns där. </para
><para
>Om du är nöjd hittills, är resten enkelt. </para
><para
>För att sammanfoga alla objekt: Välj "Starta eller fortsätt katalogsammanfogning" i menyn "Katalog" eller tryck på F7 (som är snabbtangenten). För att bara sammanfoga aktuellt objekt: Välj "Utför åtgärd för aktuellt objekt" eller tryck på F6. </para
><para
>Om vissa objekt med ogiltiga filtyper fortfarande finns, på grund av filtyper med konflikter, visas en meddelanderuta och objekten pekas ut, så att du kan välja en giltig åtgärd för objektet. </para
><para
>Om du sammanfogar alla objekt visas en dialogruta som ger dig alternativen "Gör det", "Simulera det" och "Avbryt". </para>
<itemizedlist>
<listitem
><para
>Välj "Simulera det" om du vill se vad som skulle göras utan att verkligen göra det. En utförlig lista med alla åtgärder visas.</para
></listitem>
<listitem
><para
>Välj annars "Gör det" för att verkligen utföra sammanfogningen.</para
></listitem>
</itemizedlist>
<para
>Därefter utför &kdiff3; den angivna åtgärden för alla objekt. Om manuell interaktion krävs (sammanfogning av enstaka fil), visas ett sammanfogningsfönster (<link linkend="dirmergebigscreenshot"
>se den stora skärmbilden</link
>). </para
><para
>När du är klar med manuell sammanfogning av en fil, välj återigen "Starta eller fortsätt katalogsammanfogning" eller tryck på F7. Om du inte har sparat ännu, ber en dialogruta dig att göra det. Därefter fortsätter &kdiff3; till nästa objekt. </para
><para
>När &kdiff3; stöter på ett fel, meddelas det och utförlig statusinformation visas. Längst ner i listan finns det några felmeddelanden som bör hjälpa dig att förstå problemets orsak. När du fortsätter sammanslagningen (tangenten F7), ger &kdiff3; dig valet att försöka igen eller hoppa över objektet som orsakade problemet. Det betyder att du kan välja en annan åtgärd, eller lösa problemet på annat sätt, innan du fortsätter. </para
><para
>När sammanfogningen är färdig, informerar &kdiff3; dig med en meddelanderuta. </para
><para
>Om vissa objekt sammanfogades individuellt innan katalogsammanfogningen, kommer &kdiff3; ihåg det (medan sammanfogningssessionen pågår), och sammanfogar dem inte igen när sammanfogningen för alla objekt utförs. Även när sammanfogningen hoppas över eller ingenting sparas räknas dessa objekt som färdiga. Bara när sammanfogningsåtgärden ändras, tas objektets "klar"-status bort och det kan sammanfogas igen. </para>
</sect1>
<sect1 id="dirmergeoptions"
><title
>Alternativ för att jämföra och sammanfoga kataloger</title>
<para
>Inställning av &kdiff3; (menyn "Inställningar" -> "Anpassa &kdiff3;") har en sida som heter "Katalogsammanfogning" med följande alternativ: </para>
<variablelist>
<varlistentry
><term
><emphasis
>Rekursiva kataloger:</emphasis
></term
><listitem
><para
>Välj om kataloger ska sökas igenom rekursivt.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Mönster för filer:</emphasis
></term
><listitem
><para
>Bara filer som matchar något mönster här läggs till i trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. (t.ex. "*.cpp;*.h"). Normalvärdet är "*". Mönstret används inte för kataloger.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Undantagsmönster för filer:</emphasis
></term
><listitem
><para
>Filer som matchar något mönster undantas från trädet. Mer än ett mönster kan anges här genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "*.orig;*.o;*.obj".</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Undantagsmönster för kataloger:</emphasis
></term
><listitem
><para
>Kataloger som matchar något mönster undantas från trädet. Mer än ett mönster kan anges genom att använda semikolon ";" som skiljetecken. Giltiga jokertecken: '*' och '?'. Normalvärdet är "CVS;deps;.svn".</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Använd .cvsignore:</emphasis
></term
><listitem
><para
>Ignorera filer och kataloger som också skulle ignoreras av CVS. Många automatiskt genererade filer ignoreras av CVS. Den stora fördelen är att detta kan vara katalogspecifikt via en lokal ".cvsignore" fil. (Se <ulink url="info:/cvs/cvsignore"
>info:/cvs/cvsignore</ulink
>.)</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Sök efter gömda filer och kataloger:</emphasis
></term
><listitem
><para
>För vissa filsystem har filer egenskapen "Dold". För andra system döljs ett filnamn som börjar med en punkt ("."). Alternativet låter dig bestämma om dessa filer ska ingå i trädet eller inte. Normalvärdet är på.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Följ fillänkar:</emphasis
></term
><listitem
><para
>För länkar till filer: Om inaktiverad, jämförs de symboliska länkarna. Om aktiverad, jämförs filerna bakom länkarna. Normalvärdet är av.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Följ kataloglänkar:</emphasis
></term
><listitem
><para
>För länkar till kataloger: Om inaktiverad, jämförs symboliska länkar. Om aktiverad behandlas länken som en katalog och avsöks rekursivt. (Observera att programmet inte kontrollerar om länken är "rekursiv". En katalog som innehåller en länk till samma katalog skulle orsaka en oändlig snurra, och efter en viss tid när stacken blir full eller minnet tar slut, kraschar programmet.) Normalvärdet är av.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Skiftlägeskänslig filnamnsjämförelse:</emphasis
></term
><listitem
><para
>Förvalt värde är falskt på Windows, och sant för andra operativsystem.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Filjämförelseläge:</emphasis
></term
><listitem
><para>
<variablelist
>
<varlistentry
><term
><emphasis
>Binär jämförelse:</emphasis
></term
><listitem
><para
>Det här är förvalt filjämförelseläge. </para
></listitem
></varlistentry
>
<varlistentry
><term
><emphasis
>Fullständig analys:</emphasis
></term
><listitem
><para
>Gör en fullständig analys av varje fil och visa kolumner med statistisk information. (Antal upplösta, oupplösta, inte blanka och blanka konflikter.) Den fullständiga analysen är långsammare än en enkel binäranalys, och är mycket långsammare för filer som inte innehåller text. (Ange lämpliga filmönster för att undvika dem.) </para
></listitem
></varlistentry
>
<varlistentry
><term
><emphasis
>Lita på ändringsdatum:</emphasis
></term
><listitem
><para
>Om du jämför stora kataloger via ett långsamt nätverk, kan det gå snabbare att bara jämföra ändringsdatum och fillängd. Men hastighetsförbättringen sker till priset av en liten osäkerhet. Använd alternativet med försiktighet. Normalvärdet är av.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Lita på storleken:</emphasis
></term
><listitem
><para
>Liknar att lita på ändringsdatum. Ingen verklig jämförelse sker. Två filer anses vara lika om deras filstorlekar är lika. Detta är användbart när filkopieringsåtgärden inte bevarade ändringsdatum. Använd alternativet med försiktighet. Normalvärdet är av.</para
></listitem
></varlistentry>
</variablelist
></para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Synkronisera kataloger:</emphasis
></term
><listitem
><para
>Aktiverar "synkroniseringsläge" när två kataloger jämförs och ingen explicit målkatalog anges. I det här läget väljes föreslagna åtgärder så att båda källkatalogerna är likadana efteråt. Sammanfogningsresultatet skrivs också till båda kataloger. Normalvärdet är av.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Kopiera nyare istället för att sammanfoga:</emphasis
></term
><listitem
><para
>Istället för att sammanfoga kopierar den föreslagna åtgärden den nyare källan om ändringar har skett. (Anses vara osäkert, eftersom det förutsätter att du vet att den andra filen inte också har redigerats. Kontrollera för att vara säker i varje enskilt fall.) Normalvärdet är av.</para
></listitem
></varlistentry>
<varlistentry
><term
><emphasis
>Säkerhetskopiera filer:</emphasis
></term
><listitem
><para
>Om en fil eller hel katalog ersätts med en annan eller tas bort, då ändras originalversionens namn med tillägg av filändelsen ".orig". Om en gammal säkerhetskopia med filändelsen ".orig" redan finns tas den bort utan säkerhetskopiering. Det här gäller också normal sammanfogning av enstaka filer, inte bara sammanfogningsläge för kataloger. Normalvärdet är på.</para
></listitem
></varlistentry>
</variablelist>
</sect1>
<sect1 id="other"
><title
>Andra funktioner i katalogsammanfogningsfönstret</title>
<sect2
><title
>Delat eller fullskärmsläge</title>
<para
>Oftast förblir listfönstret för katalogsammanfogning synligt medan en enstaka fil jämförs eller sammanfogas. Du kan flytta raden som delar fillistan från fönstren för textjämförelse med musen. Om du inte vill göra det, kan du inaktivera "Delad skärmvy" i menyn "Katalog". Därefter kan du använda "Byt vy" i menyn "Katalog" för att byta mellan fillistan och fönstren för textjämförelse, som då upptar hela fönstret. </para>
</sect2>
<sect2
><title
>Jämföra och sammanfoga en ensam fil</title>
<para
>Du föredrar troligen ett vanligt dubbelklick på musen för att jämföra en fil. Hur som helst finns det också ett alternativ i menyn "Katalog". Du kan också direkt sammanfoga en enstaka fil, utan att starta katalogsammanfogning via "Sammanfoga markerade filer" i menyn "Sammanfoga". När resultatet sparas, sätts status till klar, och filen sammanfogas inte igen om en katalogsammanfogning startas. </para
><para
>Men observera att statusinformationen går förlorad när du kör om en katalogavsökning: menyn "Katalog", "Avsök igen" </para>
</sect2>
<sect2
><title
>Jämföra eller sammanfoga filer med olika namn</title>
<para
>Ibland behöver du jämföra eller sammanfoga filer med olika namn (t.ex. nuvarande fil och säkerhetskopian i samma katalog). </para
><para
>Markera den exakta filen genom att klicka på ikonen i kolumnen A, B eller C. Filen som först markeras på det sättet markeras med "A", den andra och tredje med "B" och "C" oberoende av vilken kolumn de finns i. Bara upp till tre filer kan markeras på detta sätt. </para
><para
>Fortsätt genom att välja "Jämför explicit markerade filer" eller "Sammanfoga explicit markerade filer" från menyn "Katalog". Av bekvämlighetsskäl finns också menyalternativen som en sammanhangsberoende meny som visas när du klickar på den senast markerade filen. </para
><para
>Jämförelsen eller sammanfogningen av en fil sker i samma fönster. Om metoden används för kataloger öppnas ett nytt fönster. </para
></sect2>
</sect1>
</chapter>
<chapter id="misc">
<title
>Diverse ämnen</title>
<sect1 id="networktransparency">
<title
>Nätverkstransparens via TDEIO</title>
<sect2
><title
>I/O-slavar</title>
<para
>KDE stöder nätverkstransparens via I/O-slavar. &kdiff3; använder dem för att läsa indatafiler och avsöka kataloger. Det betyder att du kan ange filer och kataloger på lokal- och fjärr-resurser via webbadresser. </para
><para
>Exempel: </para
><para>
<screen
><command
>kdiff3</command
> test.cpp ftp://ftp.langtbortistan.org/test.cpp
<command
>kdiff3</command
> tar:/home/hackare/arkiv.tar.gz/kat ./kat
</screen>
</para>
<para
>Den första raden jämför en lokal fil med en fil på en FTP-server. Den andra raden jämför en katalog i ett komprimerat arkiv med en lokal katalog. </para
><para
>Andra I/O-slavar som är intressanta är: </para>
<itemizedlist>
<listitem
><para
>Filer från WWW (http:),</para
></listitem>
<listitem
><para
>Filer från FTP (ftp:),</para
></listitem>
<listitem
><para
>Krypterad filöverföring (fish:, sftp:),</para
></listitem>
<listitem
><para
>Resurser från Windows (smb:),</para
></listitem>
<listitem
><para
>Lokala filer (file:),</para
></listitem>
</itemizedlist>
<para
>Andra saker som är möjliga, men troligen mindre användbara, är: </para>
<itemizedlist>
<listitem
><para
>Manualsidor (man:),</para
></listitem>
<listitem
><para
>Infosidor (info:),</para
></listitem>
</itemizedlist>
</sect2>
<sect2
><title
>Hur man skriver webbadresser</title>
<para
>En webbadress har en annorlunda syntax jämfört med sökvägar till lokala filer och kataloger. Vissa saker måste tas hänsyn till: </para>
<itemizedlist>
<listitem
><para
>En sökväg kan vara relativ, och kan innehålla "." eller "..". Det är inte möjligt för webbadresser, som alltid är absoluta. </para
></listitem
><listitem
><para
>Specialtecken måste skrivas med särskilda "teckenföljder". ("#" blir "%23", mellanslag blir "%20", etc.) Till exempel skulle en fil med namnet "/#foo#" ha webbadressen "file:/%23foo%23". </para
></listitem
><listitem
><para
>När webbadresser inte fungerar som väntat, försök att öppna dem i Konqueror först. </para
></listitem>
</itemizedlist>
</sect2>
<sect2
><title
>Möjligheter med I/O-slavar</title>
<para
>Nätverkstransparens har en nackdel: Inte alla resurser har samma möjligheter. </para
><para
>Ibland beror det på serverns filsystem, ibland på protokollet. Här är en kort lista med begränsningar: </para>
<itemizedlist>
<listitem
><para
>Ibland finns det inget stöd för länkar. </para
></listitem
><listitem
><para
>Eller finns det inget sätt att särskilja om en länk pekar på en fil eller katalog, då antas alltid en fil (ftp:, sftp:). </para
></listitem
><listitem
><para
>Kan inte alltid avgöra filstorleken. </para
></listitem
><listitem
><para
>Begränsat stöd för rättigheter. </para
></listitem
><listitem
><para
>Ingen möjlighet att ändra rättigheter eller ändringstid, så rättigheter eller tiden för en kopia skiljer sig från originalet. (Se alternativet "Lita på storlek". Ändring av rättigheter eller ändringstid är bara möjligt för lokala filer.) </para
></listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="kpart">
<title
>Använda &kdiff3; som en Kpart</title>
<para
>Kdiff3 är en Kpart. För närvarande implementeras gränssnittet KParts::ReadOnlyPart. </para
><para
>Den huvudsakliga användningen är för skillnadsvisning i KDevelop. KDevelop startar alltid den interna skillnadsvisningen först. För att använda &kdiff3;, klicka med höger musknapp i skillnadsvisningens fönster och välj "Visa i KDiff3-del" i den sammanhangsberoende menyn. </para
><para
>&kdiff3; kräver normalt två fullständiga filer som indata. När det används som en del, antar &kdiff3; att indatafilen är en programfixfil med unifierat format. &kdiff3; hämtar därefter originalfilernas namn i programfixfilen. Åtminstone en av de två filerna måste vara tillgänglig. &kdiff3; startar då kommandot <command
>patch</command
> för att återskapa den andra filen. </para
><para
>Du kan välja en programfixfil i Konqueror och välja "Förhandsgranska i"-"Kdiff3-del" i den sammanhangsberoende menyn. Var medveten om att det inte fungerar om ingen av originalfilerna finns tillgänglig, och är inte tillförlitligt om originalfilen eller filerna har ändrats sedan programfixfilen skapades. </para
><para
>När det kör som ett delprogram tillhandahåller &kdiff3; bara jämförelse mellan två filer, en mycket liten verktygsrad och meny. Sammanfogning eller katalogjämförelse stöds då inte. </para>
</sect1>
</chapter>
<chapter id="faq">
<title
>Vanliga frågor</title>
&reporting.bugs; &updating.documentation; <qandaset id="faqlist">
<qandaentry
><question
><para
>Varför kallas det "&kdiff3;"? </para
></question
><answer
><para
>Verktyg som heter "KDiff" och "KDiff2" (som nu kallas "Kompare") fanns redan. Dessutom ska "Kdiff3" antyda att programmet kan sammanfoga som verktyget "diff3" från samlingen med diff-verktyg. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Varför licensieras det under GPL? </para
></question
><answer
><para
>Jag har använt GPL-program under mycket lång tid nu, och lärt mig mycket genom att titta på en hel del av källkoden. Alltså är det här mitt "tack" till alla programmerare som också gjorde eller kommer att göra samma sak. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Vissa knappar och funktioner saknas. Vad är fel? </para
></question
><answer
><para
>Du kompilerade från källkod, men angav troligen inte rätt KDE-prefix med configure. Normalt vill configure installera i /usr/local, men då kan inte KDE hitta resursfilerna för användargränssnittet (dvs. kdiff3ui.rc). Filen README innehåller mer information om riktigt prefix. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Ofta visas rader som är liknande men inte identiska intill varandra, men inte alltid. Varför? </para
></question
><answer
><para
>Rader där bara antal blanktecken är olika behandlas som "lika", medan bara ett annorlunda blanktecken gör att raderna är "olika". Om liknande rader finns intill varandra, är detta i själva verket en slump men det är som tur är oftast fallet. Se också <link linkend="manualdiffhelp"
>hjälpen på manualsidan för diff</link
>. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Varför måste alla konflikter vara lösta innan sammanfogningsresultatet kan sparas? </para
></question
><answer
><para
>För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihåg var det börjar och slutar. Det behövs eftersom konflikter kan lösas upp manuellt genom att helt enkelt välja källknappen (A, B eller C). Informationen går förlorad när filen sparas som text, och det är för mycket ansträngning att skapa ett speciellt filformat som stöder att spara och återställa all nödvändig information. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Hur kan jag synkronisera jämförelsevyn och sammanfogningsvyn så att alla vyer visar samma textposition? </para
></question
><answer
><para
>Klicka på sammanfattningskolumnen till vänster om texten. (<link linkend="synchronise_views"
>Se också här.</link
>) </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Varför har inte editorn i resultatfönstret för sammanfogning en "ångra"-funktion? </para
></question
><answer
><para
>Hittills har det varit för stor ansträngning. Du kan alltid återställa en version från en källa (A, B eller C) genom att klicka på motsvarande knapp. För större redigering, rekommenderas användning av en annan editor ändå. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>När jag tog bort en del text, visades plötsligt "<Ingen källrad>" och det kan inte tas bort. Vad betyder det och hur kan man ta bort det? </para
></question
><answer
><para
>För varje likadant eller annorlunda avsnitt kommer editorn i fönstret med sammanfogningsresultatet ihåg var det börjar och slutar. "<Ingen källrad>" betyder att det inte finns någonting kvar i ett avsnitt, inte ens ett nyradstecken. Detta kan inträffa antingen vid automatisk sammanfogning eller efter redigering. Det är inget problem, eftersom den här informationen inte finns med i den sparade filen. Om du vill ha tillbaka originalkällan, markera bara källan (klicka på sammanfattningskolumnen till vänster) och klicka därefter på källknappen med innehållet som önskas (A, B eller C). </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Varför stöder inte &kdiff3; syntaxfärgläggning? </para
></question
><answer
><para
>&kdiff3; använder redan många färger för färgläggning av jämförelser. Ytterligare färgläggning skulle vara förvirrande. Använd en annan editor för detta. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Kan jag använda &kdiff3; för att jämföra filer från OpenOffice.Org, Word, Excel, PDF, och så vidare? </para
></question
><answer
><para
>Även om &kdiff3; kan analysera alla sorters filer, är resultatet troligen inte särskilt tillfredsställande för dig. </para
><para
>&kdiff3; skapades för att jämföra rena textfiler. OpenOffice, Word, Excel, och så vidare, lagrar mycket mer information i filerna (om teckensnitt, bilder, sidor, färger, etc.), som &kdiff3; inte känner till. Alltså visar &kdiff3; dig innehållet i filen tolkat som ren text, men det kan vara oläsbart eller åtminstone se mycket konstigt ut. </para
><para
>Eftersom de flesta program nuförtiden lagrar sitt innehåll med XML-format, kanske du kan läsa det som ren text. Om ändringen bara var liten, kanske &kdiff3; fortfarande kan hjälpa dig. </para
><para
>Den bästa lösningen om du bara vill jämföra texten (utan inbäddade objekt som bilder) är att använda "Markera alla" och "Kopiera" i programmet för att kopiera den intressanta texten till klippbordet och därefter tdelistra in texten i något av jämförelsefönstren i &kdiff3;. (Se också <link linkend="selections"
>Markera, kopiera och tdelistra in</link
>.) </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Vart har katalogalternativet "Lista bara skillnader" tagit vägen? </para
></question
><answer
><para
>Det finns nu flera olika <link linkend="selectingvisiblefiles"
>"Visa"-alternativ</link
> i katalogmenyn. Att inaktivera "Visa identiska filer" åstadkommer vad aktivering av "Lista bara skillnader" brukade göra. </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Hur kan man göra en stor markering i jämförelsefönstret fastän det tar så lång tid att rulla texten? </para
></question
><answer
><para
>Påbörja markeringen som vanligt (klicka och håll nere vänster musknapp). Använd därefter navigationstangenterna (t.ex. Page Up, Page Down) medan vänster musknapp hålls nere. (Se också <link linkend="selections"
>Markera, kopiera och tdelistra in</link
>.) </para
></answer
></qandaentry>
<qandaentry
><question
><para
>Det finns en stor mängd information här, men din fråga har ändå inte besvarats? </para
></question
><answer
><para
>Skicka gärna din fråga till mig. Jag uppskattar alla kommentarer. </para
></answer
></qandaentry>
</qandaset>
</chapter>
<chapter id="credits">
<title
>Tack till och licens</title>
<para
>&kdiff3;: Verktyg för jämförelser och sammanfogning av filer och kataloger </para>
<para
>Program copyright 2002-2006 Joachim Eibl <email
>joachim.eibl snabela gmx.de</email
> </para>
<para
>Flera häftiga idéer och felrapporter kom från kolleger och många personer ute i den Vida Vilda Världen. Tack! </para>
<para
>Dokumentation Copyright © 2002-2006 Joachim Eibl <email
>joachim. eibl snabela gmx.de</email
> </para>
<para
>Översättning Stefan Asserhäll<email
>stefan.asserhall@comhem.se</email
></para
>
&underFDL; &underGPL; </chapter>
<appendix id="installation">
<title
>Installation</title>
<sect1 id="getting-kdiff3">
<title
>Hur man skaffar &kdiff3;</title>
<para
>Du kan ladda ner senaste version av &kdiff3; från hemsidan <ulink url="http://kdiff3.sourceforge.net"
>http://kdiff3.sourceforge.net</ulink
>. </para
><para
>&kdiff3; är också tillgänglig för andra plattformar. Se hemsidan för detaljinformation. </para>
</sect1>
<sect1 id="requirements">
<title
>Krav</title>
<para
>För att använda alla funktioner i &kdiff3; med lyckat resultat behöver du &kde; 3.1 eller senare. </para
><para
>För information om hur &kdiff3; kan köras på andra plattformar utan KDE, se <ulink url="http://kdiff3.sourceforge.net"
>hemsidan</ulink
>. </para
><para
>Du hittar en lista med ändringar på <ulink url="http://kdiff3.sourceforge.net/ChangeLog"
>http://kdiff3.sourceforge.net/ChangeLog</ulink
> eller i filen "ChangeLog" i källkodspaketet. </para>
</sect1>
<sect1 id="compilation">
<title
>Kompilering och installation</title>
<para
>För att kompilera och installera &kdiff3; på ett system med KDE, skriv följande i baskatalogen för distributionen av &kdiff3;:</para>
<screen
><prompt
>%</prompt
> <userinput
><command
>./configure --prefix=<replaceable
>kde-katalog</replaceable
></command
></userinput>
<prompt
>%</prompt
> <userinput
><command
>make</command
></userinput>
<prompt
>%</prompt
> <userinput
><command
>make</command
> install</userinput
>
</screen>
<para
><replaceable
>kde-katalog</replaceable
> anger katalogen som innehåller KDE på ditt system. Om du inte är säker, läs filen README för detaljinformation. </para>
<para
>Om du inte använder KDE, använd inte <command
>configure</command
> utan följ instruktionerna för system som bara använder Qt i filen README.</para>
<para
>Eftersom &kdiff3; använder <command
>autoconf</command
> och <command
>automake</command
> bör du inte ha några problem med att kompilera det. Skulle du stöta på problem, rapportera dem gärna till &kde;:s e-postlistor.</para>
</sect1>
</appendix>
&documentation.index;
</book>
<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
vim:tabstop=2:shiftwidth=2:expandtab
-->
|