Fossil

Check-in [f7b355b311]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Locate the local checkout database even if it is read-only.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: f7b355b311ab07c4c8455d58c532dd586022a280
User & Date: drh 2013-03-06 11:30:56.436
Context
2013-03-06
15:33
fix commit dialog (problem is introduced in [30a63b8b66]) for files containing crlf or long lines followed by nul byte. test-case: $ tclsh8.6 % set f [open abc w];fconfigure $f -translation binary;puts -nonewline $f \r\n\0;close $f;exit $ fossil add abc ADDED abc $ fossil commit --test ./abc contains CR/NL line endings. Use --no-warnings or the "crnl-glob" setting to disable this warning. Commit anyhow (a=all/c=convert/y/N)? n After correction: $ ./fossil commit --test ./abc contains binary data. Use --no-warnings or the "binary-glob" setting to disable this warning. Commit anyhow (a=all/y/N)? n check-in: af0ca3b4eb user: jan.nijtmans tags: trunk
14:40
merge trunk check-in: 7aa9f66f92 user: jan.nijtmans tags: fix-test-move-repository
12:58
(experimental) fix for [2cfd96b2ba] check-in: 949976e065 user: jan.nijtmans tags: ticket-2cfd96b2ba
11:30
Locate the local checkout database even if it is read-only. check-in: f7b355b311 user: drh tags: trunk
10:16
In db_open_local() check writability of local-db itself in stead of the directory it is in. This should enable fossil checkouts on NFS-mounts, which sometimes lie about writability of directories. check-in: beb91c9163 user: jan.nijtmans tags: trunk
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/db.c.
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
  if( g.localOpen) return 1;
  file_getcwd(zPwd, sizeof(zPwd)-20);
  n = strlen(zPwd);
  if( n==1 && zPwd[0]=='/' ) zPwd[0] = '.';
  while( n>0 ){
    for(i=0; i<count(aDbName); i++){
      sqlite3_snprintf(sizeof(zPwd)-n, &zPwd[n], "/%s", aDbName[i]);
      if( file_access(zPwd, W_OK) ) continue;
      if( isValidLocalDb(zPwd) ){
        /* Found a valid checkout database file */
        zPwd[n] = 0;
        while( n>1 && zPwd[n-1]=='/' ){
          n--;
          zPwd[n] = 0;
        }







<







939
940
941
942
943
944
945

946
947
948
949
950
951
952
  if( g.localOpen) return 1;
  file_getcwd(zPwd, sizeof(zPwd)-20);
  n = strlen(zPwd);
  if( n==1 && zPwd[0]=='/' ) zPwd[0] = '.';
  while( n>0 ){
    for(i=0; i<count(aDbName); i++){
      sqlite3_snprintf(sizeof(zPwd)-n, &zPwd[n], "/%s", aDbName[i]);

      if( isValidLocalDb(zPwd) ){
        /* Found a valid checkout database file */
        zPwd[n] = 0;
        while( n>1 && zPwd[n-1]=='/' ){
          n--;
          zPwd[n] = 0;
        }