Ticket #1465 (new enhancement)
Opened 7 years ago
Last modified 14 months ago
Trac could use a distributed VCS storage
| Reported by: | jens@… | Owned by: | cboos |
|---|---|---|---|
| Priority: | lowest | Milestone: | next-major-0.1X |
| Component: | wiki system | Version: | 0.8.1 |
| Severity: | critical | Keywords: | objectstore |
| Cc: | davidf@…, leho@…, itamarost@… | ||
| Release Notes: | |||
| API Changes: | |||
Description
hi!
a friend and i are running a small publishing house, and are collaborating with trac and instant messaging - kudos to you, because it does just about all we need!
here's what trac doesn't do very well: we both use laptop computers, and are travelling quite often. in order to work on shared documents, we need to be online constantly, as conventiently most of our shared documents are in wiki format by now. it's not always possible to guarantee internet connetcivity, though...
i realise that subversion is not the ideal repository format for our needs, we really need something like monotone that works well with local repositories that can be merged with a central repository or updated from there. still, writing a whole set of tools such as trac offers on top of monotone would be quite tedious.
so, in a roundabout way what i'm asking is whether it would be possible to run trac in a 'local' mode where it reads the subversion repository information from a local copy _only_ (with limited history/changeset functionality, of course). in addition, trac should store all wiki, ticket and other data in a filesystem structure instead of a db that can also be manages via a seperate or the same subversion repository.
a "commit now" or "i'm online, try to merge with the central repository" button or something similar might be all that's left to make trac the ultimate in collaboration tools.
now being a developer myself in my day job, i realize that this could be a HUGE feature. depends on your architecture, and even if it lends itself to implement something like that, HUGE just reduces to LARGE.
still, i'd like to see it :)
Attachments
Change History
comment:1 Changed 7 years ago by anonymous
- Component changed from wiki to general
comment:2 Changed 7 years ago by cboos
The problem is that Trac doesn't use Subversion as a
backend for storing the wiki documents.
If that would be the case (as advocated in
TighterSubversionIntegration), you could work in a distributed
mode using SVK:
- you would have a central SVK repository in your office, as well as a central Trac on the same machine
- you would have your own SVK repository on your laptop, as well as a local Trac
- every local change made on the local Trac would be written in the local SVK repository
- when you want to synchronize, simply synchronize repositories at the SVK level.
I always thought that it was not a good idea to re-create a (simple)
versioning system for versioning Trac's content, rather than using
SVN. Now I think it would be really a bad idea to re-create
a "light" distributed versioning system, given the complexity of such
a thing, and the fact that a good alternative exist.
comment:3 Changed 6 years ago by anonymous
I don't care how it is done, but the ability to sync trac pages and tickets would be of huge benefit to me. I spend half my time working on a laptop anywhere from my back garden, to the top of a mountain. Network connectivity is lacking most of the time and whilst I really like Trac the inability to work 'offline' is a major problem for me.
I need to grab the latest trac info before I leave the network and sync it when I re-connect.
comment:4 Changed 6 years ago by cmlenz
- Component changed from general to wiki
comment:5 Changed 6 years ago by cboos
- Keywords objectstore added
- Owner changed from jonas to cboos
Using mergeable repositories as the storage backend
for Trac would make this possible.
See also #1132.
comment:7 Changed 5 years ago by cboos
- Summary changed from have trac store wiki pages in a filesystem to Trac could use a distributed VCS storage
Changing the summary, so that one doesn't mix its purpose with simple caching (like #1216).
comment:8 Changed 4 years ago by davidf@…
- Cc davidf@… added
comment:9 Changed 4 years ago by cboos
Of interest:
- there's a new-gen CVSTrac in the works that is build around a new distributed version control system using a single SQLite as the storage backend, Fossil. See its Principle of Operation documentation.
- a recent discussion thread about distributed bug tracking, in the Mercurial mailing list
comment:10 Changed 22 months ago by cboos
- Milestone changed from 2.0 to unscheduled
Milestone 2.0 deleted
comment:11 Changed 21 months ago by anatoly techtonik <techtonik@…>
I may propose the following plan:
- merge tracd and trac-admin into single trac utility
- trac init creates default environment in .trac subdir in current directory
- if there is are version control folders like .hg or .svn in current directory - they are automatically imported into trac browser
- trac serve launches trac on port 8080
In future:
- trac sync <URL> - syncronize with remote trac - it may be web-based or command line operation
See how can we use operational transformation protocol http://www.waveprotocol.org/whitepapers/operational-transform
comment:12 Changed 20 months ago by cboos
- Milestone changed from triaging to next-major-0.1X
- Priority changed from normal to lowest
- Severity changed from normal to critical
This is definitely something which would be great to achieve in the long run.
comment:13 Changed 17 months ago by lkraav <leho@…>
- Cc leho@… added
comment:14 Changed 17 months ago by itamaro
- Cc itamarost@… added
comment:15 Changed 14 months ago by lkraav <leho@…>
something related i discovered today: https://github.com/andychilton/cil



sorry, should be 'general', not 'wiki'