Fossil SCM

More changes for distinguishing between new files and files added by merge.

drh 2015-05-05 16:07 UTC show-add-by-merge
Commit 243c77e6e91078a30af2d0d21499cc12dfb8cc5b
+1 -1
--- src/finfo.c
+++ src/finfo.c
@@ -509,11 +509,11 @@
509509
@ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
510510
@ [annotate]</a>
511511
@ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
512512
@ [blame]</a>
513513
@ %z(href("%R/timeline?n=200&uf=%!S",zUuid))[check-ins&nbsp;using]</a>
514
- if( fpid ){
514
+ if( fpid>0 ){
515515
@ %z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
516516
}
517517
}
518518
if( fDebug & FINFO_DEBUG_MLINK ){
519519
int ii;
520520
--- src/finfo.c
+++ src/finfo.c
@@ -509,11 +509,11 @@
509 @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
510 @ [annotate]</a>
511 @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
512 @ [blame]</a>
513 @ %z(href("%R/timeline?n=200&uf=%!S",zUuid))[check-ins&nbsp;using]</a>
514 if( fpid ){
515 @ %z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
516 }
517 }
518 if( fDebug & FINFO_DEBUG_MLINK ){
519 int ii;
520
--- src/finfo.c
+++ src/finfo.c
@@ -509,11 +509,11 @@
509 @ %z(href("%R/annotate?filename=%h&checkin=%s",z,zCkin))
510 @ [annotate]</a>
511 @ %z(href("%R/blame?filename=%h&checkin=%s",z,zCkin))
512 @ [blame]</a>
513 @ %z(href("%R/timeline?n=200&uf=%!S",zUuid))[check-ins&nbsp;using]</a>
514 if( fpid>0 ){
515 @ %z(href("%R/fdiff?sbs=1&v1=%!S&v2=%!S",zPUuid,zUuid))[diff]</a>
516 }
517 }
518 if( fDebug & FINFO_DEBUG_MLINK ){
519 int ii;
520
--- src/manifest.c
+++ src/manifest.c
@@ -1344,10 +1344,11 @@
13441344
** A single mlink entry is added for every file that changed content,
13451345
** name, and/or permissions going from pid to cid.
13461346
**
13471347
** Deleted files have mlink.fid=0.
13481348
** Added files have mlink.pid=0.
1349
+** File added by merge have mlink.pid=-1
13491350
** Edited files have both mlink.pid!=0 and mlink.fid!=0
13501351
*/
13511352
static void add_mlink(
13521353
int pmid, Manifest *pParent, /* Parent check-in */
13531354
int mid, Manifest *pChild, /* The child check-in */
13541355
--- src/manifest.c
+++ src/manifest.c
@@ -1344,10 +1344,11 @@
1344 ** A single mlink entry is added for every file that changed content,
1345 ** name, and/or permissions going from pid to cid.
1346 **
1347 ** Deleted files have mlink.fid=0.
1348 ** Added files have mlink.pid=0.
 
1349 ** Edited files have both mlink.pid!=0 and mlink.fid!=0
1350 */
1351 static void add_mlink(
1352 int pmid, Manifest *pParent, /* Parent check-in */
1353 int mid, Manifest *pChild, /* The child check-in */
1354
--- src/manifest.c
+++ src/manifest.c
@@ -1344,10 +1344,11 @@
1344 ** A single mlink entry is added for every file that changed content,
1345 ** name, and/or permissions going from pid to cid.
1346 **
1347 ** Deleted files have mlink.fid=0.
1348 ** Added files have mlink.pid=0.
1349 ** File added by merge have mlink.pid=-1
1350 ** Edited files have both mlink.pid!=0 and mlink.fid!=0
1351 */
1352 static void add_mlink(
1353 int pmid, Manifest *pParent, /* Parent check-in */
1354 int mid, Manifest *pChild, /* The child check-in */
1355
+11 -5
--- src/timeline.c
+++ src/timeline.c
@@ -499,11 +499,11 @@
499499
&& zType[0]=='c' && g.perm.Hyperlink
500500
){
501501
int inUl = 0;
502502
if( !fchngQueryInit ){
503503
db_prepare(&fchngQuery,
504
- "SELECT (pid==0) AS isnew,"
504
+ "SELECT pid,"
505505
" fid,"
506506
" (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
507507
" (SELECT uuid FROM blob WHERE rid=fid),"
508508
" (SELECT uuid FROM blob WHERE rid=pid),"
509509
" (SELECT name FROM filename WHERE fnid=mlink.pfnid) AS oldnm"
@@ -517,11 +517,12 @@
517517
fchngQueryInit = 1;
518518
}
519519
db_bind_int(&fchngQuery, ":mid", rid);
520520
while( db_step(&fchngQuery)==SQLITE_ROW ){
521521
const char *zFilename = db_column_text(&fchngQuery, 2);
522
- int isNew = db_column_int(&fchngQuery, 0);
522
+ int isNew = db_column_int(&fchngQuery, 0)<=0;
523
+ int isMergeNew = db_column_int(&fchngQuery, 0)<0;
523524
int fid = db_column_int(&fchngQuery, 1);
524525
int isDel = fid==0;
525526
const char *zOldName = db_column_text(&fchngQuery, 5);
526527
const char *zOld = db_column_text(&fchngQuery, 4);
527528
const char *zNew = db_column_text(&fchngQuery, 3);
@@ -546,12 +547,17 @@
546547
zA = href("%R/artifact/%!S",fid?zNew:zOld);
547548
if( content_is_private(fid) ){
548549
zUnpub = UNPUB_TAG;
549550
}
550551
if( isNew ){
551
- @ <li> %s(zA)%h(zFilename)</a>%s(zId) %s(zUnpub) (new file) &nbsp;
552
- @ %z(href("%R/artifact/%!S",zNew))[view]</a></li>
552
+ @ <li> %s(zA)%h(zFilename)</a>%s(zId) %s(zUnpub)
553
+ if( isMergeNew ){
554
+ @ (added by merge)
555
+ }else{
556
+ @ (new file)
557
+ }
558
+ @ &nbsp; %z(href("%R/artifact/%!S",zNew))[view]</a></li>
553559
}else if( isDel ){
554560
@ <li> %s(zA)%h(zFilename)</a> (deleted)</li>
555561
}else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){
556562
@ <li> %h(zOldName) &rarr; %s(zA)%h(zFilename)</a>%s(zId)
557563
@ %s(zUnpub) %z(href("%R/artifact/%!S",zNew))[view]</a></li>
@@ -1873,11 +1879,11 @@
18731879
fossil_free(zFree);
18741880
18751881
if(verboseFlag){
18761882
if( !fchngQueryInit ){
18771883
db_prepare(&fchngQuery,
1878
- "SELECT (pid==0) AS isnew,"
1884
+ "SELECT (pid<=0) AS isnew,"
18791885
" (fid==0) AS isdel,"
18801886
" (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
18811887
" (SELECT uuid FROM blob WHERE rid=fid),"
18821888
" (SELECT uuid FROM blob WHERE rid=pid)"
18831889
" FROM mlink"
18841890
--- src/timeline.c
+++ src/timeline.c
@@ -499,11 +499,11 @@
499 && zType[0]=='c' && g.perm.Hyperlink
500 ){
501 int inUl = 0;
502 if( !fchngQueryInit ){
503 db_prepare(&fchngQuery,
504 "SELECT (pid==0) AS isnew,"
505 " fid,"
506 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
507 " (SELECT uuid FROM blob WHERE rid=fid),"
508 " (SELECT uuid FROM blob WHERE rid=pid),"
509 " (SELECT name FROM filename WHERE fnid=mlink.pfnid) AS oldnm"
@@ -517,11 +517,12 @@
517 fchngQueryInit = 1;
518 }
519 db_bind_int(&fchngQuery, ":mid", rid);
520 while( db_step(&fchngQuery)==SQLITE_ROW ){
521 const char *zFilename = db_column_text(&fchngQuery, 2);
522 int isNew = db_column_int(&fchngQuery, 0);
 
523 int fid = db_column_int(&fchngQuery, 1);
524 int isDel = fid==0;
525 const char *zOldName = db_column_text(&fchngQuery, 5);
526 const char *zOld = db_column_text(&fchngQuery, 4);
527 const char *zNew = db_column_text(&fchngQuery, 3);
@@ -546,12 +547,17 @@
546 zA = href("%R/artifact/%!S",fid?zNew:zOld);
547 if( content_is_private(fid) ){
548 zUnpub = UNPUB_TAG;
549 }
550 if( isNew ){
551 @ <li> %s(zA)%h(zFilename)</a>%s(zId) %s(zUnpub) (new file) &nbsp;
552 @ %z(href("%R/artifact/%!S",zNew))[view]</a></li>
 
 
 
 
 
553 }else if( isDel ){
554 @ <li> %s(zA)%h(zFilename)</a> (deleted)</li>
555 }else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){
556 @ <li> %h(zOldName) &rarr; %s(zA)%h(zFilename)</a>%s(zId)
557 @ %s(zUnpub) %z(href("%R/artifact/%!S",zNew))[view]</a></li>
@@ -1873,11 +1879,11 @@
1873 fossil_free(zFree);
1874
1875 if(verboseFlag){
1876 if( !fchngQueryInit ){
1877 db_prepare(&fchngQuery,
1878 "SELECT (pid==0) AS isnew,"
1879 " (fid==0) AS isdel,"
1880 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
1881 " (SELECT uuid FROM blob WHERE rid=fid),"
1882 " (SELECT uuid FROM blob WHERE rid=pid)"
1883 " FROM mlink"
1884
--- src/timeline.c
+++ src/timeline.c
@@ -499,11 +499,11 @@
499 && zType[0]=='c' && g.perm.Hyperlink
500 ){
501 int inUl = 0;
502 if( !fchngQueryInit ){
503 db_prepare(&fchngQuery,
504 "SELECT pid,"
505 " fid,"
506 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
507 " (SELECT uuid FROM blob WHERE rid=fid),"
508 " (SELECT uuid FROM blob WHERE rid=pid),"
509 " (SELECT name FROM filename WHERE fnid=mlink.pfnid) AS oldnm"
@@ -517,11 +517,12 @@
517 fchngQueryInit = 1;
518 }
519 db_bind_int(&fchngQuery, ":mid", rid);
520 while( db_step(&fchngQuery)==SQLITE_ROW ){
521 const char *zFilename = db_column_text(&fchngQuery, 2);
522 int isNew = db_column_int(&fchngQuery, 0)<=0;
523 int isMergeNew = db_column_int(&fchngQuery, 0)<0;
524 int fid = db_column_int(&fchngQuery, 1);
525 int isDel = fid==0;
526 const char *zOldName = db_column_text(&fchngQuery, 5);
527 const char *zOld = db_column_text(&fchngQuery, 4);
528 const char *zNew = db_column_text(&fchngQuery, 3);
@@ -546,12 +547,17 @@
547 zA = href("%R/artifact/%!S",fid?zNew:zOld);
548 if( content_is_private(fid) ){
549 zUnpub = UNPUB_TAG;
550 }
551 if( isNew ){
552 @ <li> %s(zA)%h(zFilename)</a>%s(zId) %s(zUnpub)
553 if( isMergeNew ){
554 @ (added by merge)
555 }else{
556 @ (new file)
557 }
558 @ &nbsp; %z(href("%R/artifact/%!S",zNew))[view]</a></li>
559 }else if( isDel ){
560 @ <li> %s(zA)%h(zFilename)</a> (deleted)</li>
561 }else if( fossil_strcmp(zOld,zNew)==0 && zOldName!=0 ){
562 @ <li> %h(zOldName) &rarr; %s(zA)%h(zFilename)</a>%s(zId)
563 @ %s(zUnpub) %z(href("%R/artifact/%!S",zNew))[view]</a></li>
@@ -1873,11 +1879,11 @@
1879 fossil_free(zFree);
1880
1881 if(verboseFlag){
1882 if( !fchngQueryInit ){
1883 db_prepare(&fchngQuery,
1884 "SELECT (pid<=0) AS isnew,"
1885 " (fid==0) AS isdel,"
1886 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
1887 " (SELECT uuid FROM blob WHERE rid=fid),"
1888 " (SELECT uuid FROM blob WHERE rid=pid)"
1889 " FROM mlink"
1890

Keyboard Shortcuts

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