Commits

Anonymous committed a4c6b41

some minor fixes

Comments (0)

Files changed (1)

-== Tasks extension for mercurial ==
-
-Tasks are collections of contiguous changesets.  A task can be short or long lived, but it only available locally and are not pushed.  Tasks allow you to start and suspend changes to your files.  By default, the push command will not push incompleted tasks.  A task can be in one of 3 states:
-        * new - this task has no changesets only a parent node
-        * active - a task with some changesets but not complete
-        * complete - a task with some changesets and marked as complete
-
-Use 'hg tasks' to list all new and active tasks.  'hg tasks --all' will show completed tasks along with those that are new and active.
-
-This extension adds two new options to push:
-        * --all-tasks        will push all taks even incomplete ones
-        * --completed-tasks  will only push completed tasks
-
-Use 'hg update [NAME]' to update to the tip node of a task and set it as current.  When a task is set as current, all subsequent commits will be assigned to the task.  
-
-If the auto.track.new option is set newly created tasks will automatically be set as current.
-
-=== enabling the tasks extension ===
-To enable this extension download the [[http://bitbucket.org/alu/hgtasks/src/tip/hgext/tasks.py|tasks.py]] and save it somewhere on your system.  Then edit your config file so that it has something similar to:
-{{{
-     [extensions]
-     config = /my/path/to/tasks.py
-}}}
-
-=== optional behaviour ===
-The tasks extension can automatically mark newly created tasks as current if you set the auto.track.new.  This will allow you to start work on a task right away.  To enable add this to your config:
-{{{
-     [tasks]
-     auto.track.new = True
-}}}
-
-=== commands ===
-
-List tasks:
-{{{
-      $ hg tasks
-      $ hg tasks --all            # will show completed tasks as well
-}}}
-Create a new task:
-{{{
-      $ hg task mytask
-}}}
-Rename a task:
-{{{
-      $ hg task -m mytask mynewtaskname
-}}}
-Mark a task as current:
-{{{
-      $ hg update mytask
-}}}
-Delete a task:
-{{{
-      $ hg task mytask -d
-      $ hg task mytask --delete
-}}}
-Delete all tasks:
-{{{
-      $ hg tasks -A
-      $ hg tasks --delete-all
-}}}
-Delete complete tasks only:
-{{{
-      $ hg tasks -C
-      $ hg tasks --delete-complete
-}}}
-Get information on a task:
-{{{
-      $ hg task mytask -i
-      $ hg task mytask --info
-}}}
-Resume a completed task (will mark a completed task as no complete):
-{{{
-      $ hg task mytask -u
-      $ hg task mytask --resume
-}}}
-Trim revisions off a task:
-{{{
-      $ hg task mytask -t -r 3
-      $ hg task mytask --trim --rev 3
-}}}
-
-=== additional push options ===
-This extension changes the behaviour of the 'push' command and adds two new options.
-
-When performing an 'hg push' you will be warned and the operation will abort if you have incomplete tasks in your outgoing changesets.  This is to stop you from pushing incomplete work.  When this occurs, you can do one of two things:
-
-1. push the incomplete work, use the --all-tasks option:
-{{{
-      $ hg push --all-tasks
-}}}
-2. push only completed tasks (all revisions belongin to an incomplete task will be stripped from the outgoing changesets), use the --completed-tasks option:
-{{{
-      $ hg push --completed-tasks
-}}}
-
-Note that push ignores tasks that are new (i.e. not complete but have no changesets attached). 
-
-=== using log with tasks ===
-The log function is wrapped to accept task names as an argument and will show only changesets that belong to a particular gtask.
-
-{{{
-      $ hg log mytask
-}}}
-
-=== implementation notes ===
-
-Task information is stored in three files:
-{{{
-      .hg/tasks              # new and active task info
-      .hg/tasks.complete     # completed task info
-      .hg/tasks.current      # the current task
-}}}
-
-The file format for the tasks and tasks.complete filesa are as follows:
-{{{
-      <taskname> <parent_rev>,<rev_1>,<rev_2>,<rev_3>
-      <taskname> <parent_rev>
-}}}
-The first entry shows a task with 3 changesets attached against it.  The second entry is a newly created task with no changesets - only a parent.  Here is an example of the above:
-{{{
-      task1 2ed12f44801b412ed18e758f709aae4034a9ad4f,9ab60daf8b432d2db7639dc3d81f5319900570cd
-      task2 2ed12f44801b412ed18e758f709aae4034a9ad4f
-}}}
-The above two tasks were created on the same revision (they share the same parent 2ed12f...) but only task1 has any work done against it.
-
-==== request for help/improvements ====
-
-This extension was hacked together very quickcly and was _heavily_ based on the bookmarks extension distributed with mercurial.  I need something a bit different for my needs and wanted an extension that provided a todo list type of functinoality and protected me from accidentally pushing incomplete work.
-
-Code optimizations/recommendations/patches are welcome.  I know that this extension does not make the best use of either the Python language or the Mercurial API.
-
-Some things I'd apprectiate feedback/discussion on:
-* Should we store all changesets on a task or just start->finish?
-* Should tasks be limited to contiguous changesets or would it make sense to have a task that starts and stops  multiple times?
-* The method I have for dealing with strip is simple but is there a smarter way to handle it?
-* The custom push method makes use of the findoutgoing() method which is also called by prepush() by the default localrepo.push() method.  Is there any smart way I can avoid having this method called twice on every push?
-* File format: any recommendations?
-* Display format: any recommendations?  I noticed talk on the mercurial lists that the bookmarks format is non-standard and may change.
-* 'task' as a name: 'todo', 'thread',.....?
-* Should 'new' tasks not be pushed - you could use these new tasks as safeguards to prevent pushing until all tasks are complete.
-
-
+== Tasks extension for mercurial ==
+
+Tasks are collections of contiguous changesets.  A task can be short or long lived, but it only available locally and are not pushed.  Tasks allow you to start and suspend changes to your files.  By default, the push command will not push incompleted tasks.  A task can be in one of 3 states:
+        * new - this task has no changesets only a parent node
+        * active - a task with some changesets but not complete
+        * complete - a task with some changesets and marked as complete
+
+Use 'hg tasks' to list all new and active tasks.  'hg tasks --all' will show completed tasks along with those that are new and active.
+
+This extension adds two new options to push:
+        * --all-tasks        will push all taks even incomplete ones
+        * --completed-tasks  will only push completed tasks
+
+Use 'hg update [NAME]' to update to the tip node of a task and set it as current.  When a task is set as current, all subsequent commits will be assigned to the task.  
+
+If the auto.track.new option is set newly created tasks will automatically be set as current.
+
+=== enabling the tasks extension ===
+To enable this extension download the [[http://bitbucket.org/alu/hgtasks/src/tip/hgext/tasks.py|tasks.py]] and save it somewhere on your system.  Then edit your config file so that it has something similar to:
+{{{
+     [extensions]
+     config = /my/path/to/tasks.py
+}}}
+
+=== optional behaviour ===
+The tasks extension can automatically mark newly created tasks as current if you set the auto.track.new.  This will allow you to start work on a task right away.  To enable this functionality, add this to your config:
+{{{
+     [tasks]
+     auto.track.new = True
+}}}
+
+=== commands ===
+
+List tasks:
+{{{
+      $ hg tasks
+      $ hg tasks --all            # will show completed tasks as well
+}}}
+Create a new task:
+{{{
+      $ hg task mytask
+}}}
+Rename a task:
+{{{
+      $ hg task -m mytask mynewtaskname
+}}}
+Mark a task as current:
+{{{
+      $ hg update mytask
+}}}
+Delete a task:
+{{{
+      $ hg task mytask -d
+      $ hg task mytask --delete
+}}}
+Delete all tasks:
+{{{
+      $ hg tasks -A
+      $ hg tasks --delete-all
+}}}
+Delete complete tasks only:
+{{{
+      $ hg tasks -C
+      $ hg tasks --delete-complete
+}}}
+Get information on a task:
+{{{
+      $ hg task mytask -i
+      $ hg task mytask --info
+}}}
+Resume a completed task (will mark a completed task as not complete):
+{{{
+      $ hg task mytask -u
+      $ hg task mytask --resume
+}}}
+Trim revisions off a task:
+{{{
+      $ hg task mytask -t -r 3
+      $ hg task mytask --trim --rev 3
+}}}
+
+=== additional push options ===
+This extension changes the behaviour of the 'push' command and adds two new options.
+
+When performing an 'hg push' you will be warned and the operation will abort if you have incomplete tasks in your outgoing changesets.  This is to stop you from pushing incomplete work.  When this occurs, you can do one of two things:
+
+1. push the incomplete work, use the --all-tasks option:
+{{{
+      $ hg push --all-tasks
+}}}
+2. push only completed tasks (all revisions belongin to an incomplete task will be stripped from the outgoing changesets), use the --completed-tasks option:
+{{{
+      $ hg push --completed-tasks
+}}}
+
+Note that push ignores tasks that are new (i.e. not complete but have no changesets attached). 
+
+=== using log with tasks ===
+The log function is wrapped to accept task names as an argument and will show only changesets that belong to a particular gtask.
+
+{{{
+      $ hg log mytask
+}}}
+
+=== implementation notes ===
+
+Task information is stored in three files:
+{{{
+      .hg/tasks              # new and active task info
+      .hg/tasks.complete     # completed task info
+      .hg/tasks.current      # the current task
+}}}
+
+The file format for the tasks and tasks.complete filesa are as follows:
+{{{
+      <taskname> <parent_rev>,<rev_1>,<rev_2>,<rev_3>
+      <taskname> <parent_rev>
+}}}
+The first entry shows a task with 3 changesets attached against it.  The second entry is a newly created task with no changesets - only a parent.  Here is an example of the above:
+{{{
+      task1 2ed12f44801b412ed18e758f709aae4034a9ad4f,9ab60daf8b432d2db7639dc3d81f5319900570cd
+      task2 2ed12f44801b412ed18e758f709aae4034a9ad4f
+}}}
+The above two tasks were created on the same revision (they share the same parent 2ed12f...) but only task1 has any work done against it.
+
+==== request for help/improvements ====
+
+This extension was hacked together very quickcly and was _heavily_ based on the bookmarks extension distributed with mercurial.  I needed something a bit different for my needs and wanted an extension that provided a todo list type of functionality and protected me from accidentally pushing incomplete work.
+
+Code optimizations/recommendations/patches are welcome.  I know that this extension does not make the best use of either the Python language or the Mercurial API.
+
+Some things I'd apprectiate feedback/discussion on:
+* Should we store all changesets on a task or just start->finish?
+* Should tasks be limited to contiguous changesets or would it make sense to have a task that starts and stops  multiple times?
+* The method I have for dealing with strip is simple but is there a smarter way to handle it?
+* The custom push method makes use of the findoutgoing() method which is also called by prepush() by the default localrepo.push() method.  Is there any smart way I can avoid having this method called twice on every push?
+* File format: any recommendations?
+* Display format: any recommendations?  I noticed talk on the mercurial lists that the bookmarks format is non-standard and may change.
+* 'task' as a name: 'todo', 'thread',.....?
+* Should 'new' tasks not be pushed - you could use these new tasks as safeguards to prevent pushing until all tasks are complete.
+