Fossil SCM
Add the --detail flag to the merge command.
Commit
50ff86afd0ea05c68d5cb7ec67e7d64df1bc92ac
Parent
ac6bb3ce069523e…
1 file changed
+9
-2
+9
-2
| --- src/merge.c | ||
| +++ src/merge.c | ||
| @@ -44,11 +44,13 @@ | ||
| 44 | 44 | void merge_cmd(void){ |
| 45 | 45 | int vid; /* Current version */ |
| 46 | 46 | int mid; /* Version we are merging against */ |
| 47 | 47 | int pid; /* The pivot version - most recent common ancestor */ |
| 48 | 48 | Stmt q; |
| 49 | + int detailFlag; | |
| 49 | 50 | |
| 51 | + detailFlag = find_option("detail",0,0)!=0; | |
| 50 | 52 | if( g.argc!=3 ){ |
| 51 | 53 | usage("VERSION"); |
| 52 | 54 | } |
| 53 | 55 | db_must_be_within_tree(); |
| 54 | 56 | vid = db_lget_int("checkout", 0); |
| @@ -215,23 +217,28 @@ | ||
| 215 | 217 | |
| 216 | 218 | /* |
| 217 | 219 | ** Do a three-way merge on files that have changes pid->mid and pid->vid |
| 218 | 220 | */ |
| 219 | 221 | db_prepare(&q, |
| 220 | - "SELECT ridm, idv, ridp FROM fv" | |
| 222 | + "SELECT ridm, idv, ridp, ridv FROM fv" | |
| 221 | 223 | " WHERE idp>0 AND idv>0 AND idm>0" |
| 222 | 224 | " AND ridm!=ridp AND (ridv!=ridp OR chnged)" |
| 223 | 225 | ); |
| 224 | 226 | while( db_step(&q)==SQLITE_ROW ){ |
| 225 | 227 | int ridm = db_column_int(&q, 0); |
| 226 | 228 | int idv = db_column_int(&q, 1); |
| 227 | 229 | int ridp = db_column_int(&q, 2); |
| 230 | + int ridv = db_column_int(&q, 3); | |
| 228 | 231 | char *zName = db_text(0, "SELECT pathname FROM vfile WHERE id=%d", idv); |
| 229 | 232 | char *zFullPath; |
| 230 | 233 | Blob m, p, v, r; |
| 231 | 234 | /* Do a 3-way merge of idp->idm into idp->idv. The results go into idv. */ |
| 232 | - printf("MERGE %s\n", zName); | |
| 235 | + if( detailFlag ){ | |
| 236 | + printf("MERGE %s (pivot=%d v1=%d v2=%d)\n", zName, ridp, ridm, ridv); | |
| 237 | + }else{ | |
| 238 | + printf("MERGE %s\n", zName); | |
| 239 | + } | |
| 233 | 240 | undo_save(zName); |
| 234 | 241 | zFullPath = mprintf("%s/%s", g.zLocalRoot, zName); |
| 235 | 242 | free(zName); |
| 236 | 243 | content_get(ridp, &p); |
| 237 | 244 | content_get(ridm, &m); |
| 238 | 245 |
| --- src/merge.c | |
| +++ src/merge.c | |
| @@ -44,11 +44,13 @@ | |
| 44 | void merge_cmd(void){ |
| 45 | int vid; /* Current version */ |
| 46 | int mid; /* Version we are merging against */ |
| 47 | int pid; /* The pivot version - most recent common ancestor */ |
| 48 | Stmt q; |
| 49 | |
| 50 | if( g.argc!=3 ){ |
| 51 | usage("VERSION"); |
| 52 | } |
| 53 | db_must_be_within_tree(); |
| 54 | vid = db_lget_int("checkout", 0); |
| @@ -215,23 +217,28 @@ | |
| 215 | |
| 216 | /* |
| 217 | ** Do a three-way merge on files that have changes pid->mid and pid->vid |
| 218 | */ |
| 219 | db_prepare(&q, |
| 220 | "SELECT ridm, idv, ridp FROM fv" |
| 221 | " WHERE idp>0 AND idv>0 AND idm>0" |
| 222 | " AND ridm!=ridp AND (ridv!=ridp OR chnged)" |
| 223 | ); |
| 224 | while( db_step(&q)==SQLITE_ROW ){ |
| 225 | int ridm = db_column_int(&q, 0); |
| 226 | int idv = db_column_int(&q, 1); |
| 227 | int ridp = db_column_int(&q, 2); |
| 228 | char *zName = db_text(0, "SELECT pathname FROM vfile WHERE id=%d", idv); |
| 229 | char *zFullPath; |
| 230 | Blob m, p, v, r; |
| 231 | /* Do a 3-way merge of idp->idm into idp->idv. The results go into idv. */ |
| 232 | printf("MERGE %s\n", zName); |
| 233 | undo_save(zName); |
| 234 | zFullPath = mprintf("%s/%s", g.zLocalRoot, zName); |
| 235 | free(zName); |
| 236 | content_get(ridp, &p); |
| 237 | content_get(ridm, &m); |
| 238 |
| --- src/merge.c | |
| +++ src/merge.c | |
| @@ -44,11 +44,13 @@ | |
| 44 | void merge_cmd(void){ |
| 45 | int vid; /* Current version */ |
| 46 | int mid; /* Version we are merging against */ |
| 47 | int pid; /* The pivot version - most recent common ancestor */ |
| 48 | Stmt q; |
| 49 | int detailFlag; |
| 50 | |
| 51 | detailFlag = find_option("detail",0,0)!=0; |
| 52 | if( g.argc!=3 ){ |
| 53 | usage("VERSION"); |
| 54 | } |
| 55 | db_must_be_within_tree(); |
| 56 | vid = db_lget_int("checkout", 0); |
| @@ -215,23 +217,28 @@ | |
| 217 | |
| 218 | /* |
| 219 | ** Do a three-way merge on files that have changes pid->mid and pid->vid |
| 220 | */ |
| 221 | db_prepare(&q, |
| 222 | "SELECT ridm, idv, ridp, ridv FROM fv" |
| 223 | " WHERE idp>0 AND idv>0 AND idm>0" |
| 224 | " AND ridm!=ridp AND (ridv!=ridp OR chnged)" |
| 225 | ); |
| 226 | while( db_step(&q)==SQLITE_ROW ){ |
| 227 | int ridm = db_column_int(&q, 0); |
| 228 | int idv = db_column_int(&q, 1); |
| 229 | int ridp = db_column_int(&q, 2); |
| 230 | int ridv = db_column_int(&q, 3); |
| 231 | char *zName = db_text(0, "SELECT pathname FROM vfile WHERE id=%d", idv); |
| 232 | char *zFullPath; |
| 233 | Blob m, p, v, r; |
| 234 | /* Do a 3-way merge of idp->idm into idp->idv. The results go into idv. */ |
| 235 | if( detailFlag ){ |
| 236 | printf("MERGE %s (pivot=%d v1=%d v2=%d)\n", zName, ridp, ridm, ridv); |
| 237 | }else{ |
| 238 | printf("MERGE %s\n", zName); |
| 239 | } |
| 240 | undo_save(zName); |
| 241 | zFullPath = mprintf("%s/%s", g.zLocalRoot, zName); |
| 242 | free(zName); |
| 243 | content_get(ridp, &p); |
| 244 | content_get(ridm, &m); |
| 245 |