Fossil SCM

Add the --detail flag to the merge command.

drh 2007-11-08 16:14 trunk
Commit 50ff86afd0ea05c68d5cb7ec67e7d64df1bc92ac
1 file changed +9 -2
+9 -2
--- src/merge.c
+++ src/merge.c
@@ -44,11 +44,13 @@
4444
void merge_cmd(void){
4545
int vid; /* Current version */
4646
int mid; /* Version we are merging against */
4747
int pid; /* The pivot version - most recent common ancestor */
4848
Stmt q;
49
+ int detailFlag;
4950
51
+ detailFlag = find_option("detail",0,0)!=0;
5052
if( g.argc!=3 ){
5153
usage("VERSION");
5254
}
5355
db_must_be_within_tree();
5456
vid = db_lget_int("checkout", 0);
@@ -215,23 +217,28 @@
215217
216218
/*
217219
** Do a three-way merge on files that have changes pid->mid and pid->vid
218220
*/
219221
db_prepare(&q,
220
- "SELECT ridm, idv, ridp FROM fv"
222
+ "SELECT ridm, idv, ridp, ridv FROM fv"
221223
" WHERE idp>0 AND idv>0 AND idm>0"
222224
" AND ridm!=ridp AND (ridv!=ridp OR chnged)"
223225
);
224226
while( db_step(&q)==SQLITE_ROW ){
225227
int ridm = db_column_int(&q, 0);
226228
int idv = db_column_int(&q, 1);
227229
int ridp = db_column_int(&q, 2);
230
+ int ridv = db_column_int(&q, 3);
228231
char *zName = db_text(0, "SELECT pathname FROM vfile WHERE id=%d", idv);
229232
char *zFullPath;
230233
Blob m, p, v, r;
231234
/* 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
+ }
233240
undo_save(zName);
234241
zFullPath = mprintf("%s/%s", g.zLocalRoot, zName);
235242
free(zName);
236243
content_get(ridp, &p);
237244
content_get(ridm, &m);
238245
--- 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

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button