Anonymous avatar Anonymous committed 994c5d2

added plans to readme

Comments (0)

Files changed (1)

     [extensions]
     hgattic = /path/to/hgattic/repo/attic.py
 
-If you need any help, feel free to contact me via email: after.fallout@gmail.com (english please :-), my french and german aren't very good yet). I live in Montana, USA (GMT -7) and most days I frequently check my email between 7am and 10pm.
+If you need any help, feel free to contact me via email: after.fallout@gmail.com
+(english please :-), my french and german aren't very good yet). I live in
+Montana, USA (GMT -7) and most days I frequently check my email between 7am and
+10pm.
 
 Patches/contributions are welcome, preferably (in no order):
 1. create a fork/queue on bitbucket
-2. email patch (attachments please, Thunderbird and Gmail both mess with whitespace)
+2. email patch (attachments please, Thunderbird and Gmail both mess with
+   whitespace)
 3. just ask for write access to the repository on bitbucket
-
+4. create a patch repository that I can pull directly into my attic (by far the
+   easiest way for me; right now with a queue I grab the patches and put them in
+   my attic anyways)
 
 If you choose to email a patch, you can add the following to your hgrc for patchbomb:
     [defaults]
     from = your name <your@email>
     to = after.fallout@gmail.com
 
+#plans
 
-#Known issues
+1.0 - stablization, plan to tag around Jan 30
 
-None
+1.1, 1.2:
+  - overlays
+  - mq-like toolkit
 
-#Potential future work
+future thoughts (possibly unnecessary, thoughts incomplete):
+  - allow multiple queues to be active at once as if they were branches
+  - create merge-patches signifying a merge between a queue and either another
+    queue or a changeset
+  - attempt to eliminate reasoning for the pbranch extension
+  - not sure yet why merge-patches are a good idea (why not just allow multiple
+    queues and easy rebasing of queues)
+
+## overlays
+
+new command: hg attic-overlay [--remove] name
+alias overlay
+
+adds an overlay to the current repository
+
+    An overlay is a patch that applies and unapplies cleanly and doesn't
+    interact with any other changes. When an overlay is added, it will be
+    transparently be removed before any working copy changing commands run
+    and immediately added back on after the command finishes.
+options:
+    --remove  removes an overlay
+
+overlay will:
+1. add the patch name to .overlays
+2. apply the overlay
+
+any command that modifies the status of the working copy (update, shelve,
+unshelve, commit, qnew, record, ...) will be wrapped to ensure (plan on handling
+bundled extensions and core commands):
+1. all overlays are removed from the working copy before the command executes
+2. overlays are reapplied after the command executes
+
+attic-display will be modified:
+1. include 'O' status alongside '*' and 'C'
+
+overlay --remove
+1. remove the patch name from .overlays
+
+## mq-like toolkit
+
+intended to potentially replace mq itself
+1. compacted commandset (go over existing commands to decide necessity)
+2. use .hg/attic/[queue name] for folder instead of .hg/patches
+3. allow interactive splitting of queues using an editor
+4. allow interactive joining of queues using an editor
+5. allow interactive reordering of queues using an editor
+6. allow non-interactive splitting of queues (split on applied/unapplied
+   boundary)
+7. allow non-interactive joining of queues
+8. allow user to pull single patches out of queues and make them shelves on
+   their own
+9. allow user to insert a shelve into a queue
+
+thoughts for splitting, joining and reordering from an editor:
+executing hg qeditor queuename1 queuename2 (command name TBD)
+editor would open with a file in the following syntax:
+queuename1:
+    queuename1.patch1
+    queuename1.patch2
+    queuename1.patch3
+queuename2:
+    queuename2.patch1
+    queuename2.patch2
+    queuename2.patch3
+    queuename2.patch4
+    queuename2.patch5
+
+which you could then shuffle around to eg:
+queuename2:
+    queuename1.patch1
+    queuename1.patch3
+    queuename2.patch1
+    queuename2.patch3
+    queuename2.patch5
+newqueue:
+    queuename1.patch2
+    queuename2.patch2
+queuename2.patch4
+
+and it would take care of all the details of:
+1. moving q1p1 and q1p3 to the top of the q2 series file
+2. creating a new queue containg q1p2 and q2p2
+3. moving q2p4 out to a patch in the shelving area
+
+# Potential future work
 
 * fix bugs
 * regex/glob option to attic-display to filter out files from the list 
 * override import to provide default path for patches from attic (so
   you don't have to unshelve before finishing them or manually provide
   the path to import)
-* if mq is in use:
-  * override qnew to move an attic patch into mq 
-  * provide a new command to pull patches out of mq and into attic
-    (perhaps just "hg shelve -q")    
-  * possibly allow shelving/unshelving entire queue series into 
-    folders in attic:
-    
-    "hg shelve -q foldername --all" would:
-    1. pop all patches in mq
-    2. create folder "foldername" in attic
-    3. move all patches and the series file into this folder
-    
-    "hg shelve -q foldername --applied"
-    1. split series into two parts: applied and unapplied
-    2. pop all patches in mq
-    3. create folder "foldername" in attic
-    4. move all patches in applied list into the attic and 
-       remove them from series
-    
-    "hg shelve -q foldername --unapplied"
-    (same thing with unapplied patches)
-    
-    "hg unshelve -q foldername"
-    1. "hg shelve -q defaultfolder --all"
-    2. move contents of foldername into the patches dir
-* provide new commands for dealing with patches like import/export (don't 
-  know if this is really necessary)
+* some kind of patchbomb integration would be nice
+* provide new commands for dealing with patches like qimport (don't
+  know if this is really necessary), also consider mbox-import or something like
+  it
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.