Fossil SCM

When resuming a clone, delete the previous setup user so it can be reset. This also handles the case where a new --admin-user is passed in.

andybradford 2023-12-17 05:49 clone-resume
Commit b86d4da5a23581f100c5d4bccf0399ae6dde05fb2c260e49ec63fd41618a7c80
1 file changed +8 -1
+8 -1
--- src/clone.c
+++ src/clone.c
@@ -248,12 +248,19 @@
248248
zOldProjCode = db_get("project-code",0);
249249
zCloneCode = db_get("aux-clone-code",0);
250250
if( zOldProjCode==0 ) fossil_fatal("project-id missing from repository");
251251
if( zCloneCode==0 ) fossil_fatal("clone-code missing from repository");
252252
fossil_print("Resuming clone of project-id %s\n",zOldProjCode);
253
+ db_unprotect(PROTECT_USER);
254
+ db_multi_exec("DELETE FROM user WHERE cap LIKE '%%s%%'");
255
+ db_protect_pop();
253256
db_create_default_users(1, zDefaultUser);
254
- if( zDefaultUser ) g.zLogin = zDefaultUser;
257
+ if( zDefaultUser ){
258
+ g.zLogin = zDefaultUser;
259
+ }else{
260
+ g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
261
+ }
255262
user_select();
256263
}else{
257264
db_create_repository(zRepo);
258265
db_open_repository(zRepo);
259266
db_open_config(0,0);
260267
--- src/clone.c
+++ src/clone.c
@@ -248,12 +248,19 @@
248 zOldProjCode = db_get("project-code",0);
249 zCloneCode = db_get("aux-clone-code",0);
250 if( zOldProjCode==0 ) fossil_fatal("project-id missing from repository");
251 if( zCloneCode==0 ) fossil_fatal("clone-code missing from repository");
252 fossil_print("Resuming clone of project-id %s\n",zOldProjCode);
 
 
 
253 db_create_default_users(1, zDefaultUser);
254 if( zDefaultUser ) g.zLogin = zDefaultUser;
 
 
 
 
255 user_select();
256 }else{
257 db_create_repository(zRepo);
258 db_open_repository(zRepo);
259 db_open_config(0,0);
260
--- src/clone.c
+++ src/clone.c
@@ -248,12 +248,19 @@
248 zOldProjCode = db_get("project-code",0);
249 zCloneCode = db_get("aux-clone-code",0);
250 if( zOldProjCode==0 ) fossil_fatal("project-id missing from repository");
251 if( zCloneCode==0 ) fossil_fatal("clone-code missing from repository");
252 fossil_print("Resuming clone of project-id %s\n",zOldProjCode);
253 db_unprotect(PROTECT_USER);
254 db_multi_exec("DELETE FROM user WHERE cap LIKE '%%s%%'");
255 db_protect_pop();
256 db_create_default_users(1, zDefaultUser);
257 if( zDefaultUser ){
258 g.zLogin = zDefaultUser;
259 }else{
260 g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
261 }
262 user_select();
263 }else{
264 db_create_repository(zRepo);
265 db_open_repository(zRepo);
266 db_open_config(0,0);
267

Keyboard Shortcuts

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