@@ -387,7 +387,70 @@
387 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return 0;
388 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
389 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
rid = db_int(0, "SELECT rid FROM blob WHERE uuid=%B", &name);
390 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&name);
391 391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return rid;
393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Similar to name_to_typed_rid(zName, "ci"),
398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** but it accepts more variants for the name. The additional variants are:
399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** checkout The current checkout
401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** parent The parent of the current checkout
402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** pivot:id1:id2 The pivot between id1 and id2
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** It should allow easier naming of checkins, both in 'diff' and 'update'
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** commands for example.
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int extended_ci_name_to_rid(const char *zName){
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rid;
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = db_lget_int("checkout", 0);
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zName, "checkout")==0 ){
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = db_lget_int("checkout", 0);
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( fossil_strcmp(zName, "parent")==0 ){
416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int cid;
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cid = db_lget_int("checkout", 0);
418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (cid == 0)
419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("cannot find current checkout version");
420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = db_int(0, "SELECT pid FROM plink WHERE cid=%d", cid);
421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (rid == 0)
422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("cannot find the parent of the current checkout version");
423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( strlen(zName) > 6 && memcmp(zName, "pivot:", 6)==0 ){
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* This conflicts with 'tag:', but I don't know a better char than : */
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zPair = zName + 6;
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zIdName;
428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int rid1, rid2;
429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zPair2 = strdup(zPair); /* Just for constness and strtok */
430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zIdName = strtok(zPair2,":");
432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (!zIdName)
434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("Cannot parse pivot#checkin1#checkin2");
435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid1 = name_to_typed_rid(zIdName, "ci");
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (rid1 == 0)
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("Cannot find the check-in %s", zIdName);
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zIdName = strtok(NULL,":");
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid2 = name_to_typed_rid(zIdName, "ci");
441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pivot_set_primary(rid1);
443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pivot_set_secondary(rid2);
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = pivot_find();
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (rid == 0)
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_fatal("Cannot find the pivot of %s", zName);
448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ free(zPair2);
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else{
452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ rid = name_to_typed_rid(zName, "ci");
453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
392 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return rid;
393 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
394 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!