Fossil SCM

One more place where failing run_common_script() should not prevent running manifest_crosslink(). If run_common_script() fails, let the following run_script() output its error-message.

jan.nijtmans 2013-10-13 15:03 UTC tkt-change-hook
Commit cc5466b8d446ff5eed6e8c16c361b4846e6808d1
2 files changed +2 -1 +11 -3
+2 -1
--- src/branch.c
+++ src/branch.c
@@ -153,11 +153,12 @@
153153
brid = content_put_ex(&branch, 0, 0, 0, isPrivate);
154154
if( brid==0 ){
155155
fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
156156
}
157157
db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", brid);
158
- if( run_common_script() || manifest_crosslink(brid, &branch)==0 ){
158
+ run_common_script();
159
+ if( manifest_crosslink(brid, &branch)==0 ){
159160
fossil_fatal("%s\n", g.zErrMsg);
160161
}
161162
assert( blob_is_reset(&branch) );
162163
content_deltify(rootid, brid, 0);
163164
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", brid);
164165
--- src/branch.c
+++ src/branch.c
@@ -153,11 +153,12 @@
153 brid = content_put_ex(&branch, 0, 0, 0, isPrivate);
154 if( brid==0 ){
155 fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
156 }
157 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", brid);
158 if( run_common_script() || manifest_crosslink(brid, &branch)==0 ){
 
159 fossil_fatal("%s\n", g.zErrMsg);
160 }
161 assert( blob_is_reset(&branch) );
162 content_deltify(rootid, brid, 0);
163 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", brid);
164
--- src/branch.c
+++ src/branch.c
@@ -153,11 +153,12 @@
153 brid = content_put_ex(&branch, 0, 0, 0, isPrivate);
154 if( brid==0 ){
155 fossil_fatal("trouble committing manifest: %s", g.zErrMsg);
156 }
157 db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", brid);
158 run_common_script();
159 if( manifest_crosslink(brid, &branch)==0 ){
160 fossil_fatal("%s\n", g.zErrMsg);
161 }
162 assert( blob_is_reset(&branch) );
163 content_deltify(rootid, brid, 0);
164 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", brid);
165
+11 -3
--- src/xfer.c
+++ src/xfer.c
@@ -918,14 +918,18 @@
918918
int run_script(const char *zScript, const char *zUuid){
919919
int result = 0;
920920
if( !commonScriptRan || !zScript || !(zScript = db_get(zScript, 0))){
921921
return 0; /* No script or common script didn't run, return success. */
922922
}
923
- if( zUuid ){
924
- Th_SetVar(g.interp, "uuid", -1, zUuid, strlen(zUuid));
923
+ if( commonScriptRan == 1 ){
924
+ if( zUuid ){
925
+ Th_SetVar(g.interp, "uuid", -1, zUuid, strlen(zUuid));
926
+ }
927
+ result = Th_Eval(g.interp, 0, zScript, -1) != TH_OK;
928
+ }else{
929
+ result = TH_ERROR;
925930
}
926
- result = Th_Eval(g.interp, 0, zScript, -1) != TH_OK;
927931
if (result) fossil_error(1, "%s", Th_GetResult(g.interp, 0));
928932
return result;
929933
}
930934
931935
/*
@@ -936,10 +940,14 @@
936940
int result = 0;
937941
if( !commonScriptRan ){
938942
Th_FossilInit(TH_INIT_DEFAULT); /* Make sure TH1 is ready. */
939943
commonScriptRan = 1; /* enable run_script to do something */
940944
result = run_script("xfer-common-script", 0);
945
+ if( result == TH_ERROR ){
946
+ /* Error message is left in th interpreter. */
947
+ commonScriptRan = 2;
948
+ }
941949
Th_CreateCommand(g.interp, "http", httpCmd, 0, 0);
942950
}
943951
return result;
944952
}
945953
946954
--- src/xfer.c
+++ src/xfer.c
@@ -918,14 +918,18 @@
918 int run_script(const char *zScript, const char *zUuid){
919 int result = 0;
920 if( !commonScriptRan || !zScript || !(zScript = db_get(zScript, 0))){
921 return 0; /* No script or common script didn't run, return success. */
922 }
923 if( zUuid ){
924 Th_SetVar(g.interp, "uuid", -1, zUuid, strlen(zUuid));
 
 
 
 
 
925 }
926 result = Th_Eval(g.interp, 0, zScript, -1) != TH_OK;
927 if (result) fossil_error(1, "%s", Th_GetResult(g.interp, 0));
928 return result;
929 }
930
931 /*
@@ -936,10 +940,14 @@
936 int result = 0;
937 if( !commonScriptRan ){
938 Th_FossilInit(TH_INIT_DEFAULT); /* Make sure TH1 is ready. */
939 commonScriptRan = 1; /* enable run_script to do something */
940 result = run_script("xfer-common-script", 0);
 
 
 
 
941 Th_CreateCommand(g.interp, "http", httpCmd, 0, 0);
942 }
943 return result;
944 }
945
946
--- src/xfer.c
+++ src/xfer.c
@@ -918,14 +918,18 @@
918 int run_script(const char *zScript, const char *zUuid){
919 int result = 0;
920 if( !commonScriptRan || !zScript || !(zScript = db_get(zScript, 0))){
921 return 0; /* No script or common script didn't run, return success. */
922 }
923 if( commonScriptRan == 1 ){
924 if( zUuid ){
925 Th_SetVar(g.interp, "uuid", -1, zUuid, strlen(zUuid));
926 }
927 result = Th_Eval(g.interp, 0, zScript, -1) != TH_OK;
928 }else{
929 result = TH_ERROR;
930 }
 
931 if (result) fossil_error(1, "%s", Th_GetResult(g.interp, 0));
932 return result;
933 }
934
935 /*
@@ -936,10 +940,14 @@
940 int result = 0;
941 if( !commonScriptRan ){
942 Th_FossilInit(TH_INIT_DEFAULT); /* Make sure TH1 is ready. */
943 commonScriptRan = 1; /* enable run_script to do something */
944 result = run_script("xfer-common-script", 0);
945 if( result == TH_ERROR ){
946 /* Error message is left in th interpreter. */
947 commonScriptRan = 2;
948 }
949 Th_CreateCommand(g.interp, "http", httpCmd, 0, 0);
950 }
951 return result;
952 }
953
954

Keyboard Shortcuts

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