Ticket UUID: | 1457156b277688cf495142a8211a0c93eeda558c | ||
Title: | "fossil gdiff" uses internal diff under some conditions | ||
Status: | Open | Type: | Feature_Request |
Severity: | Minor | Priority: | |
Subsystem: | Resolution: | Open | |
Last Modified: | 2010-01-15 09:30:28 | ||
Version Found In: | cd93f5965b5df0eb726f8a9ea3d86e106bc8540c | ||
Description & Comments: | |||
Do for example: "fossil set gdiff bcompare" (to use Beyond Compare). Modify some file, so that "fossil diff" works.
Now, if you type "fossil gdiff whatever-file", then fossil will launch the set gdiff program. But if you only type "fossil gdiff", without any file name, it will only do the internal diff. drh added on 2010-01-10 12:51:02: fossil gdiff And multiple files have changed, how is that suppose to work? Do you only show changes in one file? Does fossil try to concatenate all the changed files into one big file and diff those? Do you launch multiple instances of the gui differ? anonymous added on 2010-01-10 13:03:43: altufaltu added on 2010-01-11 04:49:59: anonymous claiming to be ron added on 2010-01-11 20:11:14: altufaltu added on 2010-01-15 09:30:28: --- src/diffcmd.c +++ src/diffcmd.c @@ -267,13 +267,14 @@ printf("ADDED_BY_MERGE %s\n", zPathname); }else{ int srcid = db_column_int(&q, 4); Blob content; content_get(srcid, &content); - printf("Index: %s\n=======================================" - "============================\n", - zPathname + if (!zDiffCmd) + printf("Index: %s\n=======================================" + "============================\n", + zPathname ); diff_file(&content, zFullName, zPathname, zDiffCmd); blob_reset(&content); } free(zFullName); @@ -353,11 +354,11 @@ zTo = find_option("to", 0, 1); if( zTo==0 ){ db_must_be_within_tree(); verify_all_options(); - if( !isInternDiff && g.argc==3 ){ + if( !isInternDiff ){ zDiffCmd = db_get(isGDiff ? "gdiff-command" : "diff-command", 0); } if( g.argc==3 ){ diff_one_against_disk(zFrom, zDiffCmd); }else{ |