Fossil SCM

Add support for doing a "configuration sync" of URL aliases.

drh 2017-09-20 12:34 trunk
Commit 3d36a37a738a21c48344d96001182f852a81c59facfa9e2567af487722fd61bb
2 files changed +21 -1 +1 -1
+21 -1
--- src/configure.c
+++ src/configure.c
@@ -35,12 +35,13 @@
3535
#define CONFIGSET_PROJ 0x000008 /* Project name */
3636
#define CONFIGSET_SHUN 0x000010 /* Shun settings */
3737
#define CONFIGSET_USER 0x000020 /* The USER table */
3838
#define CONFIGSET_ADDR 0x000040 /* The CONCEALED table */
3939
#define CONFIGSET_XFER 0x000080 /* Transfer configuration */
40
+#define CONFIGSET_ALIAS 0x000100 /* URL Aliases */
4041
41
-#define CONFIGSET_ALL 0x0000ff /* Everything */
42
+#define CONFIGSET_ALL 0x0001ff /* Everything */
4243
4344
#define CONFIGSET_OVERWRITE 0x100000 /* Causes overwrite instead of merge */
4445
4546
/*
4647
** This mask is used for the common TH1 configuration settings (i.e. those
@@ -66,10 +67,11 @@
6667
{ "/css", CONFIGSET_CSS, "Style sheet" },
6768
{ "/shun", CONFIGSET_SHUN, "List of shunned artifacts" },
6869
{ "/ticket", CONFIGSET_TKT, "Ticket setup", },
6970
{ "/user", CONFIGSET_USER, "Users and privilege settings" },
7071
{ "/xfer", CONFIGSET_XFER, "Transfer setup", },
72
+ { "/alias", CONFIGSET_ALIAS, "URL Aliases", },
7173
{ "/all", CONFIGSET_ALL, "All of the above" },
7274
};
7375
7476
7577
/*
@@ -152,10 +154,12 @@
152154
{ "@user", CONFIGSET_USER },
153155
154156
{ "@concealed", CONFIGSET_ADDR },
155157
156158
{ "@shun", CONFIGSET_SHUN },
159
+
160
+ { "@alias", CONFIGSET_ALIAS },
157161
158162
{ "xfer-common-script", CONFIGSET_XFER },
159163
{ "xfer-push-script", CONFIGSET_XFER },
160164
{ "xfer-commit-script", CONFIGSET_XFER },
161165
{ "xfer-ticket-script", CONFIGSET_XFER },
@@ -667,10 +671,26 @@
667671
blob_size(&rec), blob_str(&rec));
668672
nCard++;
669673
blob_reset(&rec);
670674
}
671675
db_finalize(&q);
676
+ }
677
+ if( groupMask & CONFIGSET_ALIAS ){
678
+ db_prepare(&q, "SELECT mtime, quote(name), quote(value) FROM config"
679
+ " WHERE name GLOB 'walias:/*' AND mtime>=%lld", iStart);
680
+ while( db_step(&q)==SQLITE_ROW ){
681
+ blob_appendf(&rec,"%s %s value %s",
682
+ db_column_text(&q, 0),
683
+ db_column_text(&q, 1),
684
+ db_column_text(&q, 2)
685
+ );
686
+ blob_appendf(pOut, "config /config %d\n%s\n",
687
+ blob_size(&rec), blob_str(&rec));
688
+ nCard++;
689
+ blob_reset(&rec);
690
+ }
691
+ db_finalize(&q);
672692
}
673693
db_prepare(&q, "SELECT mtime, quote(name), quote(value) FROM config"
674694
" WHERE name=:name AND mtime>=%lld", iStart);
675695
for(ii=0; ii<count(aConfig); ii++){
676696
if( (aConfig[ii].groupMask & groupMask)!=0 && aConfig[ii].zName[0]!='@' ){
677697
--- src/configure.c
+++ src/configure.c
@@ -35,12 +35,13 @@
35 #define CONFIGSET_PROJ 0x000008 /* Project name */
36 #define CONFIGSET_SHUN 0x000010 /* Shun settings */
37 #define CONFIGSET_USER 0x000020 /* The USER table */
38 #define CONFIGSET_ADDR 0x000040 /* The CONCEALED table */
39 #define CONFIGSET_XFER 0x000080 /* Transfer configuration */
 
