Fossil SCM

fossil-scm / test / merge3.test
Blame History Raw 654 lines
1
#
2
# Copyright (c) 2009 D. Richard Hipp
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the Simplified BSD License (also
6
# known as the "2-Clause License" or "FreeBSD License".)
7
#
8
# This program is distributed in the hope that it will be useful,
9
# but without any warranty; without even the implied warranty of
10
# merchantability or fitness for a particular purpose.
11
#
12
# Author contact information:
13
# [email protected]
14
# http://www.hwaci.com/drh/
15
#
16
############################################################################
17
#
18
# Tests of the 3-way merge
19
#
20
21
test_setup ""
22
23
proc merge-test {testid basis v1 v2 result {fossil_args ""}} {
24
write_file t1 [join [string trim $basis] \n]\n
25
write_file t2 [join [string trim $v1] \n]\n
26
write_file t3 [join [string trim $v2] \n]\n
27
fossil 3-way-merge t1 t2 t3 t4 {*}$fossil_args
28
set x [read_file t4]
29
regsub -all \
30
{<<<<<<< BEGIN MERGE CONFLICT: local copy shown first <+ \(line \d+\)} \
31
$x {MINE:} x
32
regsub -all \
33
{####### SUGGESTED CONFLICT RESOLUTION follows #+} \
34
$x {BOT:} x
35
regsub -all \
36
{\|\|\|\|\|\|\| COMMON ANCESTOR content follows \|+ \(line \d+\)} \
37
$x {COM:} x
38
regsub -all \
39
{======= MERGED IN content follows =+ \(line \d+\)} \
40
$x {YOURS:} x
41
regsub -all \
42
{>>>>>>> END MERGE CONFLICT >+} \
43
$x {END} x
44
set x [split [string trim $x] \n]
45
set result [string trim $result]
46
if {$x!=$result} {
47
protOut " Expected \[$result\]"
48
protOut " Got \[$x\]"
49
test merge3-$testid 0
50
} else {
51
test merge3-$testid 1
52
}
53
}
54
55
merge-test 1 {
56
1 2 3 4 5 6 7 8 9
57
} {
58
1 2 3b 4 5 6 7 8 9
59
} {
60
1 2 3 4 5c 6 7 8 9
61
} {
62
1 2 3b 4 5c 6 7 8 9
63
}
64
65
merge-test 2 {
66
1 2 3 4 5 6 7 8 9
67
} {
68
1 2 3b 4b 5 6 7 8 9
69
} {
70
1 2 3 4 5c 6 7 8 9
71
} {
72
1 2 3b 4b 5c 6 7 8 9
73
}
74
merge-test 3 {
75
1 2 3 4 5 6 7 8 9
76
} {
77
1 2 3b 4b 5b 6 7 8 9
78
} {
79
1 2 3 4 5c 6 7 8 9
80
} {
81
1 2 MINE: 3b 4b 5b BOT: 3b 4b 5c COM: 3 4 5 YOURS: 3 4 5c END 6 7 8 9
82
} -expectError
83
merge-test 4 {
84
1 2 3 4 5 6 7 8 9
85
} {
86
1 2 3b 4b 5b 6b 7 8 9
87
} {
88
1 2 3 4 5c 6 7 8 9
89
} {
90
1 2 MINE: 3b 4b 5b 6b BOT: 3b 4b 5b 5c 6 COM: 3 4 5 6 YOURS: 3 4 5c 6 END 7 8 9
91
} -expectError
92
merge-test 5 {
93
1 2 3 4 5 6 7 8 9
94
} {
95
1 2 3b 4b 5b 6b 7 8 9
96
} {
97
1 2 3 4 5c 6c 7c 8 9
98
} {
99
1 2 MINE: 3b 4b 5b 6b 7 BOT: 3b 4b 5b 5c 6c 7c COM: 3 4 5 6 7 YOURS: 3 4 5c 6c 7c END 8 9
100
} -expectError
101
merge-test 6 {
102
1 2 3 4 5 6 7 8 9
103
} {
104
1 2 3b 4b 5b 6b 7 8b 9
105
} {
106
1 2 3 4 5c 6c 7c 8 9
107
} {
108
1 2 MINE: 3b 4b 5b 6b 7 BOT: 3b 4b 5b 5c 6c 7c COM: 3 4 5 6 7 YOURS: 3 4 5c 6c 7c END 8b 9
109
} -expectError
110
merge-test 7 {
111
1 2 3 4 5 6 7 8 9
112
} {
113
1 2 3b 4b 5b 6b 7 8b 9
114
} {
115
1 2 3 4 5c 6c 7c 8c 9
116
} {
117
1 2 MINE: 3b 4b 5b 6b 7 8b BOT: 3b 4b 5b 5c 6c 7c 8c COM: 3 4 5 6 7 8 YOURS: 3 4 5c 6c 7c 8c END 9
118
} -expectError
119
merge-test 8 {
120
1 2 3 4 5 6 7 8 9
121
} {
122
1 2 3b 4b 5b 6b 7 8b 9b
123
} {
124
1 2 3 4 5c 6c 7c 8c 9
125
} {
126
1 2 MINE: 3b 4b 5b 6b 7 8b 9b BOT: 3b 4b 5b 5c 6c 7c 8c 9b COM: 3 4 5 6 7 8 9 YOURS: 3 4 5c 6c 7c 8c 9 END
127
} -expectError
128
merge-test 9 {
129
1 2 3 4 5 6 7 8 9
130
} {
131
1 2 3b 4b 5 6 7 8b 9b
132
} {
133
1 2 3 4 5c 6c 7c 8 9
134
} {
135
1 2 3b 4b 5c 6c 7c 8b 9b
136
}
137
138
merge-test 10 {
139
1 2 3 4 5 6 7 8 9
140
} {
141
1 2 3b 4b 5 6 7 8b 9b
142
} {
143
1 2 3b 4b 5 6c 7c 8 9
144
} {
145
1 2 3b 4b 5 6c 7c 8b 9b
146
}
147
merge-test 11 {
148
1 2 3 4 5 6 7 8 9
149
} {
150
1 2 3b 4b 5 6 7 8b 9b
151
} {
152
1 2 3b 4c 5 6c 7c 8 9
153
} {
154
1 2 MINE: 3b 4b BOT: 3b 4c COM: 3 4 YOURS: 3b 4c END 5 6c 7c 8b 9b
155
} -expectError
156
merge-test 12 {
157
1 2 3 4 5 6 7 8 9
158
} {
159
1 2 3b4b 5 6 7 8b 9b
160
} {
161
1 2 3b4b 5 6c 7c 8 9
162
} {
163
1 2 3b4b 5 6c 7c 8b 9b
164
}
165
166
merge-test 20 {
167
1 2 3 4 5 6 7 8 9
168
} {
169
1 3 4 5 6 7 8 9
170
} {
171
1 2 3 4 5 6 7 9
172
} {
173
1 3 4 5 6 7 9
174
}
175
merge-test 21 {
176
1 2 3 4 5 6 7 8 9
177
} {
178
1 4 5 6 7 8 9
179
} {
180
1 2 3 4 5 6 9
181
} {
182
1 4 5 6 9
183
}
184
merge-test 22 {
185
1 2 3 4 5 6 7 8 9
186
} {
187
1 5 6 7 8 9
188
} {
189
1 2 3 4 5 9
190
} {
191
1 5 9
192
}
193
merge-test 23 {
194
1 2 3 4 5 6 7 8 9
195
} {
196
1 6 7 8 9
197
} {
198
1 2 3 4 5 9
199
} {
200
1 9
201
}
202
merge-test 24 {
203
1 2 3 4 5 6 7 8 9
204
} {
205
1 6 7 8 9
206
} {
207
1 2 3 4 9
208
} {
209
1 MINE: 6 7 8 BOT: 2 3 4 COM: 2 3 4 5 6 7 8 YOURS: 2 3 4 END 9
210
} -expectError
211
merge-test 25 {
212
1 2 3 4 5 6 7 8 9
213
} {
214
1 7 8 9
215
} {
216
1 2 3 9
217
} {
218
1 MINE: 7 8 BOT: 2 3 COM: 2 3 4 5 6 7 8 YOURS: 2 3 END 9
219
} -expectError
220
221
merge-test 30 {
222
1 2 3 4 5 6 7 8 9
223
} {
224
1 2 3 4 5 6 7 9
225
} {
226
1 3 4 5 6 7 8 9
227
} {
228
1 3 4 5 6 7 9
229
}
230
merge-test 31 {
231
1 2 3 4 5 6 7 8 9
232
} {
233
1 2 3 4 5 6 9
234
} {
235
1 4 5 6 7 8 9
236
} {
237
1 4 5 6 9
238
}
239
merge-test 32 {
240
1 2 3 4 5 6 7 8 9
241
} {
242
1 2 3 4 5 9
243
} {
244
1 5 6 7 8 9
245
} {
246
1 5 9
247
}
248
merge-test 33 {
249
1 2 3 4 5 6 7 8 9
250
} {
251
1 2 3 4 5 9
252
} {
253
1 6 7 8 9
254
} {
255
1 9
256
}
257
merge-test 34 {
258
1 2 3 4 5 6 7 8 9
259
} {
260
1 2 3 4 9
261
} {
262
1 6 7 8 9
263
} {
264
1 MINE: 2 3 4 BOT: 6 7 8 COM: 2 3 4 5 6 7 8 YOURS: 6 7 8 END 9
265
} -expectError
266
merge-test 35 {
267
1 2 3 4 5 6 7 8 9
268
} {
269
1 2 3 9
270
} {
271
1 7 8 9
272
} {
273
1 MINE: 2 3 BOT: 7 8 COM: 2 3 4 5 6 7 8 YOURS: 7 8 END 9
274
} -expectError
275
276
merge-test 40 {
277
2 3 4 5 6 7 8
278
} {
279
3 4 5 6 7 8
280
} {
281
2 3 4 5 6 7
282
} {
283
3 4 5 6 7
284
}
285
merge-test 41 {
286
2 3 4 5 6 7 8
287
} {
288
4 5 6 7 8
289
} {
290
2 3 4 5 6
291
} {
292
4 5 6
293
}
294
merge-test 42 {
295
2 3 4 5 6 7 8
296
} {
297
5 6 7 8
298
} {
299
2 3 4 5
300
} {
301
5
302
}
303
merge-test 43 {
304
2 3 4 5 6 7 8
305
} {
306
6 7 8
307
} {
308
2 3 4 5
309
} {
310
311
}
312
merge-test 44 {
313
2 3 4 5 6 7 8
314
} {
315
6 7 8
316
} {
317
2 3 4
318
} {
319
MINE: 6 7 8 BOT: 2 3 4 COM: 2 3 4 5 6 7 8 YOURS: 2 3 4 END
320
} -expectError
321
merge-test 45 {
322
2 3 4 5 6 7 8
323
} {
324
7 8
325
} {
326
2 3
327
} {
328
MINE: 7 8 BOT: 2 3 COM: 2 3 4 5 6 7 8 YOURS: 2 3 END
329
} -expectError
330
331
merge-test 50 {
332
2 3 4 5 6 7 8
333
} {
334
2 3 4 5 6 7
335
} {
336
3 4 5 6 7 8
337
} {
338
3 4 5 6 7
339
}
340
merge-test 51 {
341
2 3 4 5 6 7 8
342
} {
343
2 3 4 5 6
344
} {
345
4 5 6 7 8
346
} {
347
4 5 6
348
}
349
merge-test 52 {
350
2 3 4 5 6 7 8
351
} {
352
2 3 4 5
353
} {
354
5 6 7 8
355
} {
356
5
357
}
358
merge-test 53 {
359
2 3 4 5 6 7 8
360
} {
361
2 3 4 5
362
} {
363
6 7 8
364
} {
365
}
366
merge-test 54 {
367
2 3 4 5 6 7 8
368
} {
369
2 3 4
370
} {
371
6 7 8
372
} {
373
MINE: 2 3 4 BOT: 6 7 8 COM: 2 3 4 5 6 7 8 YOURS: 6 7 8 END
374
} -expectError
375
merge-test 55 {
376
2 3 4 5 6 7 8
377
} {
378
2 3
379
} {
380
7 8
381
} {
382
MINE: 2 3 BOT: 7 8 COM: 2 3 4 5 6 7 8 YOURS: 7 8 END
383
} -expectError
384
385
merge-test 60 {
386
1 2 3 4 5 6 7 8 9
387
} {
388
1 2b 3 4 5 6 7 8 9
389
} {
390
1 2 3 4 5 6 7 9
391
} {
392
1 2b 3 4 5 6 7 9
393
}
394
merge-test 61 {
395
1 2 3 4 5 6 7 8 9
396
} {
397
1 2b 3b 4 5 6 7 8 9
398
} {
399
1 2 3 4 5 6 9
400
} {
401
1 2b 3b 4 5 6 9
402
}
403
merge-test 62 {
404
1 2 3 4 5 6 7 8 9
405
} {
406
1 2b 3b 4b 5 6 7 8 9
407
} {
408
1 2 3 4 5 9
409
} {
410
1 2b 3b 4b 5 9
411
}
412
merge-test 63 {
413
1 2 3 4 5 6 7 8 9
414
} {
415
1 2b 3b 4b 5b 6 7 8 9
416
} {
417
1 2 3 4 5 9
418
} {
419
1 2b 3b 4b 5b 9
420
}
421
merge-test 64 {
422
1 2 3 4 5 6 7 8 9
423
} {
424
1 2b 3b 4b 5b 6 7 8 9
425
} {
426
1 2 3 4 9
427
} {
428
1 MINE: 2b 3b 4b 5b 6 7 8 BOT: 2b 3b 4b 4 COM: 2 3 4 5 6 7 8 YOURS: 2 3 4 END 9
429
} -expectError
430
merge-test 65 {
431
1 2 3 4 5 6 7 8 9
432
} {
433
1 2b 3b 4b 5b 6b 7 8 9
434
} {
435
1 2 3 9
436
} {
437
1 MINE: 2b 3b 4b 5b 6b 7 8 BOT: 2 3 COM: 2 3 4 5 6 7 8 YOURS: 2 3 END 9
438
} -expectError
439
440
merge-test 70 {
441
1 2 3 4 5 6 7 8 9
442
} {
443
1 2 3 4 5 6 7 9
444
} {
445
1 2b 3 4 5 6 7 8 9
446
} {
447
1 2b 3 4 5 6 7 9
448
}
449
merge-test 71 {
450
1 2 3 4 5 6 7 8 9
451
} {
452
1 2 3 4 5 6 9
453
} {
454
1 2b 3b 4 5 6 7 8 9
455
} {
456
1 2b 3b 4 5 6 9
457
}
458
merge-test 72 {
459
1 2 3 4 5 6 7 8 9
460
} {
461
1 2 3 4 5 9
462
} {
463
1 2b 3b 4b 5 6 7 8 9
464
} {
465
1 2b 3b 4b 5 9
466
}
467
merge-test 73 {
468
1 2 3 4 5 6 7 8 9
469
} {
470
1 2 3 4 5 9
471
} {
472
1 2b 3b 4b 5b 6 7 8 9
473
} {
474
1 2b 3b 4b 5b 9
475
}
476
merge-test 74 {
477
1 2 3 4 5 6 7 8 9
478
} {
479
1 2 3 4 9
480
} {
481
1 2b 3b 4b 5b 6 7 8 9
482
} {
483
1 MINE: 2 3 4 BOT: 2b 3b 4b 5b 6 7 8 COM: 2 3 4 5 6 7 8 YOURS: 2b 3b 4b 5b 6 7 8 END 9
484
} -expectError
485
merge-test 75 {
486
1 2 3 4 5 6 7 8 9
487
} {
488
1 2 3 9
489
} {
490
1 2b 3b 4b 5b 6b 7 8 9
491
} {
492
1 MINE: 2 3 BOT: 2b 3b 4b 5b 6b 7 8 COM: 2 3 4 5 6 7 8 YOURS: 2b 3b 4b 5b 6b 7 8 END 9
493
} -expectError
494
495
merge-test 80 {
496
2 3 4 5 6 7 8
497
} {
498
2b 3 4 5 6 7 8
499
} {
500
2 3 4 5 6 7
501
} {
502
2b 3 4 5 6 7
503
}
504
merge-test 81 {
505
2 3 4 5 6 7 8
506
} {
507
2b 3b 4 5 6 7 8
508
} {
509
2 3 4 5 6
510
} {
511
2b 3b 4 5 6
512
}
513
merge-test 82 {
514
2 3 4 5 6 7 8
515
} {
516
2b 3b 4b 5 6 7 8
517
} {
518
2 3 4 5
519
} {
520
2b 3b 4b 5
521
}
522
merge-test 83 {
523
2 3 4 5 6 7 8
524
} {
525
2b 3b 4b 5b 6 7 8
526
} {
527
2 3 4 5
528
} {
529
2b 3b 4b 5b
530
}
531
merge-test 84 {
532
2 3 4 5 6 7 8
533
} {
534
2b 3b 4b 5b 6 7 8
535
} {
536
2 3 4
537
} {
538
MINE: 2b 3b 4b 5b 6 7 8 BOT: 2b 3b 4b 4 COM: 2 3 4 5 6 7 8 YOURS: 2 3 4 END
539
} -expectError
540
merge-test 85 {
541
2 3 4 5 6 7 8
542
} {
543
2b 3b 4b 5b 6b 7 8
544
} {
545
2 3
546
} {
547
MINE: 2b 3b 4b 5b 6b 7 8 BOT: 2 3 COM: 2 3 4 5 6 7 8 YOURS: 2 3 END
548
} -expectError
549
550
merge-test 90 {
551
2 3 4 5 6 7 8
552
} {
553
2 3 4 5 6 7
554
} {
555
2b 3 4 5 6 7 8
556
} {
557
2b 3 4 5 6 7
558
}
559
merge-test 91 {
560
2 3 4 5 6 7 8
561
} {
562
2 3 4 5 6
563
} {
564
2b 3b 4 5 6 7 8
565
} {
566
2b 3b 4 5 6
567
}
568
merge-test 92 {
569
2 3 4 5 6 7 8
570
} {
571
2 3 4 5
572
} {
573
2b 3b 4b 5 6 7 8
574
} {
575
2b 3b 4b 5
576
}
577
merge-test 93 {
578
2 3 4 5 6 7 8
579
} {
580
2 3 4 5
581
} {
582
2b 3b 4b 5b 6 7 8
583
} {
584
2b 3b 4b 5b
585
}
586
merge-test 94 {
587
2 3 4 5 6 7 8
588
} {
589
2 3 4
590
} {
591
2b 3b 4b 5b 6 7 8
592
} {
593
MINE: 2 3 4 BOT: 2b 3b 4b 5b 6 7 8 COM: 2 3 4 5 6 7 8 YOURS: 2b 3b 4b 5b 6 7 8 END
594
} -expectError
595
merge-test 95 {
596
2 3 4 5 6 7 8
597
} {
598
2 3
599
} {
600
2b 3b 4b 5b 6b 7 8
601
} {
602
MINE: 2 3 BOT: 2b 3b 4b 5b 6b 7 8 COM: 2 3 4 5 6 7 8 YOURS: 2b 3b 4b 5b 6b 7 8 END
603
} -expectError
604
605
merge-test 100 {
606
1 2 3 4 5 6 7 8 9
607
} {
608
1 2b 3 4 5 7 8 9 a b c d e
609
} {
610
1 2b 3 4 5 7 8 9 a b c d e
611
} {
612
1 2b 3 4 5 7 8 9 a b c d e
613
}
614
merge-test 101 {
615
1 2 3 4 5 6 7 8 9
616
} {
617
1 2b 3 4 5 7 8 9 a b c d e
618
} {
619
1 2b 3 4 5 7 8 9
620
} {
621
1 2b 3 4 5 7 8 9 a b c d e
622
}
623
merge-test 102 {
624
1 2 3 4 5 6 7 8 9
625
} {
626
1 2b 3 4 5 7 8 9
627
} {
628
1 2b 3 4 5 7 8 9 a b c d e
629
} {
630
1 2b 3 4 5 7 8 9 a b c d e
631
}
632
merge-test 103 {
633
1 2 3 4 5 6 7 8 9
634
} {
635
1 2 3 4 5 7 8 9b
636
} {
637
1 2 3 4 5 7 8 9b a b c d e
638
} {
639
1 2 3 4 5 7 8 MINE: 9b BOT: 9b a b c d e COM: 9 YOURS: 9b a b c d e END
640
} -expectError
641
merge-test 104 {
642
1 2 3 4 5 6 7 8 9
643
} {
644
1 2 3 4 5 7 8 9b a b c d e
645
} {
646
1 2 3 4 5 7 8 9b
647
} {
648
1 2 3 4 5 7 8 MINE: 9b a b c d e BOT: 9b COM: 9 YOURS: 9b END
649
} -expectError
650
651
###############################################################################
652
653
test_cleanup
654

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button