changeset 14:5f95af14b51c

notes
author Jeff Hammel <jhammel@mozilla.com>
date Sun, 24 Mar 2013 12:46:35 -0700
parents 584a847d2491
children 743c920bc041
files silvermirror-whitepaper.txt
diffstat 1 files changed, 35 insertions(+), 24 deletions(-) [+]
line wrap: on
line diff
--- a/silvermirror-whitepaper.txt	Sat Apr 09 12:10:19 2011 -0700
+++ b/silvermirror-whitepaper.txt	Sun Mar 24 12:46:35 2013 -0700
@@ -1,4 +1,4 @@
-SilverMirror Whitepaper
+= SilverMirror Whitepaper =
 
 It is necessary to maintain parallel directory structures of various  
 resources across an arbitrary number of computers. The traditional  
@@ -12,9 +12,10 @@
 canonical trunk exists) is ideally suited to provide mirroring of  
 desired resources across computers.
 
-Implementation
+== Implementation ==
 
-A front end to a DVCS - most likely mercurial but potentially bzr -  
+A front end to a DVCS or other - unison is completed,
+mercurial is up next -
 will be written to keep resources in sync across an arbitrary number  
 of computers. The front end, called SilverMirror, may be used to push  
 or pull changes to resources. Optionally, a daemon will monitor  
@@ -28,7 +29,7 @@
 pattern may be ignored, either globally or on a per resource basis,  
 for the purpose of versioning.
 
-Configuration
+== Configuration ==
 
 SilverMirror is configured via an INI file containing a section for  
 each resource and a section for application configuration.
@@ -61,18 +62,18 @@
 In order to ensure coherency among resources, all relevant  
 configuration options must be synced prior to push/pull transactions.
 
-Default Configuration:
+Default Configuration::
 
-[::SilverMirror::]
-conflict = ClobberRemote
+  [::SilverMirror::]
+  conflict = ClobberRemote
 
-Example of a more complex configuration:
+Example of a more complex configuration::
 
-[::SilverMirror::]
-conflict.push = ClobberRemote
-conflict.pull = ClobberLocal
+  [::SilverMirror::]
+  conflict.push = ClobberRemote
+  conflict.pull = ClobberLocal
 
-Push
+== Push ==
 
 Push changes to remote resources. When resources are pushed, first  
 changes are pulled from each remote host in turn, conflicts between  
@@ -85,22 +86,22 @@
 pushed to the repository. When a conflict occurs between local  
 resources and remote resources, the conflict handler is used.
 
-Pull
+== Pull ==
 
 Get changes to the cloud filesystem resources. If no host is  
 specified, pull changes from all known + accessible hosts.
 
-Namespaced Resources
+== Namespaced Resources ==
 
 It is possible to maintain versioning of a subdirectory within a  
 resource.
 
-Example:
+Example::
 
-[docs]
-directory = /path/to/docs
+  [docs]
+  directory = /path/to/docs
 
-[docs:private]
+  [docs:private]
 
 This configuration snippet describes a resource, [docs:private],  
 namespaced within the [docs] resource. [docs:private] inherits  
@@ -120,7 +121,7 @@
 was specified in the directory option of the [docs:private] section,  
 it would be joined with the base directory of [docs].
 
-Behavior on Conflicts
+== Behavior on Conflicts ==
 
 Conflict handlers are set via setuptools entry points. Several  
 conflict handlers are provided with SilverMirror:
@@ -137,14 +138,14 @@
 
 silvermirror push -d ClobberRemote
 
-Command Line Usage
+== Command Line Usage ==
 
 silvermirror [push|pull] [resource] [options]
 
 In the simplest invocation, SilverMirror is used with no command line  
-arguments:
+arguments::
 
-silvermirror
+  silvermirror
 
 This pushes changes of the resource as determined by the current  
 working directory after pulling outstanding changes from all  
@@ -191,7 +192,7 @@
 automatically ignore. In a future implementation, these resources  
 would optionally be checked out or updated upon a pull.
 
-Automatic Syncronization
+== Automatic Syncronization ==
 
 SilverMirror includes a script that will automatically invoke  
 syncronizing the resources in a specified period of time. This daemon,  
@@ -205,7 +206,12 @@
 As an alternative, the silvermirror program may be invoked from a cron  
 job.
 
-Future Work
+== Events ==
+
+SilverMirror [TODO] may be hooked up to an event listener for
+filesystem changes and sync on them.
+
+== Future Work ==
 
 SilverMirror implements a cloud filesystem which may be accessed  
 nearly  transparently by an arbitrary number of computers. Several  
@@ -235,3 +241,8 @@
 all of the files necessary to create a new SilverMirror node.
 
  * SilverMirror + Firefox Sync
+
+== Vision ==
+
+Essentially, SilverMirror is intended as a portable filesystem on a
+filesystem type interface.