40
41 #define CONFIGSET_ALL 0x0000ff /* Everything */
42
43 #define CONFIGSET_OVERWRITE 0x100000 /* Causes overwrite instead of merge */
44
45 /*
46 ** This mask is used for the common TH1 configuration settings (i.e. those
@@ -66,10 +67,11 @@
66 { "/css", CONFIGSET_CSS, "Style sheet" },
67 { "/shun", CONFIGSET_SHUN, "List of shunned artifacts" },
68 { "/ticket", CONFIGSET_TKT, "Ticket setup", },
69 { "/user", CONFIGSET_USER, "Users and privilege settings" },
70 { "/xfer", CONFIGSET_XFER, "Transfer setup", },
 
71 { "/all", CONFIGSET_ALL, "All of the above" },
72 };
73
74
75 /*
@@ -152,10 +154,12 @@
152 { "@user", CONFIGSET_USER },
153
154 { "@concealed", CONFIGSET_ADDR },
155
156 { "@shun", CONFIGSET_SHUN },
 
 
157
158 { "xfer-common-script", CONFIGSET_XFER },
159 { "xfer-push-script", CONFIGSET_XFER },
160 { "xfer-commit-script", CONFIGSET_XFER },
161 { "xfer-ticket-script", CONFIGSET_XFER },
@@ -667,10 +671,26 @@
667 blob_size(&rec), blob_str(&rec));
668 nCard++;
669 blob_reset(&rec);
670 }
671 db_finalize(&q);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
672 }
673 db_prepare(&q, "SELECT mtime, quote(name), quote(value) FROM config"
674 " WHERE name=:name AND mtime>=%lld", iStart);
675 for(ii=0; ii<count(aConfig); ii++){
676 if( (aConfig[ii].groupMask & groupMask)!=0 && aConfig[ii].zName[0]!='@' ){
677
--- src/configure.c
+++ src/configure.c
@@ -35,12 +35,13 @@
35 #define CONFIGSET_PROJ 0x000008 /* Project name */
36 #define CONFIGSET_SHUN 0x000010 /* Shun settings */
37 #define CONFIGSET_USER 0x000020 /* The USER table */
38 #define CONFIGSET_ADDR 0x000040 /* The CONCEALED table */
39 #define CONFIGSET_XFER 0x000080 /* Transfer configuration */
40 #define CONFIGSET_ALIAS 0x000100 /* URL Aliases */
41
42 #define CONFIGSET_ALL 0x0001ff /* Everything */
43
44 #define CONFIGSET_OVERWRITE 0x100000 /* Causes overwrite instead of merge */
45
46 /*
47 ** This mask is used for the common TH1 configuration settings (i.e. those
@@ -66,10 +67,11 @@
67 { "/css", CONFIGSET_CSS, "Style sheet" },
68 { "/shun", CONFIGSET_SHUN, "List of shunned artifacts" },
69 { "/ticket", CONFIGSET_TKT, "Ticket setup", },
70 { "/user", CONFIGSET_USER, "Users and privilege settings" },
71 { "/xfer", CONFIGSET_XFER, "Transfer setup", },
72 { "/alias", CONFIGSET_ALIAS, "URL Aliases", },
73 { "/all", CONFIGSET_ALL, "All of the above" },
74 };
75
76
77 /*
@@ -152,10 +154,12 @@
154 { "@user", CONFIGSET_USER },
155
156 { "@concealed", CONFIGSET_ADDR },
157
158 { "@shun", CONFIGSET_SHUN },
159
160 { "@alias", CONFIGSET_ALIAS },
161
162 { "xfer-common-script", CONFIGSET_XFER },
163 { "xfer-push-script", CONFIGSET_XFER },
164 { "xfer-commit-script", CONFIGSET_XFER },
165 { "xfer-ticket-script", CONFIGSET_XFER },
@@ -667,10 +671,26 @@
671 blob_size(&rec), blob_str(&rec));
672 nCard++;
673 blob_reset(&rec);
674 }
675 db_finalize(&q);
676 }
677 if( groupMask & CONFIGSET_ALIAS ){
678 db_prepare(&q, "SELECT mtime, quote(name), quote(value) FROM config"
679 " WHERE name GLOB 'walias:/*' AND mtime>=%lld", iStart);
680 while( db_step(&q)==SQLITE_ROW ){
681 blob_appendf(&rec,"%s %s value %s",
682 db_column_text(&q, 0),
683 db_column_text(&q, 1),
684 db_column_text(&q, 2)
685 );
686 blob_appendf(pOut, "config /config %d\n%s\n",
687 blob_size(&rec), blob_str(&rec));
688 nCard++;
689 blob_reset(&rec);
690 }
691 db_finalize(&q);
692 }
693 db_prepare(&q, "SELECT mtime, quote(name), quote(value) FROM config"
694 " WHERE name=:name AND mtime>=%lld", iStart);
695 for(ii=0; ii<count(aConfig); ii++){
696 if( (aConfig[ii].groupMask & groupMask)!=0 && aConfig[ii].zName[0]!='@' ){
697
+1 -1
--- src/db.c
+++ src/db.c
@@ -1872,11 +1872,11 @@
18721872
** Copy all settings from the supplied template repository.
18731873
*/
18741874
db_multi_exec(
18751875
"INSERT OR REPLACE INTO config"
18761876
" SELECT name,value,mtime FROM settingSrc.config"
1877
- " WHERE (name IN %s OR name IN %s)"
1877
+ " WHERE (name IN %s OR name IN %s OR name GLOB 'walias:/*')"
18781878
" AND name NOT GLOB 'project-*'"
18791879
" AND name NOT GLOB 'short-project-*';",
18801880
configure_inop_rhs(CONFIGSET_ALL),
18811881
db_setting_inop_rhs()
18821882
);
18831883
--- src/db.c
+++ src/db.c
@@ -1872,11 +1872,11 @@
1872 ** Copy all settings from the supplied template repository.
1873 */
1874 db_multi_exec(
1875 "INSERT OR REPLACE INTO config"
1876 " SELECT name,value,mtime FROM settingSrc.config"
1877 " WHERE (name IN %s OR name IN %s)"
1878 " AND name NOT GLOB 'project-*'"
1879 " AND name NOT GLOB 'short-project-*';",
1880 configure_inop_rhs(CONFIGSET_ALL),
1881 db_setting_inop_rhs()
1882 );
1883
--- src/db.c
+++ src/db.c
@@ -1872,11 +1872,11 @@
1872 ** Copy all settings from the supplied template repository.
1873 */
1874 db_multi_exec(
1875 "INSERT OR REPLACE INTO config"
1876 " SELECT name,value,mtime FROM settingSrc.config"
1877 " WHERE (name IN %s OR name IN %s OR name GLOB 'walias:/*')"
1878 " AND name NOT GLOB 'project-*'"
1879 " AND name NOT GLOB 'short-project-*';",
1880 configure_inop_rhs(CONFIGSET_ALL),
1881 db_setting_inop_rhs()
1882 );
1883

Keyboard Shortcuts

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