Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | merge from trunk |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | StvPrivateHook2 |
| Files: | files | file ages | folders |
| SHA1: |
3ea66260b5555d2e3c86eea8d5975161 |
| User & Date: | wolfgang 2010-11-06 16:57:57.000 |
Context
|
2010-11-06
| ||
| 19:08 | merge from trunk check-in: e5fe4164f7 user: wolfgang tags: StvPrivateHook2 | |
| 16:57 | merge from trunk check-in: 3ea66260b5 user: wolfgang tags: StvPrivateHook2 | |
| 14:04 | Fix the sync logic so that it is able to clone against the canonical fossil repository with its implied redirect. check-in: a921be7b51 user: drh tags: trunk | |
|
2010-11-04
| ||
| 19:58 | Do not assume that the method is CGI just because the GATEWAY_INTERFACE environment variable is set. Only do CGI if GATEWAY_INTERFACE is set and there either is no argument specified, or the specified argument is not a valid command. Ticket [e49f245975f89a8a9] check-in: dcf839e4a6 user: drh tags: trunk | |
|
2010-11-03
| ||
| 12:14 | Updates to the help text for the "commit" command. check-in: 098e363301 user: drh tags: trunk | |
|
2010-11-02
| ||
| 18:23 | merge from trunk check-in: cb75de51b5 user: wolfgang tags: StvPrivateHook2 | |
Changes
Changes to src/checkin.c.
| ︙ | ︙ | |||
697 698 699 700 701 702 703 704 705 | /* ** COMMAND: ci ** COMMAND: commit ** ** Usage: %fossil commit ?OPTIONS? ?FILE...? ** ** Create a new version containing all of the changes in the current ** checkout. You will be prompted to enter a check-in comment unless | > > | > | | | < < | | | > | 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 | /* ** COMMAND: ci ** COMMAND: commit ** ** Usage: %fossil commit ?OPTIONS? ?FILE...? ** ** Create a new version containing all of the changes in the current ** checkout. You will be prompted to enter a check-in comment unless ** the comment has been specified on the command-line using "-m" or a ** file containing the comment using -M. The editor defined in the ** "editor" fossil option (see %fossil <a>help</a> set) will be used, or from ** the "VISUAL" or "EDITOR" environment variables (in that order) if ** no editor is set. ** ** All files that have changed will be committed unless some subset of ** files is specified on the command line. ** ** The --branch option followed by a branch name causes the new check-in ** to be placed in the named branch. The --bgcolor option can be followed ** by a color name (ex: '#ffc0c0') to specify the background color of ** entries in the new branch when shown in the web timeline interface. ** ** A check-in is not permitted to fork unless the --force or -f option ** appears. A check-in is not allowed against a closed check-in. ** ** The --private option creates a private check-in that is never synced. ** Children of private check-ins are automatically private. ** ** Options: ** ** --comment|-m COMMENT-TEXT ** --message-file|-M COMMENT-FILE ** --branch NEW-BRANCH-NAME ** --bgcolor COLOR ** --nosign ** --force|-f ** --private ** --baseline ** --delta |
| ︙ | ︙ | |||
1063 1064 1065 1066 1067 1068 1069 |
** calculated before the checkin started (and stored as the R record
** of the manifest file).
*/
vfile_aggregate_checksum_repository(nvid, &cksum2);
if( blob_compare(&cksum1, &cksum2) ){
fossil_panic("tree checksum does not match repository after commit");
}
| | | | 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 |
** calculated before the checkin started (and stored as the R record
** of the manifest file).
*/
vfile_aggregate_checksum_repository(nvid, &cksum2);
if( blob_compare(&cksum1, &cksum2) ){
fossil_panic("tree checksum does not match repository after commit");
}
/* Verify that the manifest checksum matches the expected checksum */
vfile_aggregate_checksum_manifest(nvid, &cksum2, &cksum1b);
if( blob_compare(&cksum1, &cksum1b) ){
fossil_panic("manifest checksum does not agree with manifest: "
"%b versus %b", &cksum1, &cksum1b);
}
if( blob_compare(&cksum1, &cksum2) ){
fossil_panic("tree checksum does not match manifest after commit: "
"%b versus %b", &cksum1, &cksum2);
}
/* Verify that the commit did not modify any disk images. */
vfile_aggregate_checksum_disk(nvid, &cksum2);
if( blob_compare(&cksum1, &cksum2) ){
fossil_panic("tree checksums before and after commit do not match");
}
}
|
| ︙ | ︙ |
Changes to src/db.c.
| ︙ | ︙ | |||
1521 1522 1523 1524 1525 1526 1527 |
{ "dont-push", 0, 0, "off" },
{ "editor", 0, 16, "" },
{ "gdiff-command", 0, 16, "gdiff" },
{ "ignore-glob", 0, 40, "" },
{ "http-port", 0, 16, "8080" },
{ "localauth", 0, 0, "off" },
{ "manifest", 0, 0, "off" },
| | | 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 |
{ "dont-push", 0, 0, "off" },
{ "editor", 0, 16, "" },
{ "gdiff-command", 0, 16, "gdiff" },
{ "ignore-glob", 0, 40, "" },
{ "http-port", 0, 16, "8080" },
{ "localauth", 0, 0, "off" },
{ "manifest", 0, 0, "off" },
{ "mtime-changes", 0, 0, "on" },
{ "pgp-command", 0, 32, "gpg --clearsign -o " },
{ "proxy", 0, 32, "off" },
{ "push-hook-cmd", 0, 32, "" },
{ "push-hook-force",
0, 0, "" },
{ "push-hook-pattern-client",
0, 32, "" },
|
| ︙ | ︙ |
Changes to src/http.c.
| ︙ | ︙ | |||
101 102 103 104 105 106 107 |
blob_zero(pHdr);
i = strlen(g.urlPath);
if( i>0 && g.urlPath[i-1]=='/' ){
zSep = "";
}else{
zSep = "/";
}
| | | 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
blob_zero(pHdr);
i = strlen(g.urlPath);
if( i>0 && g.urlPath[i-1]=='/' ){
zSep = "";
}else{
zSep = "/";
}
blob_appendf(pHdr, "POST %s%sxfer/xfer HTTP/1.0\r\n", g.urlPath, zSep);
if( g.urlProxyAuth ){
blob_appendf(pHdr, "Proxy-Authorization: %s\n", g.urlProxyAuth);
}
blob_appendf(pHdr, "Host: %s\r\n", g.urlHostname);
blob_appendf(pHdr, "User-Agent: Fossil/" MANIFEST_VERSION "\r\n");
if( g.fHttpTrace ){
blob_appendf(pHdr, "Content-Type: application/x-fossil-debug\r\n");
|
| ︙ | ︙ | |||
224 225 226 227 228 229 230 |
closeConnection = 0;
}
}else if( rc==302 && strncasecmp(zLine, "location:", 9)==0 ){
int i, j;
for(i=9; zLine[i] && zLine[i]==' '; i++){}
if( zLine[i]==0 ) fossil_fatal("malformed redirect: %s", zLine);
j = strlen(zLine) - 1;
| | > > > | 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 |
closeConnection = 0;
}
}else if( rc==302 && strncasecmp(zLine, "location:", 9)==0 ){
int i, j;
for(i=9; zLine[i] && zLine[i]==' '; i++){}
if( zLine[i]==0 ) fossil_fatal("malformed redirect: %s", zLine);
j = strlen(zLine) - 1;
while( j>4 && strcmp(&zLine[j-4],"/xfer")==0 ){
j -= 4;
zLine[j] = 0;
}
fossil_print("redirect to %s\n", &zLine[i]);
url_parse(&zLine[i]);
transport_close();
http_exchange(pSend, pReply, useLogin);
return;
}else if( strncasecmp(zLine, "content-type: text/html", 23)==0 ){
isError = 1;
|
| ︙ | ︙ |
Changes to src/login.c.
| ︙ | ︙ | |||
49 50 51 52 53 54 55 |
/*
** Return the name of the login cookie
*/
static char *login_cookie_name(void){
static char *zCookieName = 0;
if( zCookieName==0 ){
| | | | | < | 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
/*
** Return the name of the login cookie
*/
static char *login_cookie_name(void){
static char *zCookieName = 0;
if( zCookieName==0 ){
unsigned int h = 0;
const char *z = g.zBaseURL;
while( *z ){ h = (h<<3) ^ (h>>26) ^ *(z++); }
zCookieName = mprintf("fossil_login_%08x", h);
}
return zCookieName;
}
/*
** Redirect to the page specified by the "g" query parameter.
** Or if there is no "g" query parameter, redirect to the homepage.
|
| ︙ | ︙ |
Changes to src/main.c.
| ︙ | ︙ | |||
221 222 223 224 225 226 227 228 229 230 231 232 |
/*
** This procedure runs first.
*/
int main(int argc, char **argv){
const char *zCmdName = "unknown";
int idx;
int rc;
sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0);
g.now = time(0);
g.argc = argc;
g.argv = argv;
| > | > > | | | | | | | > > > > | 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 |
/*
** This procedure runs first.
*/
int main(int argc, char **argv){
const char *zCmdName = "unknown";
int idx;
int rc;
int mightBeCgi;
sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0);
g.now = time(0);
g.argc = argc;
g.argv = argv;
mightBeCgi = getenv("GATEWAY_INTERFACE")!=0;
if( argc<2 ){
if( mightBeCgi ){
zCmdName = "cgi";
}else{
fprintf(stderr, "Usage: %s COMMAND ...\n"
"\"%s help\" for a list of available commands\n"
"\"%s help COMMAND\" for specific details\n",
argv[0], argv[0], argv[0]);
fossil_exit(1);
}
}else{
g.fQuiet = find_option("quiet", 0, 0)!=0;
g.fSqlTrace = find_option("sqltrace", 0, 0)!=0;
g.fSqlPrint = find_option("sqlprint", 0, 0)!=0;
g.fHttpTrace = find_option("httptrace", 0, 0)!=0;
g.zLogin = find_option("user", "U", 1);
zCmdName = argv[1];
}
rc = name_search(zCmdName, aCommand, count(aCommand), &idx);
if( rc==1 && mightBeCgi ){
rc = name_search("cgi", aCommand, count(aCommand), &idx);
}
if( rc==1 ){
fprintf(stderr,"%s: unknown command: %s\n"
"%s: use \"help\" for more information\n",
argv[0], zCmdName, argv[0]);
fossil_exit(1);
}else if( rc==2 ){
fprintf(stderr,"%s: ambiguous command prefix: %s\n"
|
| ︙ | ︙ |
Changes to src/setup.c.
| ︙ | ︙ | |||
692 693 694 695 696 697 698 |
iVal = iQ;
}
}
if( iVal ){
@ <input type="checkbox" name="%s(zQParm)" checked="checked" />
@ <b>%s(zLabel)</b>
}else{
| | | 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 |
iVal = iQ;
}
}
if( iVal ){
@ <input type="checkbox" name="%s(zQParm)" checked="checked" />
@ <b>%s(zLabel)</b>
}else{
@ <input type="checkbox" name="%s(zQParm)" /> <b>%s(zLabel)</b>
}
}
/*
** Generate an entry box for an attribute.
*/
void entry_attribute(
|
| ︙ | ︙ | |||
875 876 877 878 879 880 881 |
@ <form action="%s(g.zBaseURL)/setup_settings" method="post"><div>
@ <table border="0"><tr><td valign="top">
login_insert_csrf_secret();
for(pSet=ctrlSettings; pSet->name!=0; pSet++){
if( pSet->width==0 ){
onoff_attribute(pSet->name, pSet->name,
pSet->var!=0 ? pSet->var : pSet->name,
| | | 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 |
@ <form action="%s(g.zBaseURL)/setup_settings" method="post"><div>
@ <table border="0"><tr><td valign="top">
login_insert_csrf_secret();
for(pSet=ctrlSettings; pSet->name!=0; pSet++){
if( pSet->width==0 ){
onoff_attribute(pSet->name, pSet->name,
pSet->var!=0 ? pSet->var : pSet->name,
is_truth(pSet->def));
@ <br />
}
}
@ </td><td style="width: 30;"></td><td valign="top">
for(pSet=ctrlSettings; pSet->name!=0; pSet++){
if( pSet->width!=0 ){
entry_attribute(pSet->name, /*pSet->width*/ 40, pSet->name,
|
| ︙ | ︙ |