Changes On Branch fix_mlink
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch fix_mlink Excluding Merge-Ins

This is equivalent to a diff from 83a574b019 to a7caf19823

2011-11-03
08:06
Correct fix in [d084043f79827]. This attempt at fixing the problem is closed. Closed-Leaf check-in: a7caf19823 user: viriketo tags: fix_mlink
01:22
Refactor the name resolution logic in name.c. check-in: 7858a39b36 user: drh tags: trunk
2011-11-02
21:53
Trying to fix some cases where the mlink table is bad build due to delta manifests.    In this checkin, I fix the case when the child delta manifest changed back the file from some contents to those of its baseline manifest. The 'info' page was not showing these kind of changes.    Should close the ticket [2ce64a315f]. check-in: cf5f2c4ea6 user: viriketo tags: fix_mlink
15:23
Update the blob_write_to_file() routine so that it correctly handles binary files being send to standard output. check-in: 83a574b019 user: drh tags: trunk
2011-10-31
17:54
Fix a potential division-by-zero in the file browser. check-in: 4d408219bd user: drh tags: trunk

Changes to src/manifest.c.

  1333   1333                          pChildFile->zName, 0, isPublic, mperm);
  1334   1334          }
  1335   1335       }
  1336   1336     }
  1337   1337     if( pParent->zBaseline && pChild->zBaseline ){
  1338   1338       /* Both parent and child are delta manifests.  Look for files that
  1339   1339       ** are marked as deleted in the parent but which reappear in the child
  1340         -    ** and show such files as being added in the child. */
         1340  +    ** and show such files as being added in the child.
         1341  +    ** Also look for different uuids in the parent, to show that
         1342  +    ** the file contents were back those of the baseline */
  1341   1343       for(i=0, pParentFile=pParent->aFile; i<pParent->nFile; i++, pParentFile++){
  1342         -      if( pParentFile->zUuid ) continue;
  1343   1344         pChildFile = manifest_file_seek(pChild, pParentFile->zName);
  1344   1345         if( pChildFile ){
  1345         -        add_one_mlink(cid, 0, pChildFile->zUuid, pChildFile->zName, 0,
  1346         -                      isPublic, manifest_file_mperm(pChildFile));
         1346  +        int mperm = manifest_file_mperm(pChildFile);
         1347  +        if( !pParentFile->zUuid ){
         1348  +          /* File added to the child */
         1349  +          add_one_mlink(cid, 0, pChildFile->zUuid, pChildFile->zName, 0,
         1350  +              isPublic, mperm);
         1351  +        }else if( fossil_strcmp(pChildFile->zUuid, pParentFile->zUuid) !=0
         1352  +            || manifest_file_mperm(pParentFile)!=mperm ){
         1353  +          /* File changed in the child back to the baseline uuid or perms */
         1354  +          add_one_mlink(cid, pParentFile->zUuid, pChildFile->zUuid,
         1355  +              pChildFile->zName, 0, isPublic, mperm);
         1356  +        }
  1347   1357         }
  1348   1358       }
  1349   1359     }else if( pChild->zBaseline==0 ){
  1350   1360       /* pChild is a baseline.  Look for files that are present in pParent
  1351   1361       ** but are missing from pChild and mark them as having been deleted. */
  1352   1362       manifest_file_rewind(pParent);
  1353   1363       while( (pParentFile = manifest_file_next(pParent,0))!=0 ){