Fossil SCM
Correct some as-yet-unused semantics in symbolic_name_to_rid() which were inadvertently broken in [1ef6499a9a], which was reverting some new breakage from [4d8c30265b3dc76d]. Problem seen only by accident when comparison impls between fossil and libfossil. The value of the feature being repaired is, in hindsight, questionable.
Commit
15df204706e2713f46010e68bc23798fc342d958cdaeebf8adeebbc79833b7d9
Parent
bd7f5c0b3780286…
1 file changed
+5
+5
| --- src/name.c | ||
| +++ src/name.c | ||
| @@ -453,10 +453,12 @@ | ||
| 453 | 453 | }else if( fossil_strcmp(zTag, "next")==0 ){ |
| 454 | 454 | rid = db_int(0, "SELECT cid FROM plink WHERE pid=%d" |
| 455 | 455 | " ORDER BY isprim DESC, mtime DESC", ridCkout); |
| 456 | 456 | }else if( isCheckin>1 && fossil_strcmp(zTag, "ckout")==0 ){ |
| 457 | 457 | rid = RID_CKOUT; |
| 458 | + assert(ridCkout>0); | |
| 459 | + g.localOpen = ridCkout; | |
| 458 | 460 | } |
| 459 | 461 | if( rid ) return rid; |
| 460 | 462 | } |
| 461 | 463 | |
| 462 | 464 | /* Date and times */ |
| @@ -699,10 +701,13 @@ | ||
| 699 | 701 | }else if( rid==0 ){ |
| 700 | 702 | fossil_error(iErrPriority, "cannot resolve name: %s", zName); |
| 701 | 703 | return 1; |
| 702 | 704 | }else{ |
| 703 | 705 | blob_reset(pName); |
| 706 | + if( RID_CKOUT==rid ) { | |
| 707 | + rid = g.localOpen; | |
| 708 | + } | |
| 704 | 709 | db_blob(pName, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 705 | 710 | return 0; |
| 706 | 711 | } |
| 707 | 712 | } |
| 708 | 713 | |
| 709 | 714 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -453,10 +453,12 @@ | |
| 453 | }else if( fossil_strcmp(zTag, "next")==0 ){ |
| 454 | rid = db_int(0, "SELECT cid FROM plink WHERE pid=%d" |
| 455 | " ORDER BY isprim DESC, mtime DESC", ridCkout); |
| 456 | }else if( isCheckin>1 && fossil_strcmp(zTag, "ckout")==0 ){ |
| 457 | rid = RID_CKOUT; |
| 458 | } |
| 459 | if( rid ) return rid; |
| 460 | } |
| 461 | |
| 462 | /* Date and times */ |
| @@ -699,10 +701,13 @@ | |
| 699 | }else if( rid==0 ){ |
| 700 | fossil_error(iErrPriority, "cannot resolve name: %s", zName); |
| 701 | return 1; |
| 702 | }else{ |
| 703 | blob_reset(pName); |
| 704 | db_blob(pName, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 705 | return 0; |
| 706 | } |
| 707 | } |
| 708 | |
| 709 |
| --- src/name.c | |
| +++ src/name.c | |
| @@ -453,10 +453,12 @@ | |
| 453 | }else if( fossil_strcmp(zTag, "next")==0 ){ |
| 454 | rid = db_int(0, "SELECT cid FROM plink WHERE pid=%d" |
| 455 | " ORDER BY isprim DESC, mtime DESC", ridCkout); |
| 456 | }else if( isCheckin>1 && fossil_strcmp(zTag, "ckout")==0 ){ |
| 457 | rid = RID_CKOUT; |
| 458 | assert(ridCkout>0); |
| 459 | g.localOpen = ridCkout; |
| 460 | } |
| 461 | if( rid ) return rid; |
| 462 | } |
| 463 | |
| 464 | /* Date and times */ |
| @@ -699,10 +701,13 @@ | |
| 701 | }else if( rid==0 ){ |
| 702 | fossil_error(iErrPriority, "cannot resolve name: %s", zName); |
| 703 | return 1; |
| 704 | }else{ |
| 705 | blob_reset(pName); |
| 706 | if( RID_CKOUT==rid ) { |
| 707 | rid = g.localOpen; |
| 708 | } |
| 709 | db_blob(pName, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 710 | return 0; |
| 711 | } |
| 712 | } |
| 713 | |
| 714 |