Fossil

Check-in [dacecc79]
Login

Check-in [dacecc79]

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

Overview
Comment:Handle the three manifest files separately so manifest generation reconfigurations can be handled properly.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | jan-manifest-tags
Files: files | file ages | folders
SHA1: dacecc79aa591b645c973b83a0554980b93f545e
User & Date: jan 2016-01-04 02:54:39
Context
2016-01-04
03:10
Filter tags. ... (check-in: 53f2e7c5 user: jan tags: jan-manifest-tags)
02:54
Handle the three manifest files separately so manifest generation reconfigurations can be handled properly. ... (check-in: dacecc79 user: jan tags: jan-manifest-tags)
02:16
Conditionally save manifests on commit. ... (check-in: 46b9adb7 user: jan tags: jan-manifest-tags)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/checkout.c.
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
  char *zManFile;
  Blob manifest;
  Blob hash;
  Blob taglist;
  int flg;

  flg = db_get_manifest_setting();
  if( flg ){
    if( flg & (MFESTFLG_RAW|MFESTFLG_UUID) ){
      blob_zero(&manifest);
      content_get(vid, &manifest);
      zManFile = mprintf("%smanifest", g.zLocalRoot);
      blob_zero(&hash);
      sha1sum_blob(&manifest, &hash);
      sterilize_manifest(&manifest);
      if( flg & MFESTFLG_RAW ){
        blob_write_to_file(&manifest, zManFile);



      }

      free(zManFile);
    }
    if( flg & MFESTFLG_UUID ){
      zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
      blob_append(&hash, "\n", 1);
      blob_write_to_file(&hash, zManFile);
      free(zManFile);
      blob_reset(&hash);
    }
    if( flg & MFESTFLG_TAGS ){
      blob_zero(&taglist);
      zManFile = mprintf("%smanifest.tags", g.zLocalRoot);
      get_checkin_taglist(vid, &taglist);
      blob_write_to_file(&taglist, zManFile);
      free(zManFile);
    }
  }else{
    if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest'") ){
      zManFile = mprintf("%smanifest", g.zLocalRoot);
      file_delete(zManFile);
      free(zManFile);
    }
    if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.uuid'") ){
      zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
      file_delete(zManFile);
      free(zManFile);
    }









    if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.tags'") ){
      zManFile = mprintf("%smanifest.tags", g.zLocalRoot);
      file_delete(zManFile);
      free(zManFile);
    }
  }

}

void get_checkin_taglist(int rid, Blob *pOut){
  char *zTags;
  Stmt stmt;
  blob_reset(pOut);
  db_prepare(&stmt, "SELECT substr(tagname, 5)"







|
|
|
|
|
|
|
|
|
|
>
>
>

>
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<

<
<
<
<
<





>
>
>
>
>
>
>
>
>






<







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
  char *zManFile;
  Blob manifest;
  Blob hash;
  Blob taglist;
  int flg;

  flg = db_get_manifest_setting();

  if( flg & (MFESTFLG_RAW|MFESTFLG_UUID) ){
    blob_zero(&manifest);
    content_get(vid, &manifest);
    zManFile = mprintf("%smanifest", g.zLocalRoot);
    blob_zero(&hash);
    sha1sum_blob(&manifest, &hash);
    sterilize_manifest(&manifest);
    if( flg & MFESTFLG_RAW ){
      blob_write_to_file(&manifest, zManFile);
    }else{
      if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest'") ){
        file_delete(zManFile);
      }
    }
    free(zManFile);
  }
  if( flg & MFESTFLG_UUID ){
    zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
    blob_append(&hash, "\n", 1);
    blob_write_to_file(&hash, zManFile);
    free(zManFile);
    blob_reset(&hash);








  }else{





    if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.uuid'") ){
      zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
      file_delete(zManFile);
      free(zManFile);
    }
  }
  if( flg & MFESTFLG_TAGS ){
    blob_zero(&taglist);
    zManFile = mprintf("%smanifest.tags", g.zLocalRoot);
    get_checkin_taglist(vid, &taglist);
    blob_write_to_file(&taglist, zManFile);
    free(zManFile);
    blob_reset(&taglist);
  }else{
    if( !db_exists("SELECT 1 FROM vfile WHERE pathname='manifest.tags'") ){
      zManFile = mprintf("%smanifest.tags", g.zLocalRoot);
      file_delete(zManFile);
      free(zManFile);
    }
  }

}

void get_checkin_taglist(int rid, Blob *pOut){
  char *zTags;
  Stmt stmt;
  blob_reset(pOut);
  db_prepare(&stmt, "SELECT substr(tagname, 5)"