Fossil SCM
Now that checkout_cmd() can handle the situation that vid==0 ([b725c1cf26]), no longer assume that the initial commit has rid=1: If the initial commit is not empty that will not be true any more.
Commit
6791ad1185f374dc2dd7c028282cd9c69e18abe0
Parent
1928cf526ef478b…
1 file changed
+19
-23
M
src/db.c
+19
-23
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -2003,10 +2003,12 @@ | ||
| 2003 | 2003 | */ |
| 2004 | 2004 | void cmd_open(void){ |
| 2005 | 2005 | int vid; |
| 2006 | 2006 | int keepFlag; |
| 2007 | 2007 | int allowNested; |
| 2008 | + char **oldArgv; | |
| 2009 | + int oldArgc; | |
| 2008 | 2010 | static char *azNewArgv[] = { 0, "checkout", "--prompt", 0, 0, 0 }; |
| 2009 | 2011 | |
| 2010 | 2012 | url_proxy_options(); |
| 2011 | 2013 | keepFlag = find_option("keep",0,0)!=0; |
| 2012 | 2014 | allowNested = find_option("nested",0,0)!=0; |
| @@ -2029,33 +2031,27 @@ | ||
| 2029 | 2031 | (char*)0); |
| 2030 | 2032 | db_delete_on_failure(LOCALDB_NAME); |
| 2031 | 2033 | db_open_local(0); |
| 2032 | 2034 | db_lset("repository", g.argv[2]); |
| 2033 | 2035 | db_record_repository_filename(g.argv[2]); |
| 2034 | - vid = db_int(0, "SELECT pid FROM plink y" | |
| 2035 | - " WHERE NOT EXISTS(SELECT 1 FROM plink x WHERE x.cid=y.pid)"); | |
| 2036 | - if( vid==0 ){ | |
| 2037 | - db_lset_int("checkout", 1); | |
| 2038 | - }else{ | |
| 2039 | - char **oldArgv = g.argv; | |
| 2040 | - int oldArgc = g.argc; | |
| 2041 | - db_lset_int("checkout", vid); | |
| 2042 | - azNewArgv[0] = g.argv[0]; | |
| 2043 | - g.argv = azNewArgv; | |
| 2044 | - g.argc = 3; | |
| 2045 | - if( oldArgc==4 ){ | |
| 2046 | - azNewArgv[g.argc-1] = oldArgv[3]; | |
| 2047 | - }else{ | |
| 2048 | - azNewArgv[g.argc-1] = db_get("main-branch", "trunk"); | |
| 2049 | - } | |
| 2050 | - if( keepFlag ){ | |
| 2051 | - azNewArgv[g.argc++] = "--keep"; | |
| 2052 | - } | |
| 2053 | - checkout_cmd(); | |
| 2054 | - g.argc = 2; | |
| 2055 | - info_cmd(); | |
| 2056 | - } | |
| 2036 | + db_lset_int("checkout", 0); | |
| 2037 | + oldArgv = g.argv; | |
| 2038 | + oldArgc = g.argc; | |
| 2039 | + azNewArgv[0] = g.argv[0]; | |
| 2040 | + g.argv = azNewArgv; | |
| 2041 | + g.argc = 3; | |
| 2042 | + if( oldArgc==4 ){ | |
| 2043 | + azNewArgv[g.argc-1] = oldArgv[3]; | |
| 2044 | + }else{ | |
| 2045 | + azNewArgv[g.argc-1] = db_get("main-branch", "trunk"); | |
| 2046 | + } | |
| 2047 | + if( keepFlag ){ | |
| 2048 | + azNewArgv[g.argc++] = "--keep"; | |
| 2049 | + } | |
| 2050 | + checkout_cmd(); | |
| 2051 | + g.argc = 2; | |
| 2052 | + info_cmd(); | |
| 2057 | 2053 | } |
| 2058 | 2054 | |
| 2059 | 2055 | /* |
| 2060 | 2056 | ** Print the value of a setting named zName |
| 2061 | 2057 | */ |
| 2062 | 2058 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -2003,10 +2003,12 @@ | |
| 2003 | */ |
| 2004 | void cmd_open(void){ |
| 2005 | int vid; |
| 2006 | int keepFlag; |
| 2007 | int allowNested; |
| 2008 | static char *azNewArgv[] = { 0, "checkout", "--prompt", 0, 0, 0 }; |
| 2009 | |
| 2010 | url_proxy_options(); |
| 2011 | keepFlag = find_option("keep",0,0)!=0; |
| 2012 | allowNested = find_option("nested",0,0)!=0; |
| @@ -2029,33 +2031,27 @@ | |
| 2029 | (char*)0); |
| 2030 | db_delete_on_failure(LOCALDB_NAME); |
| 2031 | db_open_local(0); |
| 2032 | db_lset("repository", g.argv[2]); |
| 2033 | db_record_repository_filename(g.argv[2]); |
| 2034 | vid = db_int(0, "SELECT pid FROM plink y" |
| 2035 | " WHERE NOT EXISTS(SELECT 1 FROM plink x WHERE x.cid=y.pid)"); |
| 2036 | if( vid==0 ){ |
| 2037 | db_lset_int("checkout", 1); |
| 2038 | }else{ |
| 2039 | char **oldArgv = g.argv; |
| 2040 | int oldArgc = g.argc; |
| 2041 | db_lset_int("checkout", vid); |
| 2042 | azNewArgv[0] = g.argv[0]; |
| 2043 | g.argv = azNewArgv; |
| 2044 | g.argc = 3; |
| 2045 | if( oldArgc==4 ){ |
| 2046 | azNewArgv[g.argc-1] = oldArgv[3]; |
| 2047 | }else{ |
| 2048 | azNewArgv[g.argc-1] = db_get("main-branch", "trunk"); |
| 2049 | } |
| 2050 | if( keepFlag ){ |
| 2051 | azNewArgv[g.argc++] = "--keep"; |
| 2052 | } |
| 2053 | checkout_cmd(); |
| 2054 | g.argc = 2; |
| 2055 | info_cmd(); |
| 2056 | } |
| 2057 | } |
| 2058 | |
| 2059 | /* |
| 2060 | ** Print the value of a setting named zName |
| 2061 | */ |
| 2062 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -2003,10 +2003,12 @@ | |
| 2003 | */ |
| 2004 | void cmd_open(void){ |
| 2005 | int vid; |
| 2006 | int keepFlag; |
| 2007 | int allowNested; |
| 2008 | char **oldArgv; |
| 2009 | int oldArgc; |
| 2010 | static char *azNewArgv[] = { 0, "checkout", "--prompt", 0, 0, 0 }; |
| 2011 | |
| 2012 | url_proxy_options(); |
| 2013 | keepFlag = find_option("keep",0,0)!=0; |
| 2014 | allowNested = find_option("nested",0,0)!=0; |
| @@ -2029,33 +2031,27 @@ | |
| 2031 | (char*)0); |
| 2032 | db_delete_on_failure(LOCALDB_NAME); |
| 2033 | db_open_local(0); |
| 2034 | db_lset("repository", g.argv[2]); |
| 2035 | db_record_repository_filename(g.argv[2]); |
| 2036 | db_lset_int("checkout", 0); |
| 2037 | oldArgv = g.argv; |
| 2038 | oldArgc = g.argc; |
| 2039 | azNewArgv[0] = g.argv[0]; |
| 2040 | g.argv = azNewArgv; |
| 2041 | g.argc = 3; |
| 2042 | if( oldArgc==4 ){ |
| 2043 | azNewArgv[g.argc-1] = oldArgv[3]; |
| 2044 | }else{ |
| 2045 | azNewArgv[g.argc-1] = db_get("main-branch", "trunk"); |
| 2046 | } |
| 2047 | if( keepFlag ){ |
| 2048 | azNewArgv[g.argc++] = "--keep"; |
| 2049 | } |
| 2050 | checkout_cmd(); |
| 2051 | g.argc = 2; |
| 2052 | info_cmd(); |
| 2053 | } |
| 2054 | |
| 2055 | /* |
| 2056 | ** Print the value of a setting named zName |
| 2057 | */ |
| 2058 |