Commits

Yujie Wu committed 5380b15

Replaced the language in syntax highlighting from #!bash to #!console.

  • Participants
  • Parent commits 21f18dc

Comments (0)

Files changed (1)

 Here we document hgflow -- a Mercurial extension
 that implements a generalized Driessen branching model.
 
-<<toc 3>>
+<<toc / 3>>
 \\
 \\
 \\
 \\
 = What's New =
+== v0.9.6 (to be officially released) ==
+* Added {{{--stamp}}} option for all actions or commands that can commit changes. What this option does is to append a user-specified string (such as an issue key) in all commit messages of this hg-flow command. For example:
+{{{
+#!console
+$ hg flow feature finish --stamp "Issue-20" --dry-run --verbose
+flow: This is a dry run.
+flow: note: Hg command history:
+flow: note:   hg commit --message "flow: Closed <feature> 'b'. Issue-20" --close-branch
+flow: note:   hg update develop 
+flow: note:   hg merge feature/b 
+flow: note:   hg commit --message "flow: Merged <feature> 'b' to <develop> ('develop'). Issue-20"
+}}}
+
 == v0.9.5 ==
 * Added {{{--user}}} for {{{init}}}, {{{start}}}, {{{finish}}}, and {{{promote}}} actions.
 * {{{--closed}}} is now an option of the {{{log}}} action. This option lets {{{log}}} show the revision history of both open and closed branches in the specified stream.
 * Added {{{--erase}}} for the {{{abort}}} action. This option enables you to erase (i.e., completely delete from the repository) the entire branch when you abort it. Check out {{{hg flow help @abort}}} for a bit more detail.
 * Now you can promote a {{{<develop>}}} branch directly to {{{<master>}}}, bypassing {{{<release>}}}. This feature provides a shortcut from the {{{<develop>}}} directly to {{{<master>}}}. I found it very useful especially for small projects, where you don't really need a "release" (or QA) stage and you want continuous deployment of newly developed features. Such a workflow can be considered as a simplified/reduced version of the Driessen's model and was promoted by some people (e.g., github, and they call it [[http://scottchacon.com/2011/08/31/github-flow.html|//github flow//]]). Example usage:
 {{{
-#!bash
-# Ensures the working directory is the <develop> branch that we want to release.
-hg flow develop
+#!console
+$ # Ensures the working directory is the <develop> branch that we want to release.
+$ hg flow develop
 
 # Now we release. With the '-t' option, you can supply a tag for the released snapshot in the <master> branch. The command takes the '--dry-run' option in order to show what exactly happens.
-hg flow develop promote -t "v0.9.5" --dry-run
+$ hg flow develop promote -t "v0.9.5" --dry-run
 flow: This is a dry run.
 flow: note: Hg command history:
 flow: note:   hg update default 
 the following command:
 
 {{{
-#!bash
-hg flow develop
-hg flow feature start A
+#!console
+$ hg flow develop
+$ hg flow feature start A
 }}}
 
 Now we have a branch: <feature-prefix>/A. Since we can consider any branch
 created whenever a new branch is created. In the example here, we have a natural
 stream: feature/A.
 {{{
-#!bash
-hg flow feature/A
-# Switch to the trunk of <feature/A>.
-# This command is largely equivalent to the more familiar command:
-#   hg flow feature A
+#!console
+$ hg flow feature/A
+$ # Switch to the trunk of <feature/A>.
+$ # This command is largely equivalent to the more familiar command:
+$ #   hg flow feature A
 
-hg flow feature/A start a1
-# Start a new branch in <feature/A>. The new branch is named after <feature-prefix>/A/a1.
+$ hg flow feature/A start a1
+$ # Start a new branch in <feature/A>. The new branch is named after <feature-prefix>/A/a1.
 
-hg flow feature/A a1
-hg flow feature/A finish
-# Finish the <feature-prefix>/A/a1 branch.
-# Merge it to the trunk of <feature/A>, and close it.
+$ hg flow feature/A a1
+$ hg flow feature/A finish
+$ # Finish the <feature-prefix>/A/a1 branch.
+$ # Merge it to the trunk of <feature/A>, and close it.
 }}}
 
 You can call <feature/A> as a substream of <feature>. Branches in <feature/A> are,
 as a regular branch in <feature>.
 
 {{{
-#!bash
-hg flow feature/A a1
-hg flow feature finish
-# Finish the <feature-prefix>/A/a1 branch.
-# Merge it to <develop>, and close it.
-# Note how the effect differs from that of the prior command: hg flow feature/A finish.
+#!console
+$ hg flow feature/A a1
+$ hg flow feature finish
+$ # Finish the <feature-prefix>/A/a1 branch.
+$ # Merge it to <develop>, and close it.
+$ # Note how the effect differs from that of the prior command: hg flow feature/A finish.
 }}}
 
 == Branches in Develop Stream ==
 and/or <feature>. Examples.
 
 {{{
-#!bash
-hg flow develop
-# Update workspace to <develop>'s trunk.
+#!console
+$ hg flow develop
+$ # Update workspace to <develop>'s trunk.
 
-hg flow develop start spring
-# Start a new branch called <develop-prefix>/spring.
+$ hg flow develop start spring
+$ # Start a new branch called <develop-prefix>/spring.
 
-hg flow develop/spring:feature start feature_for_spring_release
-# Start a new branch called <feature-prefix>/feature_for_spring_release.
-# This branch is started from <develop/spring> instead of <develop>.
-# Note the syntax for specifying the stream: <source-stream>:<stream>, which is
-# available since v0.9 and means that the action will operate on a branch in <stream>,
-# but the source (or destination) stream is not the default, but specified by <source-stream>.
-# This is a more general syntax. You can consider the familiar command:
-#   hg flow feature start <name>
-# as a shorthand of this command:
-#   hg flow develop:feature start <name>
+$ hg flow develop/spring:feature start feature_for_spring_release
+$ # Start a new branch called <feature-prefix>/feature_for_spring_release.
+$ # This branch is started from <develop/spring> instead of <develop>.
+$ # Note the syntax for specifying the stream: <source-stream>:<stream>, which is
+$ # available since v0.9 and means that the action will operate on a branch in <stream>,
+$ # but the source (or destination) stream is not the default, but specified by <source-stream>.
+$ # This is a more general syntax. You can consider the familiar command:
+$ #   hg flow feature start <name>
+$ # as a shorthand of this command:
+$ #   hg flow develop:feature start <name>
 
-hg flow develop/spring:feature finish
-# Finish a <feature> branch. Merge the branch to the trunk of <develop/sprint>, instead of <develop>.
+$ hg flow develop/spring:feature finish
+$ # Finish a <feature> branch. Merge the branch to the trunk of <develop/sprint>, instead of <develop>.
 }}}
 
 One special thing about <develop> substreams is that when a feature branch is being finished
 For example:
 
 {{{
-#!bash
-hg flow develop/spring:feature finish --dry-run
+#!console
+$ hg flow develop/spring:feature finish --dry-run
 flow: This is a dry run.
 flow: note: Hg command history:
 flow: note:   hg commit --message "flow: Closed <feature> 'new_spring_feature'." --close-branch
 
 The effects are similar for finishing a <release> branch. For example:
 {{{
-#!bash
-hg flow develop/spring:release finish --dry-run
+#!console
+$ hg flow develop/spring:release finish --dry-run
 flow: This is a dry run.
 flow: note: Hg command history:
 flow: note:   hg commit --message "flow: Closed <release> '2012_spring_release'." --close-branch
 Another special thing of <develop> branches is that when you finish a branch in <develop> stream (not
 in a develop substream though), a new <release> branch will be created. For example:
 {{{
-#!bash
-hg flow develop spring
-# Update workspace to <develop-prefix>/spring branch.
+#!console
+$ hg flow develop spring
+$ # Update workspace to <develop-prefix>/spring branch.
 
-hg flow develop finish --dry-run
+$ hg flow develop finish --dry-run
 flow: This is a dry run.
 flow: note: Hg command history:
 flow: note:   hg update develop/spring 
 = Initialization and Configuration =
 You have to initialize hgflow for every repository where you want to use hgflow.
 {{{
-#!bash
-cd <my_repository_dir>
-hg flow init
+#!console
+$ cd <my_repository_dir>
+$ hg flow init
 }}}
 The ##**flow init**## command will create a configuration file: ##**.flow**## in
 the root dir of the repository. Before doing so, it will ask you branch names or prefixes for each basic stream.
 = Commands =
 Basic syntax of hgflow commands:
 {{{
-#!bash
-hg flow {<stream> [<action> [<arg>...]] | <command>} [<option>...]
+#!console
+$ hg flow {<stream> [<action> [<arg>...]] | <command>} [<option>...]
 }}}
 where {{{<stream>}}} should be a (generalized) stream, which can be one of the basic streams:
 ##**master**##, ##**develop**##, ##**feature**##, ##**hotfix**##, ##**release**##, and ##**support**##, or a natural stream, e.g., ##**feature/log_options**##.