Fossil

View Ticket
Login
2009-08-14
16:20 Fixed ticket [2e924cf9b7]: Change recursive add to allow inclusion of files starting with dot plus 2 other changes ... (artifact: decc082846 user: drh)
16:19
Add the --dotfiles option to the "add" command to cause fossil to include files whose name begins with "." which recursively adding files. Ticket [2e924cf9b74e]. ... (check-in: 5bc5e88c86 user: drh tags: trunk)
2009-08-13
19:45 Ticket [2e924cf9b7] Change recursive add to allow inclusion of files starting with dot status still Open with 2 other changes ... (artifact: b6933dbbc6 user: drh)
18:03 New ticket [2e924cf9b7]. ... (artifact: 1f41837fd3 user: mjanssen)

Ticket Hash: 2e924cf9b74e7bc777c0f896eda0349e1bf123c7
Title: Change recursive add to allow inclusion of files starting with dot
Status: Fixed Type: Feature_Request
Severity: Minor Priority:
Subsystem: Resolution: Fixed
Last Modified: 2009-08-14 16:20:50
16.64 years ago
Created: 2009-08-13 18:03:00
16.64 years ago
Version Found In: 9cbef7a104e5d6168895a1ab99ad0a68484be369
Description:
Currently a recursive add ignores dotfiles. This is annoying when adding for instance an eclipse project on windows (eclipse uses directories starting with . for project settings) I propose to add a flag -dotfiles to add so that when specified .files and .dir will be added as well. Following diff adds the option to fossil add:
@@ -65,21 +65,24 @@
 ** All content of the zDir directory to the SFILE table.
 */
 void add_directory_content(const char *zDir){
   DIR *d;
   int origSize;
+  int dotFlag;
   struct dirent *pEntry;
   Blob path;
+  dotFlag = find_option("dotfiles","d",0)!=0;
 
   blob_zero(&path);
   blob_append(&path, zDir, -1);
   origSize = blob_size(&path);
   d = opendir(zDir);
   if( d ){
     while( (pEntry=readdir(d))!=0 ){
       char *zPath;
-      if( pEntry->d_name[0]=='.' ) continue;
+      if( pEntry->d_name[0]=='.' && !dotFlag) continue;
+      if( strcmp(pEntry->d_name, "..")==0 ||  strcmp(pEntry->d_name, ".")==0 ) continue;
       blob_appendf(&path, "/%s", pEntry->d_name);
       zPath = blob_str(&path);
       if( file_isdir(zPath)==1 ){
         add_directory_content(zPath);
       }else if( file_isfile(zPath) ){
@@ -112,10 +115,14 @@
 **
 ** Usage: %fossil add FILE...
 **
 ** Make arrangements to add one or more files to the current checkout
 ** at the next commit.
+**
+** When adding files recursively, by default files or directories
+** starting with a . (dot), will not be added. This behaviour can be changed
+** by the optional -dotfiles flag.
 */
 void add_cmd(void){
   int i;
   int vid;
   Blob repo;

drh added on 2009-08-14 16:20:50:
Added with check-in [5bc5e88c86130400c184ba93b2470e7009f909c5]