Fossil SCM

Fix the "fossil get" command so that it sets the mtime on extracted files. [forum:/forumpost/7239e92e0f59e407|Forum post 7239e92e0f59e407].

drh 2026-01-13 23:57 trunk
Commit 2a387c970dd42bb2b98d56d765ff8b8a0ca99c3ac97dd4337d43e300f136e2f2
1 file changed +2 -1
+2 -1
--- src/checkout.c
+++ src/checkout.c
@@ -593,11 +593,11 @@
593593
}
594594
if( rc!=SQLITE_OK ){
595595
fossil_fatal("Cannot create an in-memory database: %s",
596596
sqlite3_errmsg(db));
597597
}
598
- zSql = mprintf("SELECT name, mode, sz, data FROM sqlar"
598
+ zSql = mprintf("SELECT name, mode, sz, data, mtime FROM sqlar"
599599
" WHERE name GLOB '%q*'", zDest);
600600
rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
601601
fossil_free(zSql);
602602
if( rc!=0 ){
603603
fossil_fatal("SQL error: %s\n", sqlite3_errmsg(db));
@@ -633,10 +633,11 @@
633633
blob_write_to_file(&file, zFilename);
634634
if( mode & 0x40 ){
635635
file_setexe(zFilename, 1);
636636
}
637637
blob_zero(&file);
638
+ file_set_mtime(zFilename, sqlite3_column_int64(pStmt,4));
638639
if( bVerbose ){
639640
fossil_print("%s\n", zFilename);
640641
}
641642
}
642643
}
643644
--- src/checkout.c
+++ src/checkout.c
@@ -593,11 +593,11 @@
593 }
594 if( rc!=SQLITE_OK ){
595 fossil_fatal("Cannot create an in-memory database: %s",
596 sqlite3_errmsg(db));
597 }
598 zSql = mprintf("SELECT name, mode, sz, data FROM sqlar"
599 " WHERE name GLOB '%q*'", zDest);
600 rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
601 fossil_free(zSql);
602 if( rc!=0 ){
603 fossil_fatal("SQL error: %s\n", sqlite3_errmsg(db));
@@ -633,10 +633,11 @@
633 blob_write_to_file(&file, zFilename);
634 if( mode & 0x40 ){
635 file_setexe(zFilename, 1);
636 }
637 blob_zero(&file);
 
638 if( bVerbose ){
639 fossil_print("%s\n", zFilename);
640 }
641 }
642 }
643
--- src/checkout.c
+++ src/checkout.c
@@ -593,11 +593,11 @@
593 }
594 if( rc!=SQLITE_OK ){
595 fossil_fatal("Cannot create an in-memory database: %s",
596 sqlite3_errmsg(db));
597 }
598 zSql = mprintf("SELECT name, mode, sz, data, mtime FROM sqlar"
599 " WHERE name GLOB '%q*'", zDest);
600 rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, 0);
601 fossil_free(zSql);
602 if( rc!=0 ){
603 fossil_fatal("SQL error: %s\n", sqlite3_errmsg(db));
@@ -633,10 +633,11 @@
633 blob_write_to_file(&file, zFilename);
634 if( mode & 0x40 ){
635 file_setexe(zFilename, 1);
636 }
637 blob_zero(&file);
638 file_set_mtime(zFilename, sqlite3_column_int64(pStmt,4));
639 if( bVerbose ){
640 fossil_print("%s\n", zFilename);
641 }
642 }
643 }
644

Keyboard Shortcuts

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