tests/test-copies-chain-merge.t
changeset 45733 ee3fd9021fac
parent 45732 4ffe502673c3
child 45735 edf4fa06df94
equal deleted inserted replaced
45732:4ffe502673c3 45733:ee3fd9021fac
   582   o  0 i-0 initial commit: a b h
   582   o  0 i-0 initial commit: a b h
   583   
   583   
   584 
   584 
   585 
   585 
   586   $ hg up null --quiet
   586   $ hg up null --quiet
       
   587 
       
   588 
       
   589 Test that sidedata computations during upgrades are correct
       
   590 ===========================================================
       
   591 
       
   592 We upgrade a repository that is not using sidedata (the filelog case) and
       
   593  check that the same side data have been generated as if they were computed at
       
   594  commit time.
       
   595 
       
   596 
       
   597 #if filelog
       
   598   $ cat >> $HGRCPATH << EOF
       
   599   > [format]
       
   600   > exp-use-side-data = yes
       
   601   > exp-use-copies-side-data-changeset = yes
       
   602   > EOF
       
   603   $ hg debugformat -v
       
   604   format-variant     repo config default
       
   605   fncache:            yes    yes     yes
       
   606   dotencode:          yes    yes     yes
       
   607   generaldelta:       yes    yes     yes
       
   608   sparserevlog:       yes    yes     yes
       
   609   sidedata:            no    yes      no
       
   610   persistent-nodemap:  no     no      no
       
   611   copies-sdc:          no    yes      no
       
   612   plain-cl-delta:     yes    yes     yes
       
   613   compression:        * (glob)
       
   614   compression-level:  default default default
       
   615   $ hg debugupgraderepo --run --quiet
       
   616   upgrade will perform the following actions:
       
   617   
       
   618   requirements
       
   619      preserved: * (glob)
       
   620      added: exp-copies-sidedata-changeset, exp-sidedata-flag
       
   621   
       
   622 #endif
       
   623 
       
   624 
       
   625 #if no-compatibility no-changeset
       
   626 
       
   627   $ for rev in `hg log --rev 'all()' -T '{rev}\n'`; do
       
   628   >     echo "##### revision $rev #####"
       
   629   >     hg debugsidedata -c -v -- $rev
       
   630   >     hg debugchangedfiles $rev
       
   631   > done
       
   632   ##### revision 0 #####
       
   633   1 sidedata entries
       
   634    entry-0014 size 34
       
   635     '\x00\x00\x00\x03\x04\x00\x00\x00\x01\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00abh'
       
   636   added      : a, ;
       
   637   added      : b, ;
       
   638   added      : h, ;
       
   639   ##### revision 1 #####
       
   640   1 sidedata entries
       
   641    entry-0014 size 24
       
   642     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ac'
       
   643   removed    : a, ;
       
   644   added    p1: c, a;
       
   645   ##### revision 2 #####
       
   646   1 sidedata entries
       
   647    entry-0014 size 24
       
   648     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00cd'
       
   649   removed    : c, ;
       
   650   added    p1: d, c;
       
   651   ##### revision 3 #####
       
   652   1 sidedata entries
       
   653    entry-0014 size 24
       
   654     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00de'
       
   655   removed    : d, ;
       
   656   added    p1: e, d;
       
   657   ##### revision 4 #####
       
   658   1 sidedata entries
       
   659    entry-0014 size 24
       
   660     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ef'
       
   661   removed    : e, ;
       
   662   added    p1: f, e;
       
   663   ##### revision 5 #####
       
   664   1 sidedata entries
       
   665    entry-0014 size 14
       
   666     '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00b'
       
   667   touched    : b, ;
       
   668   ##### revision 6 #####
       
   669   1 sidedata entries
       
   670    entry-0014 size 14
       
   671     '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   672   removed    : d, ;
       
   673   ##### revision 7 #####
       
   674   1 sidedata entries
       
   675    entry-0014 size 14
       
   676     '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   677   removed    : d, ;
       
   678   ##### revision 8 #####
       
   679   1 sidedata entries
       
   680    entry-0014 size 14
       
   681     '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   682   added      : d, ;
       
   683   ##### revision 9 #####
       
   684   1 sidedata entries
       
   685    entry-0014 size 24
       
   686     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bg'
       
   687   removed    : b, ;
       
   688   added    p1: g, b;
       
   689   ##### revision 10 #####
       
   690   1 sidedata entries
       
   691    entry-0014 size 24
       
   692     '\x00\x00\x00\x02\x06\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00fg'
       
   693   added    p1: f, g;
       
   694   removed    : g, ;
       
   695   ##### revision 11 #####
       
   696   1 sidedata entries
       
   697    entry-0014 size 4
       
   698     '\x00\x00\x00\x00'
       
   699   ##### revision 12 #####
       
   700   1 sidedata entries
       
   701    entry-0014 size 4
       
   702     '\x00\x00\x00\x00'
       
   703   ##### revision 13 #####
       
   704   1 sidedata entries
       
   705    entry-0014 size 4
       
   706     '\x00\x00\x00\x00'
       
   707   ##### revision 14 #####
       
   708   1 sidedata entries
       
   709    entry-0014 size 14
       
   710     '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   711   added      : d, ;
       
   712   ##### revision 15 #####
       
   713   1 sidedata entries
       
   714    entry-0014 size 4
       
   715     '\x00\x00\x00\x00'
       
   716   ##### revision 16 #####
       
   717   1 sidedata entries
       
   718    entry-0014 size 14
       
   719     '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   720   added      : d, ;
       
   721   ##### revision 17 #####
       
   722   1 sidedata entries
       
   723    entry-0014 size 4
       
   724     '\x00\x00\x00\x00'
       
   725   ##### revision 18 #####
       
   726   1 sidedata entries
       
   727    entry-0014 size 4
       
   728     '\x00\x00\x00\x00'
       
   729   ##### revision 19 #####
       
   730   1 sidedata entries
       
   731    entry-0014 size 14
       
   732     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
       
   733   merged     : f, ;
       
   734   ##### revision 20 #####
       
   735   1 sidedata entries
       
   736    entry-0014 size 14
       
   737     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
       
   738   merged     : f, ;
       
   739   ##### revision 21 #####
       
   740   1 sidedata entries
       
   741    entry-0014 size 24
       
   742     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00hi'
       
   743   removed    : h, ;
       
   744   added    p1: i, h;
       
   745   ##### revision 22 #####
       
   746   1 sidedata entries
       
   747    entry-0014 size 24
       
   748     '\x00\x00\x00\x02\x16\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00di'
       
   749   touched  p1: d, i;
       
   750   removed    : i, ;
       
   751   ##### revision 23 #####
       
   752   1 sidedata entries
       
   753    entry-0014 size 4
       
   754     '\x00\x00\x00\x00'
       
   755   ##### revision 24 #####
       
   756   1 sidedata entries
       
   757    entry-0014 size 4
       
   758     '\x00\x00\x00\x00'
       
   759   ##### revision 25 #####
       
   760   1 sidedata entries
       
   761    entry-0014 size 14
       
   762     '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   763   touched    : d, ;
       
   764   ##### revision 26 #####
       
   765   1 sidedata entries
       
   766    entry-0014 size 14
       
   767     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   768   merged     : d, ;
       
   769   ##### revision 27 #####
       
   770   1 sidedata entries
       
   771    entry-0014 size 14
       
   772     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   773   merged     : d, ;
       
   774   ##### revision 28 #####
       
   775   1 sidedata entries
       
   776    entry-0014 size 14
       
   777     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   778   merged     : d, ;
       
   779   ##### revision 29 #####
       
   780   1 sidedata entries
       
   781    entry-0014 size 14
       
   782     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   783   merged     : d, ;
       
   784   ##### revision 30 #####
       
   785   1 sidedata entries
       
   786    entry-0014 size 14
       
   787     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   788   salvaged   : d, ;
       
   789   ##### revision 31 #####
       
   790   1 sidedata entries
       
   791    entry-0014 size 14
       
   792     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   793   salvaged   : d, ;
       
   794   ##### revision 32 #####
       
   795   1 sidedata entries
       
   796    entry-0014 size 14
       
   797     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   798   salvaged   : d, ;
       
   799   ##### revision 33 #####
       
   800   1 sidedata entries
       
   801    entry-0014 size 14
       
   802     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
   803   salvaged   : d, ;
       
   804 
       
   805 #endif
       
   806 
       
   807 Downgrade to keep testing the filelog algorithm
       
   808 (This can be removed once we have an explicite "upgrade" tests case_
       
   809 
       
   810 #if filelog
       
   811   $ cat >> $HGRCPATH << EOF
       
   812   > [format]
       
   813   > exp-use-side-data = no
       
   814   > exp-use-copies-side-data-changeset = no
       
   815   > EOF
       
   816   $ hg debugformat -v
       
   817   format-variant     repo config default
       
   818   fncache:            yes    yes     yes
       
   819   dotencode:          yes    yes     yes
       
   820   generaldelta:       yes    yes     yes
       
   821   sparserevlog:       yes    yes     yes
       
   822   sidedata:           yes     no      no
       
   823   persistent-nodemap:  no     no      no
       
   824   copies-sdc:         yes     no      no
       
   825   plain-cl-delta:     yes    yes     yes
       
   826   compression:        * (glob)
       
   827   compression-level:  default default default
       
   828   $ hg debugupgraderepo --run --quiet
       
   829   upgrade will perform the following actions:
       
   830   
       
   831   requirements
       
   832      preserved: * (glob)
       
   833      removed: exp-copies-sidedata-changeset, exp-sidedata-flag
       
   834   
       
   835 #endif
   587 
   836 
   588 Test copy information chaining
   837 Test copy information chaining
   589 ==============================
   838 ==============================
   590 
   839 
   591 merging with unrelated change does not interfere with the renames
   840 merging with unrelated change does not interfere with the renames
  1344   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBC-revert-m-0")'
  1593   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBC-revert-m-0")'
  1345   M b
  1594   M b
  1346   A d
  1595   A d
  1347   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")'
  1596   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")'
  1348   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")'
  1597   $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")'
  1349 
       
  1350 
       
  1351 Test that sidedata computations during upgrades ares correct
       
  1352 ============================================================
       
  1353 
       
  1354 We upgrade a repository that is not using sidedata (the filelog case) and
       
  1355  check that the same side data have been generated as if they were computed at
       
  1356  commit time.
       
  1357 
       
  1358 
       
  1359 #if filelog
       
  1360   $ cat >> $HGRCPATH << EOF
       
  1361   > [format]
       
  1362   > exp-use-side-data = yes
       
  1363   > exp-use-copies-side-data-changeset = yes
       
  1364   > EOF
       
  1365   $ hg debugformat -v
       
  1366   format-variant     repo config default
       
  1367   fncache:            yes    yes     yes
       
  1368   dotencode:          yes    yes     yes
       
  1369   generaldelta:       yes    yes     yes
       
  1370   sparserevlog:       yes    yes     yes
       
  1371   sidedata:            no    yes      no
       
  1372   persistent-nodemap:  no     no      no
       
  1373   copies-sdc:          no    yes      no
       
  1374   plain-cl-delta:     yes    yes     yes
       
  1375   compression:        * (glob)
       
  1376   compression-level:  default default default
       
  1377   $ hg debugupgraderepo --run --quiet
       
  1378   upgrade will perform the following actions:
       
  1379   
       
  1380   requirements
       
  1381      preserved: * (glob)
       
  1382      added: exp-copies-sidedata-changeset, exp-sidedata-flag
       
  1383   
       
  1384 #endif
       
  1385 
       
  1386 
       
  1387 #if no-compatibility no-changeset
       
  1388 
       
  1389   $ for rev in `hg log --rev 'all()' -T '{rev}\n'`; do
       
  1390   >     echo "##### revision $rev #####"
       
  1391   >     hg debugsidedata -c -v -- $rev
       
  1392   >     hg debugchangedfiles $rev
       
  1393   > done
       
  1394   ##### revision 0 #####
       
  1395   1 sidedata entries
       
  1396    entry-0014 size 34
       
  1397     '\x00\x00\x00\x03\x04\x00\x00\x00\x01\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00abh'
       
  1398   added      : a, ;
       
  1399   added      : b, ;
       
  1400   added      : h, ;
       
  1401   ##### revision 1 #####
       
  1402   1 sidedata entries
       
  1403    entry-0014 size 24
       
  1404     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ac'
       
  1405   removed    : a, ;
       
  1406   added    p1: c, a;
       
  1407   ##### revision 2 #####
       
  1408   1 sidedata entries
       
  1409    entry-0014 size 24
       
  1410     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00cd'
       
  1411   removed    : c, ;
       
  1412   added    p1: d, c;
       
  1413   ##### revision 3 #####
       
  1414   1 sidedata entries
       
  1415    entry-0014 size 24
       
  1416     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00de'
       
  1417   removed    : d, ;
       
  1418   added    p1: e, d;
       
  1419   ##### revision 4 #####
       
  1420   1 sidedata entries
       
  1421    entry-0014 size 24
       
  1422     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ef'
       
  1423   removed    : e, ;
       
  1424   added    p1: f, e;
       
  1425   ##### revision 5 #####
       
  1426   1 sidedata entries
       
  1427    entry-0014 size 14
       
  1428     '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00b'
       
  1429   touched    : b, ;
       
  1430   ##### revision 6 #####
       
  1431   1 sidedata entries
       
  1432    entry-0014 size 14
       
  1433     '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1434   removed    : d, ;
       
  1435   ##### revision 7 #####
       
  1436   1 sidedata entries
       
  1437    entry-0014 size 14
       
  1438     '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1439   removed    : d, ;
       
  1440   ##### revision 8 #####
       
  1441   1 sidedata entries
       
  1442    entry-0014 size 14
       
  1443     '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1444   added      : d, ;
       
  1445   ##### revision 9 #####
       
  1446   1 sidedata entries
       
  1447    entry-0014 size 24
       
  1448     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bg'
       
  1449   removed    : b, ;
       
  1450   added    p1: g, b;
       
  1451   ##### revision 10 #####
       
  1452   1 sidedata entries
       
  1453    entry-0014 size 24
       
  1454     '\x00\x00\x00\x02\x06\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00fg'
       
  1455   added    p1: f, g;
       
  1456   removed    : g, ;
       
  1457   ##### revision 11 #####
       
  1458   1 sidedata entries
       
  1459    entry-0014 size 4
       
  1460     '\x00\x00\x00\x00'
       
  1461   ##### revision 12 #####
       
  1462   1 sidedata entries
       
  1463    entry-0014 size 4
       
  1464     '\x00\x00\x00\x00'
       
  1465   ##### revision 13 #####
       
  1466   1 sidedata entries
       
  1467    entry-0014 size 4
       
  1468     '\x00\x00\x00\x00'
       
  1469   ##### revision 14 #####
       
  1470   1 sidedata entries
       
  1471    entry-0014 size 14
       
  1472     '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1473   added      : d, ;
       
  1474   ##### revision 15 #####
       
  1475   1 sidedata entries
       
  1476    entry-0014 size 4
       
  1477     '\x00\x00\x00\x00'
       
  1478   ##### revision 16 #####
       
  1479   1 sidedata entries
       
  1480    entry-0014 size 14
       
  1481     '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1482   added      : d, ;
       
  1483   ##### revision 17 #####
       
  1484   1 sidedata entries
       
  1485    entry-0014 size 4
       
  1486     '\x00\x00\x00\x00'
       
  1487   ##### revision 18 #####
       
  1488   1 sidedata entries
       
  1489    entry-0014 size 4
       
  1490     '\x00\x00\x00\x00'
       
  1491   ##### revision 19 #####
       
  1492   1 sidedata entries
       
  1493    entry-0014 size 14
       
  1494     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
       
  1495   merged     : f, ;
       
  1496   ##### revision 20 #####
       
  1497   1 sidedata entries
       
  1498    entry-0014 size 14
       
  1499     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
       
  1500   merged     : f, ;
       
  1501   ##### revision 21 #####
       
  1502   1 sidedata entries
       
  1503    entry-0014 size 24
       
  1504     '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00hi'
       
  1505   removed    : h, ;
       
  1506   added    p1: i, h;
       
  1507   ##### revision 22 #####
       
  1508   1 sidedata entries
       
  1509    entry-0014 size 24
       
  1510     '\x00\x00\x00\x02\x16\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00di'
       
  1511   touched  p1: d, i;
       
  1512   removed    : i, ;
       
  1513   ##### revision 23 #####
       
  1514   1 sidedata entries
       
  1515    entry-0014 size 4
       
  1516     '\x00\x00\x00\x00'
       
  1517   ##### revision 24 #####
       
  1518   1 sidedata entries
       
  1519    entry-0014 size 4
       
  1520     '\x00\x00\x00\x00'
       
  1521   ##### revision 25 #####
       
  1522   1 sidedata entries
       
  1523    entry-0014 size 14
       
  1524     '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1525   touched    : d, ;
       
  1526   ##### revision 26 #####
       
  1527   1 sidedata entries
       
  1528    entry-0014 size 14
       
  1529     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1530   merged     : d, ;
       
  1531   ##### revision 27 #####
       
  1532   1 sidedata entries
       
  1533    entry-0014 size 14
       
  1534     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1535   merged     : d, ;
       
  1536   ##### revision 28 #####
       
  1537   1 sidedata entries
       
  1538    entry-0014 size 14
       
  1539     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1540   merged     : d, ;
       
  1541   ##### revision 29 #####
       
  1542   1 sidedata entries
       
  1543    entry-0014 size 14
       
  1544     '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1545   merged     : d, ;
       
  1546   ##### revision 30 #####
       
  1547   1 sidedata entries
       
  1548    entry-0014 size 14
       
  1549     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1550   salvaged   : d, ;
       
  1551   ##### revision 31 #####
       
  1552   1 sidedata entries
       
  1553    entry-0014 size 14
       
  1554     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1555   salvaged   : d, ;
       
  1556   ##### revision 32 #####
       
  1557   1 sidedata entries
       
  1558    entry-0014 size 14
       
  1559     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1560   salvaged   : d, ;
       
  1561   ##### revision 33 #####
       
  1562   1 sidedata entries
       
  1563    entry-0014 size 14
       
  1564     '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
       
  1565   salvaged   : d, ;
       
  1566 
       
  1567 #endif