Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Do not run the graphical merging tool nor leave merge-droppings after a dry-run merge. Also improve the merge summary message at the end of a merge. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
cd2c0e4cb503b0031ba5e17f0b46abec |
| User & Date: | drh 2012-11-05 21:10:16.817 |
Context
|
2012-11-06
| ||
| 00:49 | Add a configuration option that allows timeline comments to be rendered as plain text rather than as wiki. check-in: 90e928deea user: drh tags: trunk | |
|
2012-11-05
| ||
| 21:10 | Do not run the graphical merging tool nor leave merge-droppings after a dry-run merge. Also improve the merge summary message at the end of a merge. check-in: cd2c0e4cb5 user: drh tags: trunk | |
|
2012-11-04
| ||
| 17:41 | Merge the "spelling" branch into trunk, fixing a huge number of typos, mostly in comments, but occasionally in error messages or help screens. check-in: db0c512767 user: drh tags: trunk | |
Changes
Changes to src/merge.c.
| ︙ | ︙ | |||
455 456 457 458 459 460 461 |
zFullPath = mprintf("%s/%s", g.zLocalRoot, zName);
content_get(ridp, &p);
content_get(ridm, &m);
if( isBinary ){
rc = -1;
blob_zero(&r);
}else{
| > | | 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 |
zFullPath = mprintf("%s/%s", g.zLocalRoot, zName);
content_get(ridp, &p);
content_get(ridm, &m);
if( isBinary ){
rc = -1;
blob_zero(&r);
}else{
unsigned mergeFlags = nochangeFlag ? MERGE_DRYRUN : 0;
rc = merge_3way(&p, zFullPath, &m, &r, mergeFlags);
}
if( rc>=0 ){
if( !nochangeFlag ){
blob_write_to_file(&r, zFullPath);
file_wd_setexe(zFullPath, isExe);
}
db_multi_exec("UPDATE vfile SET mtime=0 WHERE id=%d", idv);
|
| ︙ | ︙ | |||
547 548 549 550 551 552 553 |
}
}
db_finalize(&q);
/* Report on conflicts
*/
| < | | | | | | | > > > | 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 |
}
}
db_finalize(&q);
/* Report on conflicts
*/
if( nConflict ){
fossil_warning("WARNING: %d merge conflicts", nConflict);
}
if( nOverwrite ){
fossil_warning("WARNING: %d unmanaged files were overwritten",
nOverwrite);
}
if( nochangeFlag ){
fossil_warning("REMINDER: this was a dry run -"
" no file were actually changed.");
}
/*
** Clean up the mid and pid VFILE entries. Then commit the changes.
*/
db_multi_exec("DELETE FROM vfile WHERE vid!=%d", vid);
db_multi_exec("INSERT OR IGNORE INTO vmerge(id,merge) VALUES(%d,%d)",
|
| ︙ | ︙ |
Changes to src/merge3.c.
| ︙ | ︙ | |||
404 405 406 407 408 409 410 411 412 413 414 415 416 417 |
blob_append(&x, "%", 1);
zInput++;
}
}
return blob_str(&x);
}
/*
** This routine is a wrapper around blob_merge() with the following
** enhancements:
**
** (1) If the merge-command is defined, then use the external merging
** program specified instead of the built-in blob-merge to do the
| > > > > > > > | 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 |
blob_append(&x, "%", 1);
zInput++;
}
}
return blob_str(&x);
}
#if INTERFACE
/*
** Flags to the 3-way merger
*/
#define MERGE_DRYRUN 0x0001
#endif
/*
** This routine is a wrapper around blob_merge() with the following
** enhancements:
**
** (1) If the merge-command is defined, then use the external merging
** program specified instead of the built-in blob-merge to do the
|
| ︙ | ︙ | |||
426 427 428 429 430 431 432 | ** then write the pivot, original, and merge-in files to the ** filesystem. */ int merge_3way( Blob *pPivot, /* Common ancestor (older) */ const char *zV1, /* Name of file for version merging into (mine) */ Blob *pV2, /* Version merging from (yours) */ | | > | | | 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 |
** then write the pivot, original, and merge-in files to the
** filesystem.
*/
int merge_3way(
Blob *pPivot, /* Common ancestor (older) */
const char *zV1, /* Name of file for version merging into (mine) */
Blob *pV2, /* Version merging from (yours) */
Blob *pOut, /* Output written here */
unsigned mergeFlags /* Flags that control operation */
){
Blob v1; /* Content of zV1 */
int rc; /* Return code of subroutines and this routine */
char *zPivot; /* Name of the pivot file */
char *zOrig; /* Name of the original content file */
char *zOther; /* Name of the merge file */
blob_read_from_file(&v1, zV1);
rc = blob_merge(pPivot, &v1, pV2, pOut);
if( rc!=0 && (mergeFlags & MERGE_DRYRUN)==0 ){
zPivot = file_newname(zV1, "baseline", 1);
blob_write_to_file(pPivot, zPivot);
zOrig = file_newname(zV1, "original", 1);
blob_write_to_file(&v1, zOrig);
zOther = file_newname(zV1, "merge", 1);
blob_write_to_file(pV2, zOther);
}
if( rc>0 && (mergeFlags & MERGE_DRYRUN)==0 ){
const char *zGMerge; /* Name of the gmerge command */
zGMerge = db_get("gmerge-command", 0);
if( zGMerge && zGMerge[0] ){
char *zOut; /* Temporary output file */
char *zCmd; /* Command to invoke */
const char *azSubst[8]; /* Strings to be substituted */
|
| ︙ | ︙ | |||
472 473 474 475 476 477 478 |
file_delete(zOther);
file_delete(zOut);
}
fossil_free(zCmd);
fossil_free(zOut);
}
}
| | | 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 |
file_delete(zOther);
file_delete(zOut);
}
fossil_free(zCmd);
fossil_free(zOut);
}
}
if( rc!=0 && (mergeFlags & MERGE_DRYRUN)==0 ){
fossil_free(zPivot);
fossil_free(zOrig);
fossil_free(zOther);
}
blob_reset(&v1);
return rc;
}
|
Changes to src/stash.c.
| ︙ | ︙ | |||
251 252 253 254 255 256 257 |
}else{
int rc;
if( isLink || isNewLink ){
rc = -1;
blob_zero(&b); /* because we reset it later */
fossil_print("***** Cannot merge symlink %s\n", zNew);
}else{
| | | 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 |
}else{
int rc;
if( isLink || isNewLink ){
rc = -1;
blob_zero(&b); /* because we reset it later */
fossil_print("***** Cannot merge symlink %s\n", zNew);
}else{
rc = merge_3way(&a, zOPath, &b, &out, 0);
blob_write_to_file(&out, zNPath);
blob_reset(&out);
file_wd_setexe(zNPath, isExec);
}
if( rc ){
fossil_print("CONFLICT %s\n", zNew);
nConflict++;
|
| ︙ | ︙ |
Changes to src/undo.c.
| ︙ | ︙ | |||
320 321 322 323 324 325 326 |
/*
** Complete the undo process is one is currently in process.
*/
void undo_finish(void){
if( undoActive ){
if( undoNeedRollback ){
| | | 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 |
/*
** Complete the undo process is one is currently in process.
*/
void undo_finish(void){
if( undoActive ){
if( undoNeedRollback ){
fossil_print(" \"fossil undo\" is available to undo changes"
" to the working checkout.\n");
}
undoActive = 0;
undoNeedRollback = 0;
}
}
|
| ︙ | ︙ |
Changes to src/update.c.
| ︙ | ︙ | |||
421 422 423 424 425 426 427 428 429 430 |
}else{
fossil_print("MERGE %s\n", zName);
}
if( islinkv || islinkt /* || file_wd_islink(zFullPath) */ ){
fossil_print("***** Cannot merge symlink %s\n", zNewName);
nConflict++;
}else{
undo_save(zName);
content_get(ridt, &t);
content_get(ridv, &v);
| > | | 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 |
}else{
fossil_print("MERGE %s\n", zName);
}
if( islinkv || islinkt /* || file_wd_islink(zFullPath) */ ){
fossil_print("***** Cannot merge symlink %s\n", zNewName);
nConflict++;
}else{
unsigned mergeFlags = nochangeFlag ? MERGE_DRYRUN : 0;
undo_save(zName);
content_get(ridt, &t);
content_get(ridv, &v);
rc = merge_3way(&v, zFullPath, &t, &r, mergeFlags);
if( rc>=0 ){
if( !nochangeFlag ){
blob_write_to_file(&r, zFullNewPath);
file_wd_setexe(zFullNewPath, isexe);
}
if( rc>0 ){
fossil_print("***** %d merge conflicts in %s\n", rc, zNewName);
|
| ︙ | ︙ |