Fossil

Check-in [9e6f20bd]
Login

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

Overview
Comment:Fix the setting of the "x" property for files in a delta-manifest on unix. Ticket [a4295406dde4682facd619].
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:9e6f20bdf993b22eebd63761d72ffbed41b8f18a
User & Date: drh 2011-01-04 17:50:46
References
2011-01-04
20:32 Closed ticket [986b3121]: fossil reports changes when there are none plus 2 other changes artifact: 41ee1824 user: rwilson
20:29 Ticket [986b3121]: 2 changes artifact: 48354794 user: rwilson
Context
2011-01-04
18:05
Merge the self-registration changes into the trunk. check-in: 9039a6ab user: drh tags: trunk
17:50
Fix the setting of the "x" property for files in a delta-manifest on unix. Ticket [a4295406dde4682facd619]. check-in: 9e6f20bd user: drh tags: trunk
14:12
Fix the merge command so that file renames are only considered if they are on the shortest path between the pivot and the checkins being merged. Ticket [74413366fe5067b3d]. check-in: ff2a8710 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/checkin.c.

634
635
636
637
638
639
640
641
642
643
644
645



646
647
648
649
650
651
652
...
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
    const char *zUuid = db_column_text(&q, 1);
    const char *zOrig = db_column_text(&q, 2);
    int frid = db_column_int(&q, 3);
    int isexe = db_column_int(&q, 4);
    int isSelected = db_column_int(&q, 5);
    const char *zPerm;
    int cmp;
    blob_append(&filename, zName, -1);
#if !defined(_WIN32)
    /* For unix, extract the "executable" permission bit directly from
    ** the filesystem.  On windows, the "executable" bit is retained
    ** unchanged from the original. */



    isexe = file_isexe(blob_str(&filename));
#endif
    if( isexe ){
      zPerm = " x";
    }else{
      zPerm = "";
    }
................................................................................
      nFBcard++;
    }
    cmp = 1;
    if( pFile==0
      || (cmp = fossil_strcmp(pFile->zName,zName))!=0
      || fossil_strcmp(pFile->zUuid, zUuid)!=0
    ){
      blob_resize(&filename, nBasename);
      if( zOrig && !isSelected ){ zName = zOrig; zOrig = 0; }
      if( zOrig==0 || fossil_strcmp(zOrig,zName)==0 ){
        blob_appendf(pOut, "F %F %s%s\n", zName, zUuid, zPerm);
      }else{
        if( zPerm[0]==0 ){ zPerm = " w"; }
        blob_appendf(pOut, "F %F %s%s %F\n", zName, zUuid, zPerm, zOrig);
      }







<



|
>
>
>







 







<







634
635
636
637
638
639
640

641
642
643
644
645
646
647
648
649
650
651
652
653
654
...
659
660
661
662
663
664
665

666
667
668
669
670
671
672
    const char *zUuid = db_column_text(&q, 1);
    const char *zOrig = db_column_text(&q, 2);
    int frid = db_column_int(&q, 3);
    int isexe = db_column_int(&q, 4);
    int isSelected = db_column_int(&q, 5);
    const char *zPerm;
    int cmp;

#if !defined(_WIN32)
    /* For unix, extract the "executable" permission bit directly from
    ** the filesystem.  On windows, the "executable" bit is retained
    ** unchanged from the original. 
    */
    blob_resize(&filename, nBasename);
    blob_append(&filename, zName, -1);
    isexe = file_isexe(blob_str(&filename));
#endif
    if( isexe ){
      zPerm = " x";
    }else{
      zPerm = "";
    }
................................................................................
      nFBcard++;
    }
    cmp = 1;
    if( pFile==0
      || (cmp = fossil_strcmp(pFile->zName,zName))!=0
      || fossil_strcmp(pFile->zUuid, zUuid)!=0
    ){

      if( zOrig && !isSelected ){ zName = zOrig; zOrig = 0; }
      if( zOrig==0 || fossil_strcmp(zOrig,zName)==0 ){
        blob_appendf(pOut, "F %F %s%s\n", zName, zUuid, zPerm);
      }else{
        if( zPerm[0]==0 ){ zPerm = " w"; }
        blob_appendf(pOut, "F %F %s%s %F\n", zName, zUuid, zPerm, zOrig);
      }