Index: src/add.c
==================================================================
--- src/add.c
+++ src/add.c
@@ -123,10 +123,17 @@
     add_one_file(zName, vid, pOmit);
   }
   db_finalize(&q);
   db_multi_exec("DELETE FROM sfile");
 }
+
+
+
+
+
+
+
 
 /*
 ** COMMAND: add
 **
 ** Usage: %fossil add FILE...
@@ -224,10 +231,56 @@
     }
   }
   closedir(d);
   blob_reset(&path);
 }
+
+/*
+** COMMAND: nop
+**
+** Usage: %fossil nop FILE...
+**
+** Do nothing to one or more files from the tree.
+**
+** This command does not remove the files from disk.  It just marks the
+** files as no longer being part of the project.  In other words, future
+** changes to the named files will not be versioned.
+*/
+void nop_cmd(void){
+  int i;
+  int vid;
+
+  db_must_be_within_tree();
+  vid = db_lget_int("checkout", 0);
+  if( vid==0 ){
+    fossil_panic("no checkout to remove from");
+  }
+  db_begin_transaction();
+  for(i=2; i<g.argc; i++){
+    char *zName;
+
+    zName = mprintf("%/", g.argv[i]);
+    if( file_isdir(zName) == 1 ){
+      del_directory_content(zName);
+    } else {
+      char *zPath;
+      Blob pathname;
+      file_tree_name(zName, &pathname, 1);
+      zPath = blob_str(&pathname);
+      if( !db_exists(
+               "SELECT 1 FROM vfile WHERE pathname=%Q AND NOT deleted", zPath) ){
+        fossil_fatal("not in the repository: %s", zName);
+      }else{
+        db_multi_exec("UPDATE vfile SET deleted=0, chnged=0 WHERE pathname=%Q", zPath);
+        printf("NOP        %s\n", zPath);
+      }
+      blob_reset(&pathname);
+    }
+    free(zName);
+  }
+  db_end_transaction(0);
+}
 
 /*
 ** COMMAND: rm
 ** COMMAND: delete
 ** COMMAND: dismiss

Index: src/schema.c
==================================================================
--- src/schema.c
+++ src/schema.c
@@ -415,10 +415,11 @@
 @ -- 
 @ --
 @ CREATE TABLE vfile(
 @   id INTEGER PRIMARY KEY,           -- ID of the checked out file
 @   vid INTEGER REFERENCES blob,      -- The baseline this file is part of.
+@   nop BOOLEAN DEFAULT 0,            -- True if no operation to be performed. User toggled.
 @   chnged INT DEFAULT 0,             -- 0:unchnged 1:edited 2:m-chng 3:m-add
 @   deleted BOOLEAN DEFAULT 0,        -- True if deleted 
 @   isexe BOOLEAN,                    -- True if file should be executable
 @   rid INTEGER,                      -- Originally from this repository record
 @   mrid INTEGER,                     -- Based on this record due to a merge