Re: [Nautilus-list] monitoring the metafiles..



on 10/16/01 11:29 PM, Tuomas Kuosmanen at tigert ximian com wrote:

> .------------------------------------------------------------.
> | The only thing we need (again) is to make Nautilus monitor |
> | its own metafiles so that the added emblems get updated in |
> | the directory view.                                        |
> `------------------------------------------------------------'

Shared access to metadata, where other programs can change it, and the
changes will be reflect in Nautilus, is hopefully one of the things we get
when we put metadata support into gnome-vfs.

Monitoring the metadata files for changes before we do that is something
that I think would be OK. Note that since there's no file locking, there's
nothing to prevent Nautilus from overwriting changes to metadata before it
notices them, and nothing to prevent the other program from overwriting
Nautilus's changes to metadata either.

That's another thing that would probably need to be taken care of by putting
the metadata support into gnome-vfs.

If we decide that we want this feature without waiting for the gnome-vfs
one, then here are the implementation issues:

    1) the metadata server has to monitor all the metafiles
    2) when re-reading the metafile, we need to remember the old values of
metadata and do a 3-way merge, like the one cvs does
    3) unlike cvs, we have to decide how to resolve "conflicts" -- can't
just leave them in and let the user edit them

It just occurred to me that another possibility would be talking to the
Nautilus metadata server using CORBA. Just before we released Nautilus 1.0,
we changed things so that all metadata I/O is done by a server (which is
currently in the Nautilus executable) so that metadata changes by components
would not trample over changes being made in Nautilus and vice versa.

While we didn't intend for this to be used externally, I think it possibly
could be. The details are in libnautilus-private -- including the idl.

    -- Darin





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]