Andrew Wong <andrew.k...@gmail.com> writes:

> This allows users to edit the todo file while they're stopped in the
> middle of an interactive rebase. When this action is executed, all
> comments from the original todo file are stripped, and new help messages
> are appended to the end.
>
> Signed-off-by: Andrew Wong <andrew.k...@gmail.com>
> ---
>  Documentation/git-rebase.txt |  5 ++++-
>  git-rebase--interactive.sh   | 16 ++++++++++++++++
>  git-rebase.sh                | 14 ++++++++++++++
>  3 files changed, 34 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
> index fd535b0..da067ec 100644
> --- a/Documentation/git-rebase.txt
> +++ b/Documentation/git-rebase.txt
> @@ -12,7 +12,7 @@ SYNOPSIS
>       [<upstream>] [<branch>]
>  'git rebase' [-i | --interactive] [options] [--exec <cmd>] [--onto <newbase>]
>       --root [<branch>]
> -'git rebase' --continue | --skip | --abort
> +'git rebase' --continue | --skip | --abort | --edit-todo
>  
>  DESCRIPTION
>  -----------
> @@ -245,6 +245,9 @@ leave out at most one of A and B, in which case it 
> defaults to HEAD.
>  --skip::
>       Restart the rebasing process by skipping the current patch.
>  
> +--edit-todo::
> +     Edit the todo list during an interactive rebase.
> +
>  -m::
>  --merge::
>       Use merging strategies to rebase.  When the recursive (default) merge
> diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
> index 4d57e50..ca55fac 100644
> --- a/git-rebase--interactive.sh
> +++ b/git-rebase--interactive.sh
> @@ -792,6 +792,22 @@ skip)
>  
>       do_rest
>       ;;
> +edit-todo)
> +     sed -i '/^#/d' "$todo"
> +     append_todo_help

I do not think the "sed -i" in-place edit is portable.  AFAIK, it is
not even in POSIX.1

In any case, what information are you discarding and then replacing
with the standard boilerplate?

> diff --git a/git-rebase.sh b/git-rebase.sh
> index 15da926..e660203 100755
> --- a/git-rebase.sh
> +++ b/git-rebase.sh
> @@ -38,6 +38,7 @@ C=!                passed to 'git apply'
>  continue!          continue
>  abort!             abort and check out the original branch
>  skip!              skip current patch and continue
> +edit-todo!         edit the todo list during an interactive rebase
>  "
>  . git-sh-setup
>  . git-sh-i18n
> @@ -194,6 +195,10 @@ do
>               test $total_argc -eq 2 || usage
>               action=${1##--}
>               ;;
> +     --edit-todo)
> +             test $total_argc -eq 2 || usage
> +             action=${1##--}
> +             ;;
>       --onto)
>               test 2 -le "$#" || usage
>               onto="$2"
> @@ -306,6 +311,12 @@ then
>       fi
>  fi
>  
> +if test "$action" = "edit-todo" &&
> +     test "$type" != "interactive"

I do not see a need to split this short expression into two lines.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to