Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | added setting to change name of the manifest files in the checkout Ticket [22a59e9a3455d8ecb] |
|---|---|
| Timelines: | family | ancestors | descendants | both | wolfgangFormat2CSS_2 |
| Files: | files | file ages | folders |
| SHA1: |
9978d2aba603d94db4b204650aa161c9 |
| User & Date: | wolfgang 2010-09-27 18:12:15.000 |
| Original Comment: | added setting to change name of the manifest files in the checkout |
References
|
2010-09-29
| ||
| 13:18 | Back out changes in [9978d2aba603d94]. Instead, simply modify checkout so that it never overwrites "manifest" and "manifest.uuid" if those files are explicitly checked in. Ticket [22a59e9a3455d8e]. check-in: 4208b3b479 user: drh tags: wolfgangFormat2CSS_2 | |
|
2010-09-27
| ||
| 18:16 | • Ticket [22a59e9a34] Existing file named "MANIFEST" always overwritten status still Open with 2 other changes artifact: b147fc7a7f user: wolfgang | |
Context
|
2010-09-27
| ||
| 18:31 | HTML validated setup_settings page check-in: 4a01787609 user: wolfgang tags: wolfgangFormat2CSS_2 | |
| 18:12 | added setting to change name of the manifest files in the checkout Ticket [22a59e9a3455d8ecb] check-in: 9978d2aba6 user: wolfgang tags: wolfgangFormat2CSS_2 | |
| 15:56 | length of short checkin uuid for dir page restored to 10 check-in: b72065df2f user: wolfgang tags: wolfgangFormat2CSS_2 | |
Changes
Changes to src/add.c.
| ︙ | ︙ | |||
34 35 36 37 38 39 40 |
*/
static void add_one_file(const char *zName, int vid, Blob *pOmit){
Blob pathname;
const char *zPath;
file_tree_name(zName, &pathname, 1);
zPath = blob_str(&pathname);
| | | | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
*/
static void add_one_file(const char *zName, int vid, Blob *pOmit){
Blob pathname;
const char *zPath;
file_tree_name(zName, &pathname, 1);
zPath = blob_str(&pathname);
if( strcmp(zPath, db_manifestName())==0
|| strcmp(zPath, "_FOSSIL_")==0
|| strcmp(zPath, "_FOSSIL_-journal")==0
|| strcmp(zPath, "_FOSSIL_-wal")==0
|| strcmp(zPath, "_FOSSIL_-shm")==0
|| strcmp(zPath, ".fos")==0
|| strcmp(zPath, ".fos-journal")==0
|| strcmp(zPath, ".fos-wal")==0
|| strcmp(zPath, ".fos-shm")==0
|| strcmp(zPath, db_manifestUuidName())==0
|| blob_compare(&pathname, pOmit)==0
){
fossil_warning("cannot add %s", zPath);
}else{
if( !file_is_simple_pathname(zPath) ){
fossil_fatal("filename contains illegal characters: %s", zPath);
}
|
| ︙ | ︙ |
Changes to src/checkin.c.
| ︙ | ︙ | |||
842 843 844 845 846 847 848 |
blob_appendf(&manifest, "T -%F *\n", zTag);
}
db_finalize(&q);
}
blob_appendf(&manifest, "U %F\n", zUserOvrd ? zUserOvrd : g.zLogin);
md5sum_blob(&manifest, &mcksum);
blob_appendf(&manifest, "Z %b\n", &mcksum);
| | | 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 |
blob_appendf(&manifest, "T -%F *\n", zTag);
}
db_finalize(&q);
}
blob_appendf(&manifest, "U %F\n", zUserOvrd ? zUserOvrd : g.zLogin);
md5sum_blob(&manifest, &mcksum);
blob_appendf(&manifest, "Z %b\n", &mcksum);
zManifestFile = mprintf("%s%s", g.zLocalRoot, db_manifestName());
if( !noSign && !g.markPrivate && clearsign(&manifest, &manifest) ){
Blob ans;
blob_zero(&ans);
prompt_user("unable to sign manifest. continue (y/N)? ", &ans);
if( blob_str(&ans)[0]!='y' ){
fossil_exit(1);
}
|
| ︙ | ︙ | |||
864 865 866 867 868 869 870 |
fossil_panic("trouble committing manifest: %s", g.zErrMsg);
}
db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nvid);
manifest_crosslink(nvid, &manifest);
content_deltify(vid, nvid, 0);
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", nvid);
printf("New_Version: %s\n", zUuid);
| | | 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 |
fossil_panic("trouble committing manifest: %s", g.zErrMsg);
}
db_multi_exec("INSERT OR IGNORE INTO unsent VALUES(%d)", nvid);
manifest_crosslink(nvid, &manifest);
content_deltify(vid, nvid, 0);
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", nvid);
printf("New_Version: %s\n", zUuid);
zManifestFile = mprintf("%s%s", g.zLocalRoot, db_manifestUuidName());
blob_zero(&muuid);
blob_appendf(&muuid, "%s\n", zUuid);
blob_write_to_file(&muuid, zManifestFile);
free(zManifestFile);
blob_reset(&muuid);
|
| ︙ | ︙ |
Changes to src/checkout.c.
| ︙ | ︙ | |||
108 109 110 111 112 113 114 | Blob hash; Blob filename; int baseLen; int i; Manifest m; blob_zero(&manifest); | | | | 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
Blob hash;
Blob filename;
int baseLen;
int i;
Manifest m;
blob_zero(&manifest);
zManFile = mprintf("%s%s", g.zLocalRoot, db_manifestName());
content_get(vid, &manifest);
blob_write_to_file(&manifest, zManFile);
free(zManFile);
blob_zero(&hash);
sha1sum_blob(&manifest, &hash);
zManFile = mprintf("%s%s", g.zLocalRoot,db_manifestUuidName());
blob_append(&hash, "\n", 1);
blob_write_to_file(&hash, zManFile);
free(zManFile);
blob_reset(&hash);
manifest_parse(&m, &manifest);
blob_zero(&filename);
blob_appendf(&filename, "%s/", g.zLocalRoot);
|
| ︙ | ︙ |
Changes to src/db.c.
| ︙ | ︙ | |||
46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
struct Stmt {
Blob sql; /* The SQL for this statement */
sqlite3_stmt *pStmt; /* The results of sqlite3_prepare() */
Stmt *pNext, *pPrev; /* List of all unfinalized statements */
int nStep; /* Number of sqlite3_step() calls */
};
#endif /* INTERFACE */
/*
** Call this routine when a database error occurs.
*/
static void db_err(const char *zFormat, ...){
va_list ap;
char *z;
| > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
struct Stmt {
Blob sql; /* The SQL for this statement */
sqlite3_stmt *pStmt; /* The results of sqlite3_prepare() */
Stmt *pNext, *pPrev; /* List of all unfinalized statements */
int nStep; /* Number of sqlite3_step() calls */
};
#endif /* INTERFACE */
/*
** Get the configured name for the manifest file
*/
const char* db_manifestName(void){
static char zManifestFNDefault[] = "manifest";
if (!g.zManifestFN){
char *zManifestFNPara;
zManifestFNPara = db_get("manifest",zManifestFNDefault);
if (!zManifestFNPara || !*zManifestFNPara){
zManifestFNPara = zManifestFNDefault;
}
g.zManifestFN = mprintf("%s",db_get("manifest",zManifestFNPara));
}
return (g.zManifestFN);
}
/*
** Get the configured name for the manifest.uuid file
*/
const char* db_manifestUuidName(void){
if (!g.zManifestUuidFN){
g.zManifestUuidFN = mprintf("%s.uuid",db_manifestName());
}
return (g.zManifestUuidFN);
}
/*
** clear manifest filename caches
*/
void db_FreeManifestNames(void){
if (g.zManifestFN){
free(g.zManifestFN);
g.zManifestFN = 0;
}
if (g.zManifestUuidFN){
free(g.zManifestUuidFN);
g.zManifestUuidFN = 0;
}
}
/*
** Call this routine when a database error occurs.
*/
static void db_err(const char *zFormat, ...){
va_list ap;
char *z;
|
| ︙ | ︙ | |||
781 782 783 784 785 786 787 788 789 790 791 792 793 794 |
/* Found a valid checkout database file */
zPwd[n] = 0;
while( n>1 && zPwd[n-1]=='/' ){
n--;
zPwd[n] = 0;
}
g.zLocalRoot = mprintf("%s/", zPwd);
return 1;
}
}
n--;
while( n>0 && zPwd[n]!='/' ){ n--; }
while( n>0 && zPwd[n-1]=='/' ){ n--; }
zPwd[n] = 0;
| > > | 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 |
/* Found a valid checkout database file */
zPwd[n] = 0;
while( n>1 && zPwd[n-1]=='/' ){
n--;
zPwd[n] = 0;
}
g.zLocalRoot = mprintf("%s/", zPwd);
g.zManifestFN = 0;
g.zManifestUuidFN = 0;
return 1;
}
}
n--;
while( n>0 && zPwd[n]!='/' ){ n--; }
while( n>0 && zPwd[n-1]=='/' ){ n--; }
zPwd[n] = 0;
|
| ︙ | ︙ | |||
1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 |
{ "diff-command", 0, 16, "diff" },
{ "dont-push", 0, 0, "0" },
{ "editor", 0, 16, "" },
{ "gdiff-command", 0, 16, "gdiff" },
{ "ignore-glob", 0, 40, "" },
{ "http-port", 0, 16, "8080" },
{ "localauth", 0, 0, "0" },
{ "mtime-changes", 0, 0, "0" },
{ "pgp-command", 0, 32, "gpg --clearsign -o " },
{ "proxy", 0, 32, "off" },
{ "ssh-command", 0, 32, "" },
{ "web-browser", 0, 32, "" },
{ 0,0,0,0 }
};
| > | 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 |
{ "diff-command", 0, 16, "diff" },
{ "dont-push", 0, 0, "0" },
{ "editor", 0, 16, "" },
{ "gdiff-command", 0, 16, "gdiff" },
{ "ignore-glob", 0, 40, "" },
{ "http-port", 0, 16, "8080" },
{ "localauth", 0, 0, "0" },
{ "manifest", 0, 32, "" },
{ "mtime-changes", 0, 0, "0" },
{ "pgp-command", 0, 32, "gpg --clearsign -o " },
{ "proxy", 0, 32, "off" },
{ "ssh-command", 0, 32, "" },
{ "web-browser", 0, 32, "" },
{ 0,0,0,0 }
};
|
| ︙ | ︙ | |||
1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 | ** specifying files that the "extra" command will ignore. ** Example: *.o,*.obj,*.exe ** ** localauth If enabled, require that HTTP connections from ** 127.0.0.1 be authenticated by password. If ** false, all HTTP requests from localhost have ** unrestricted access to the repository. ** ** mtime-changes Use file modification times (mtimes) to detect when ** files have been modified. (Default "on".) ** ** pgp-command Command used to clear-sign manifests at check-in. ** The default is "gpg --clearsign -o ". ** | > > | 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 | ** specifying files that the "extra" command will ignore. ** Example: *.o,*.obj,*.exe ** ** localauth If enabled, require that HTTP connections from ** 127.0.0.1 be authenticated by password. If ** false, all HTTP requests from localhost have ** unrestricted access to the repository. ** ** manifest name of manifest file, standard is manifest ** ** mtime-changes Use file modification times (mtimes) to detect when ** files have been modified. (Default "on".) ** ** pgp-command Command used to clear-sign manifests at check-in. ** The default is "gpg --clearsign -o ". ** |
| ︙ | ︙ | |||
1637 1638 1639 1640 1641 1642 1643 1644 |
db_set(ctrlSettings[i].name, g.argv[3], globalFlag);
}else{
print_setting(ctrlSettings[i].name);
}
}else{
usage("?PROPERTY? ?VALUE?");
}
}
| > | 1684 1685 1686 1687 1688 1689 1690 1691 1692 |
db_set(ctrlSettings[i].name, g.argv[3], globalFlag);
}else{
print_setting(ctrlSettings[i].name);
}
}else{
usage("?PROPERTY? ?VALUE?");
}
db_FreeManifestNames();
}
|
Changes to src/main.c.
| ︙ | ︙ | |||
57 58 59 60 61 62 63 64 65 66 67 68 69 70 | long long int now; /* Seconds since 1970 */ int repositoryOpen; /* True if the main repository database is open */ char *zRepositoryName; /* Name of the repository database */ char *zRepoDb; /* SQLite database name for the repository */ const char *zHome; /* Name of user home directory */ int localOpen; /* True if the local database is open */ char *zLocalRoot; /* The directory holding the local database */ int minPrefix; /* Number of digits needed for a distinct UUID */ int fSqlTrace; /* True if -sqltrace flag is present */ int fSqlPrint; /* True if -sqlprint flag is present */ int fQuiet; /* True if -quiet flag is present */ int fHttpTrace; /* Trace outbound HTTP requests */ int fNoSync; /* Do not do an autosync even. --nosync */ char *zPath; /* Name of webpage being served */ | > > | 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | long long int now; /* Seconds since 1970 */ int repositoryOpen; /* True if the main repository database is open */ char *zRepositoryName; /* Name of the repository database */ char *zRepoDb; /* SQLite database name for the repository */ const char *zHome; /* Name of user home directory */ int localOpen; /* True if the local database is open */ char *zLocalRoot; /* The directory holding the local database */ char *zManifestFN; /* The name of the manifest file in checkouts */ char *zManifestUuidFN; /* The name of the manifest.uuid file in checkouts */ int minPrefix; /* Number of digits needed for a distinct UUID */ int fSqlTrace; /* True if -sqltrace flag is present */ int fSqlPrint; /* True if -sqlprint flag is present */ int fQuiet; /* True if -quiet flag is present */ int fHttpTrace; /* Trace outbound HTTP requests */ int fNoSync; /* Do not do an autosync even. --nosync */ char *zPath; /* Name of webpage being served */ |
| ︙ | ︙ |
Changes to src/setup.c.
| ︙ | ︙ | |||
864 865 866 867 868 869 870 871 872 873 874 875 876 877 |
login_check_credentials();
if( !g.okSetup ){
login_needed();
}
style_header("Settings");
db_begin_transaction();
@ <p>This page provides a simple interface to the "fossil setting" command.
@ See the "fossil help setting" output below for further information on
@ the meaning of each setting.</p><hr />
@ <form action="%s(g.zBaseURL)/setup_settings" method="post"><div>
@ <table border="0"><tr><td valign="top">
login_insert_csrf_secret();
| > | 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 |
login_check_credentials();
if( !g.okSetup ){
login_needed();
}
style_header("Settings");
db_FreeManifestNames();
db_begin_transaction();
@ <p>This page provides a simple interface to the "fossil setting" command.
@ See the "fossil help setting" output below for further information on
@ the meaning of each setting.</p><hr />
@ <form action="%s(g.zBaseURL)/setup_settings" method="post"><div>
@ <table border="0"><tr><td valign="top">
login_insert_csrf_secret();
|
| ︙ | ︙ |
Changes to src/zip.c.
| ︙ | ︙ | |||
336 337 338 339 340 341 342 |
blob_appendf(&filename, "%s/", zDir);
}
nPrefix = blob_size(&filename);
if( manifest_parse(&m, &mfile) ){
char *zName;
zip_set_timedate(m.rDate);
| | | | 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 |
blob_appendf(&filename, "%s/", zDir);
}
nPrefix = blob_size(&filename);
if( manifest_parse(&m, &mfile) ){
char *zName;
zip_set_timedate(m.rDate);
blob_append(&filename, db_manifestName(), -1);
zName = blob_str(&filename);
zip_add_folders(zName);
zip_add_file(zName, &file);
sha1sum_blob(&file, &hash);
blob_reset(&file);
blob_append(&hash, "\n", 1);
blob_resize(&filename, nPrefix);
blob_append(&filename, db_manifestUuidName(), -1);
zName = blob_str(&filename);
zip_add_file(zName, &hash);
blob_reset(&hash);
for(i=0; i<m.nFile; i++){
int fid = uuid_to_rid(m.aFile[i].zUuid, 0);
if( fid ){
content_get(fid, &file);
|
| ︙ | ︙ |