Fossil SCM

Take extra care to always honor the -A option on clone, especially when cloning from a file: URI. Ticket [bcd3cdebf2879874]

drh 2011-07-19 22:57 trunk
Commit d86201dce9f036591b7716bea31c29bcc3188cbf
2 files changed +5 -3 +7 -5
+5 -3
--- src/clone.c
+++ src/clone.c
@@ -77,13 +77,15 @@
7777
"DELETE FROM blob WHERE rid IN private;"
7878
"DELETE FROM delta wHERE rid IN private;"
7979
"DELETE FROM private;"
8080
);
8181
shun_artifacts();
82
- g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
83
- if( g.zLogin==0 ){
84
- db_create_default_users(1,zDefaultUser);
82
+ db_create_default_users(1, zDefaultUser);
83
+ if( zDefaultUser ){
84
+ g.zLogin = zDefaultUser;
85
+ }else{
86
+ g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
8587
}
8688
fossil_print("Repository cloned into %s\n", g.argv[3]);
8789
}else{
8890
db_create_repository(g.argv[3]);
8991
db_open_repository(g.argv[3]);
9092
--- src/clone.c
+++ src/clone.c
@@ -77,13 +77,15 @@
77 "DELETE FROM blob WHERE rid IN private;"
78 "DELETE FROM delta wHERE rid IN private;"
79 "DELETE FROM private;"
80 );
81 shun_artifacts();
82 g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
83 if( g.zLogin==0 ){
84 db_create_default_users(1,zDefaultUser);
 
 
85 }
86 fossil_print("Repository cloned into %s\n", g.argv[3]);
87 }else{
88 db_create_repository(g.argv[3]);
89 db_open_repository(g.argv[3]);
90
--- src/clone.c
+++ src/clone.c
@@ -77,13 +77,15 @@
77 "DELETE FROM blob WHERE rid IN private;"
78 "DELETE FROM delta wHERE rid IN private;"
79 "DELETE FROM private;"
80 );
81 shun_artifacts();
82 db_create_default_users(1, zDefaultUser);
83 if( zDefaultUser ){
84 g.zLogin = zDefaultUser;
85 }else{
86 g.zLogin = db_text(0, "SELECT login FROM user WHERE cap LIKE '%%s%%'");
87 }
88 fossil_print("Repository cloned into %s\n", g.argv[3]);
89 }else{
90 db_create_repository(g.argv[3]);
91 db_open_repository(g.argv[3]);
92
+7 -5
--- src/db.c
+++ src/db.c
@@ -1058,14 +1058,13 @@
10581058
10591059
/*
10601060
** Create the default user accounts in the USER table.
10611061
*/
10621062
void db_create_default_users(int setupUserOnly, const char *zDefaultUser){
1063
- const char *zUser;
1064
- zUser = db_get("default-user", 0);
1063
+ const char *zUser = zDefaultUser;
10651064
if( zUser==0 ){
1066
- zUser = zDefaultUser;
1065
+ zUser = db_get("default-user", 0);
10671066
}
10681067
if( zUser==0 ){
10691068
#if defined(_WIN32)
10701069
zUser = getenv("USERNAME");
10711070
#else
@@ -1074,12 +1073,15 @@
10741073
}
10751074
if( zUser==0 ){
10761075
zUser = "root";
10771076
}
10781077
db_multi_exec(
1079
- "INSERT INTO user(login, pw, cap, info)"
1080
- "VALUES(%Q,lower(hex(randomblob(3))),'s','')", zUser
1078
+ "INSERT OR IGNORE INTO user(login, info) VALUES(%Q,'')", zUser
1079
+ );
1080
+ db_multi_exec(
1081
+ "UPDATE user SET cap='s', pw=lower(hex(randomblob(3)))"
1082
+ " WHERE login=%Q", zUser
10811083
);
10821084
if( !setupUserOnly ){
10831085
db_multi_exec(
10841086
"INSERT INTO user(login,pw,cap,info)"
10851087
" VALUES('anonymous',hex(randomblob(8)),'hmncz','Anon');"
10861088
--- src/db.c
+++ src/db.c
@@ -1058,14 +1058,13 @@
1058
1059 /*
1060 ** Create the default user accounts in the USER table.
1061 */
1062 void db_create_default_users(int setupUserOnly, const char *zDefaultUser){
1063 const char *zUser;
1064 zUser = db_get("default-user", 0);
1065 if( zUser==0 ){
1066 zUser = zDefaultUser;
1067 }
1068 if( zUser==0 ){
1069 #if defined(_WIN32)
1070 zUser = getenv("USERNAME");
1071 #else
@@ -1074,12 +1073,15 @@
1074 }
1075 if( zUser==0 ){
1076 zUser = "root";
1077 }
1078 db_multi_exec(
1079 "INSERT INTO user(login, pw, cap, info)"
1080 "VALUES(%Q,lower(hex(randomblob(3))),'s','')", zUser
 
 
 
1081 );
1082 if( !setupUserOnly ){
1083 db_multi_exec(
1084 "INSERT INTO user(login,pw,cap,info)"
1085 " VALUES('anonymous',hex(randomblob(8)),'hmncz','Anon');"
1086
--- src/db.c
+++ src/db.c
@@ -1058,14 +1058,13 @@
1058
1059 /*
1060 ** Create the default user accounts in the USER table.
1061 */
1062 void db_create_default_users(int setupUserOnly, const char *zDefaultUser){
1063 const char *zUser = zDefaultUser;
 
1064 if( zUser==0 ){
1065 zUser = db_get("default-user", 0);
1066 }
1067 if( zUser==0 ){
1068 #if defined(_WIN32)
1069 zUser = getenv("USERNAME");
1070 #else
@@ -1074,12 +1073,15 @@
1073 }
1074 if( zUser==0 ){
1075 zUser = "root";
1076 }
1077 db_multi_exec(
1078 "INSERT OR IGNORE INTO user(login, info) VALUES(%Q,'')", zUser
1079 );
1080 db_multi_exec(
1081 "UPDATE user SET cap='s', pw=lower(hex(randomblob(3)))"
1082 " WHERE login=%Q", zUser
1083 );
1084 if( !setupUserOnly ){
1085 db_multi_exec(
1086 "INSERT INTO user(login,pw,cap,info)"
1087 " VALUES('anonymous',hex(randomblob(8)),'hmncz','Anon');"
1088

Keyboard Shortcuts

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