@@ -312,10 +312,42 @@
312 312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
diff_file_mem(&v1, &v2, zName, zDiffCmd, ignoreEolWs);
313 313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&v1);
314 314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&v2);
315 315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&fname);
316 316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Show the difference between two files identified by ManifestFile
320 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** entries.
321 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
322 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void diff_manifest_entry(
323 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct ManifestFile *pFrom,
324 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ struct ManifestFile *pTo,
325 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zDiffCmd,
326 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int ignoreEolWs
327 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ){
328 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob f1, f2;
329 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rid;
330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zName = pFrom ? pFrom->zName : pTo->zName;
331 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ printf("Index: %s\n======================================="
332 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "============================\n", zName);
333 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pFrom ){
334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = uuid_to_rid(pFrom->zUuid, 0);
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ content_get(rid, &f1);
336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_zero(&f1);
338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( pTo ){
340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = uuid_to_rid(pTo->zUuid, 0);
341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ content_get(rid, &f2);
342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_zero(&f2);
344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ diff_file_mem(&f1, &f2, zName, zDiffCmd, ignoreEolWs);
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&f1);
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&f2);
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
317 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
318 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
319 351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Output the differences between two check-ins.
320 352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
321 353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void diff_all_two_versions(
@@ -325,16 +357,16 @@
325 357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int diffFlags
326 358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
){
327 359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Manifest mFrom, mTo;
328 360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iFrom, iTo;
329 361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int ignoreEolWs = (diffFlags & DIFF_NOEOLWS)!=0 ? 1 : 0;
330 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* int asNewFlag = (diffFlags & DIFF_NEWFILE)!=0 ? 1 : 0; */
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int asNewFlag = (diffFlags & DIFF_NEWFILE)!=0 ? 1 : 0;
331 363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
332 364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_from_name(zFrom, &mFrom);
333 365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_from_name(zTo, &mTo);
334 366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iFrom = iTo = 0;
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( iFrom<mFrom.nFile && iTo<mTo.nFile ){
367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( iFrom<mFrom.nFile || iTo<mTo.nFile ){
336 368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int cmp;
337 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iFrom>=mFrom.nFile ){
338 370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cmp = +1;
339 371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( iTo>=mTo.nFile ){
340 372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cmp = -1;
@@ -341,33 +373,28 @@
341 373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
342 374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cmp = strcmp(mFrom.aFile[iFrom].zName, mTo.aFile[iTo].zName);
343 375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
344 376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( cmp<0 ){
345 377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
printf("DELETED %s\n", mFrom.aFile[iFrom].zName);
378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( asNewFlag ){
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ diff_manifest_entry(&mFrom.aFile[iFrom], 0, zDiffCmd, ignoreEolWs);
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
346 381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iFrom++;
347 382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( cmp>0 ){
348 383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
printf("ADDED %s\n", mTo.aFile[iTo].zName);
384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( asNewFlag ){
385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ diff_manifest_entry(0, &mTo.aFile[iTo], zDiffCmd, ignoreEolWs);
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
349 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iTo++;
350 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( strcmp(mFrom.aFile[iFrom].zUuid, mTo.aFile[iTo].zUuid)==0 ){
351 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* No changes */
352 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iFrom++;
353 391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iTo++;
354 392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob f1, f2;
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int rid;
357 393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
printf("CHANGED %s\n", mFrom.aFile[iFrom].zName);
358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- printf("Index: %s\n======================================="
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "============================\n",
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- mFrom.aFile[iFrom].zName
361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- );
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rid = uuid_to_rid(mFrom.aFile[iFrom].zUuid, 0);
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- content_get(rid, &f1);
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- rid = uuid_to_rid(mTo.aFile[iTo].zUuid, 0);
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- content_get(rid, &f2);
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- diff_file_mem(&f1, &f2, mFrom.aFile[iFrom].zName, zDiffCmd, ignoreEolWs);
367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&f1);
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&f2);
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ diff_manifest_entry(&mFrom.aFile[iFrom], &mTo.aFile[iTo],
395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDiffCmd, ignoreEolWs);
369 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iFrom++;
370 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iTo++;
371 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
372 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
373 400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
manifest_clear(&mFrom);
374 401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!