Feature Request: Create filesystem representation of group (kinda the reversal of index)

As we all know, DT3 can handle files in two ways:

  1. Import - the default, copies/moves files into the db
  2. Index - creates links to files outside the db

I would like to propose an option for groups of files within a db, where DT is creating a “representation” of said group in the filesystem that gets updated when stuff changes inside the db - it’s kinda like a reverse index.

The representation in the filesystem should behave in a similar way as an indexed folder:

  • Renaming a file in the db leads to a rename in the “representation” in the filesystem and vice versa
  • Moving files and folders within a representation should update the db accordingly. Moving a file/folder out of the representation should be noticed by DT and a pop-up should be shown asking if we want to recreate said file/folder within the representation or delete said file/folder out of the db. Moving a group/document out of the represented group should remove that file/folder from the representation
  • Deleting a file/folder inside the DB should delete the file/folder within the representation. Vice versa there should be a pop-up asking to either recreate said file within the representation or to delete from db as well.
  • Duplicates should be handled similarly: they get created within the db and the filesystem
  • Replicates of Files will not be visible within the representation

In many cases this representation feature would work just like we already would expect from an indexing workflow, with the crucial difference that DT would be the primary source of truth. This is crucial to enable self-contained syncing of dbs within DT but still have the ability to use representations of certain groups to work with the data in other apps, if the need arises.

My use case for this would be that I would love to use Obsidian which is a kind of Markdown IDE that is designed to access a folder with lots of files. I have two computers in use, so at the moment I would need to index a cloud synced folder to be able to work on both machines. Indexing and synching brings with it a whole class of problems that I wouldn’t need to deal with if DT would be the single source of truth.

Thanks for your consideration!

Which means that DT has to be running at all times. And it would have to do what you want if you type rm file or touch file on the command line.

How? I’m not aware of any filesystem that permits identically named files in the same directory.

It would work like with index files and would synchronize the state when DT is restarted.

If you duplicate a file within DT e.g. example.txt you’ll get a file called example copy.txt so that should work.

Which might be a tad too late to popup a dialog asking about removal of a file, mightn’t it?

If you duplicate it into the same group as the original. Not so, if you duplicate it into a different group in DT. In both cases, the file in the indexed folder gets a different name (“-1” appended for the first duplicate).

“DT has detected that example.txt has been deleted from the representation since DT last time ran. Do you want to recreate it in the representation or do you want to delete it from the db as well?”

Seems reasonable and not too late.

If that’s the case, I don’t see the problem you raised.