Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | On systems with case-insensitive filenames, allow "fossil rename OLD NEW" where OLD and NEW differ only in case. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
fd2dbf436855e9e6fb74b980338a5cad |
| User & Date: | drh 2015-10-19 14:52:50.733 |
Context
|
2015-10-19
| ||
| 18:22 | Tweaks to change log. ... (check-in: f324a0a4b2 user: mistachkin tags: trunk) | |
| 14:52 | On systems with case-insensitive filenames, allow "fossil rename OLD NEW" where OLD and NEW differ only in case. ... (check-in: fd2dbf4368 user: drh tags: trunk) | |
| 12:02 | Prevent duplicate entries on the file list of a timeline. ... (check-in: 22e0427b10 user: drh tags: trunk) | |
Changes
Changes to src/add.c.
| ︙ | ︙ | |||
711 712 713 714 715 716 717 |
const char *zNew,
int dryRunFlag
){
int x = db_int(-1, "SELECT deleted FROM vfile WHERE pathname=%Q %s",
zNew, filename_collation());
if( x>=0 ){
if( x==0 ){
| > > > | | > | 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 |
const char *zNew,
int dryRunFlag
){
int x = db_int(-1, "SELECT deleted FROM vfile WHERE pathname=%Q %s",
zNew, filename_collation());
if( x>=0 ){
if( x==0 ){
if( !filenames_are_case_sensitive() && fossil_stricmp(zOrig,zNew)==0 ){
/* Case change only */
}else{
fossil_fatal("cannot rename '%s' to '%s' since another file named '%s'"
" is currently under management", zOrig, zNew, zNew);
}
}else{
fossil_fatal("cannot rename '%s' to '%s' since the delete of '%s' has "
"not yet been committed", zOrig, zNew, zNew);
}
}
fossil_print("RENAME %s %s\n", zOrig, zNew);
if( !dryRunFlag ){
|
| ︙ | ︙ | |||
741 742 743 744 745 746 747 748 749 750 751 752 753 754 |
static void add_file_to_move(
const char *zOldName, /* The old name of the file on disk. */
const char *zNewName /* The new name of the file on disk. */
){
static int tableCreated = 0;
Blob fullOldName;
Blob fullNewName;
if( !tableCreated ){
db_multi_exec("CREATE TEMP TABLE fmove(x TEXT PRIMARY KEY %s, y TEXT %s)",
filename_collation(), filename_collation());
tableCreated = 1;
}
file_tree_name(zOldName, &fullOldName, 1, 1);
file_tree_name(zNewName, &fullNewName, 1, 1);
| > > > > | < > | 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 |
static void add_file_to_move(
const char *zOldName, /* The old name of the file on disk. */
const char *zNewName /* The new name of the file on disk. */
){
static int tableCreated = 0;
Blob fullOldName;
Blob fullNewName;
char *zOld, *zNew;
if( !tableCreated ){
db_multi_exec("CREATE TEMP TABLE fmove(x TEXT PRIMARY KEY %s, y TEXT %s)",
filename_collation(), filename_collation());
tableCreated = 1;
}
file_tree_name(zOldName, &fullOldName, 1, 1);
zOld = blob_str(&fullOldName);
file_tree_name(zNewName, &fullNewName, 1, 1);
zNew = blob_str(&fullNewName);
if( filenames_are_case_sensitive() || fossil_stricmp(zOld,zNew)!=0 ){
db_multi_exec("INSERT INTO fmove VALUES('%q','%q');", zOld, zNew);
}
blob_reset(&fullNewName);
blob_reset(&fullOldName);
}
/*
** This function moves files within the checkout, using the file names
** contained in the temporary table "fmove". The temporary table is
|
| ︙ | ︙ |