-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version Control System (VCS) #4
Comments
The AcidFS library (available at http://acidfs.readthedocs.org/en/latest) seems very promising: Basically, it's a Python integration of GIT repositories. It could be used to replace NoTex.ch's current storage back-end,which is a combination of metadata being stored in an SQL database, and data as a flat list on the hard disk, with a GIT repository for data with search indices/metainfo in an SQL database. |
The basic problem is that a VCS (like GIT) collides with client side encryption (see #9); figure out a reasonable solution that ensures that the GIT repositories are encrypted without compromising basic VCS features:
|
…on AcidFS (GIT); have not completely removed the direct filesystem based approach yet though.
The *underlying* problem was the fact the path renaming was not correctly implemented.
The `version-key` for `value-key` used to play the role of a *reference counter* for a particular piece of `value` (data); this is not required anymore due to the storage backend switch to AcidFS. But we *still* need to keep reference counting for the data `size` since that is still tracked directly in the database.
In theory DB commits and AcidFS commits should be in sync: Based on this assumption shifting `transaction.commit` from `property.py` to `ext/db.py` should work. Actually it *does* work, but somehow AcidFS only commits the most recent `write` .. seems like a bug of AcidFS to me, but due to the complexity of this "test" case it could also be a flawed conclusion on my part.
Renaming a path should properly be reflected in the meta information (especially when a directory is involved)
Using `master` for AcidFS to have access to most recent bug fixed.
Have added `description` and generic `FS_ACID_REPO_CFG` possibility.
Ensured that `post-update` hook gets executed after a commit; otherwise `git` is not able to clone the repository over `http`.
There is a *reason* why the `transaction` package is decoupled from `acidfs`: Therefore making coupling **explicit** by using `VcsTransactionMixin` with only one `transact` method does not seem exaggerated, and seems to make sense.
Ensured that GIT uses correct *author* and *committer* from the very beginning.
Have reset application to have a clean state between DB and |
It should be possible to version the project/documents (using either GIT or - more likely - something much simpler).
The text was updated successfully, but these errors were encountered: