Re: [PATCH v1] rebase -m: Use empty tree base for parentless commits

2014-10-13 Thread Fabian Ruch
Hi, Junio C Hamano writes: Fabian Ruch baf...@gmail.com writes: diff --git a/git-rebase--merge.sh b/git-rebase--merge.sh index d3fb67d..3f754ae 100644 --- a/git-rebase--merge.sh +++ b/git-rebase--merge.sh @@ -67,7 +67,13 @@ call_merge () { GIT_MERGE_VERBOSITY=1 export

[PATCH v1] rebase -m: Use empty tree base for parentless commits

2014-10-09 Thread Fabian Ruch
`. Add a test. The test case rebases a single disconnected commit which creates an isolated file on master and, therefore, does not require a specific merge strategy. It is a mere sanity check. Reported-by: David M. Lloyd david.ll...@redhat.com Signed-off-by: Fabian Ruch baf...@gmail.com --- Hi David

Re: [PATCH v1] rebase -m: Use empty tree base for parentless commits

2014-10-09 Thread Fabian Ruch
Hi Junio, On 10/09/2014 09:05 PM, Junio C Hamano wrote: Fabian Ruch baf...@gmail.com writes: diff --git a/git-rebase--merge.sh b/git-rebase--merge.sh index d3fb67d..3f754ae 100644 --- a/git-rebase--merge.sh +++ b/git-rebase--merge.sh @@ -67,7 +67,13 @@ call_merge

Re: [PATCH v2 23/23] rebase -i: enable options --signoff, --reset-author for pick, reword

2014-09-21 Thread Fabian Ruch
Hi Michael, On 08/13/2014 02:47 PM, Michael Haggerty wrote: On 08/07/2014 01:59 AM, Fabian Ruch wrote: pick and reword are atomic to-do list commands in the sense that they open a new task which is closed after the respective command is completed. squash and fixup are not atomic. They create

Re: Please help provide clarity on git rebase internals

2014-09-19 Thread Fabian Ruch
Hi Colin, On 09/08/2014 01:25 PM, Colin Yates wrote: My understanding is that rebasing branch B onto branch A unrolls all of branch B's commits and then reduces them onto the HEAD of branch A. For example, I took featureA branch from develop three days ago. develop subsequently had commits

Re: [PATCH] t1503: test rev-parse --verify --quiet with deleted reflogs

2014-09-14 Thread Fabian Ruch
Hi David, On 09/14/2014 10:30 AM, David Aguilar wrote: Ensure that rev-parse --verify --quiet is silent when asked about deleted reflog entries. Signed-off-by: David Aguilar dav...@gmail.com --- This verifies and depends on refs: make rev-parse --quiet actually quiet.

Re: [RFC/PATCH 0/3] Teach revert/cherry-pick the --no-verify option

2014-09-05 Thread Fabian Ruch
Hi Johan, Johan Herland writes: A colleague of mine noticed that cherry-pick does not accept the --no-verify option to skip running the pre-commit/commit-msg hooks. neither git-cherry-pick nor git-revert execute the pre-commit or commit-msg hooks at the moment. The underlying rationale can be

[PATCH v3 00/27] Enable options --signoff, --reset-author for pick, reword, edit

2014-08-18 Thread Fabian Ruch
documented both in the git-rebase man page and the to-do list help text. Thanks for your time, Fabian Fabian Ruch (27): rebase -i: allow replaying commits with empty log messages rebase -i: allow squashing empty commits without complaints rebase -i: allow rewording empty commits without

[PATCH v3 03/27] rebase -i: allow rewording empty commits without complaints

2014-08-18 Thread Fabian Ruch
way but nothing more and the unchanged to-do list entry would not fail. Handle `reword` by cherry-picking the named commit and editing the log message using git commit --allow-empty --amend instead of git commit --amend. Add test. Signed-off-by: Fabian Ruch baf...@gmail.com --- git

[PATCH v3 04/27] fake_editor: leave standard output unchanged

2014-08-18 Thread Fabian Ruch
to come up with a different solution. The less convenient possibility that always remains is to store the debug output in a file in the trash directory or even keeping copies of the edited files before and after editing. Signed-off-by: Fabian Ruch baf...@gmail.com --- t/lib-rebase.sh

[PATCH v3 01/27] rebase -i: allow replaying commits with empty log messages

2014-08-18 Thread Fabian Ruch
` result. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 10 ++ t/t3404-rebase-interactive.sh | 38 ++ t/t3412-rebase-root.sh| 16 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/git

[PATCH v3 08/27] rebase -i: verify squash messages using commit-msg

2014-08-18 Thread Fabian Ruch
in `fixup` mode. Add tests. In addition to the existing test checking that the pre-commit hook is disabled when simply picking a commit, provide a test checking that the commit-msg hook is disabled as well. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 2 +- t

[PATCH v3 02/27] rebase -i: allow squashing empty commits without complaints

2014-08-18 Thread Fabian Ruch
notification. Add tests. Reported-by: Peter Krefting pe...@softwolves.pp.se Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 20 +++--- t/t3404-rebase-interactive.sh | 62 +++ 2 files changed, 79 insertions(+), 3

[PATCH v3 05/27] rebase -i: hide interactive command messages in verbose mode

2014-08-18 Thread Fabian Ruch
. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 9 + git-rebase.sh | 13 +++-- t/t3406-rebase-message.sh | 18 ++ 3 files changed, 34 insertions(+), 6 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase

[PATCH v3 06/27] rebase -i: discard redundant message when rewording fails

2014-08-18 Thread Fabian Ruch
be to keep track of the failed hooks in their output so that the user knows which of her hooks require improvement. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase

[PATCH v3 25/27] rebase -i: do not overwrite user author information

2014-08-18 Thread Fabian Ruch
the git environment variables until in the `do_with_author` subshell. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 19 ++- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 73c97a1

[PATCH v3 24/27] rebase -i: teach do_pick the option --signoff

2014-08-18 Thread Fabian Ruch
-cherry-pick option `--signoff` to the `do_pick` interface. It appends a Signed-off-by: line using the committer identity to the log message of the picked commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 13 - 1 file changed, 12 insertions(+), 1 deletion

[PATCH v3 23/27] rebase -i: teach do_pick the option --reset-author

2014-08-18 Thread Fabian Ruch
environment variables. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 26 ++ 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 8b39f2d..6c75bc5 100644 --- a/git-rebase

[PATCH v3 27/27] rebase -i: enable --signoff, --reset-author for pick, reword, edit

2014-08-18 Thread Fabian Ruch
to be determined. Document the new options by listing them in the to-do help and giving a usage example in the INTERACTIVE MODE section of the git-rebase man page. Add tests. Signed-off-by: Fabian Ruch baf...@gmail.com --- Documentation/git-rebase.txt | 13 +++ git-rebase--interactive.sh | 38

[PATCH v3 07/27] commit: allow disabling pre-commit and commit-msg separately

2014-08-18 Thread Fabian Ruch
commits using git-tag for easy reference. The `--notag` option skips this step. Add tests. Signed-off-by: Fabian Ruch baf...@gmail.com --- Documentation/git-commit.txt | 8 - builtin/commit.c | 32 ++--- t/t7503-pre-commit-hook.sh | 65

[PATCH v3 16/27] rebase -i: teach do_pick the option --amend

2014-08-18 Thread Fabian Ruch
conflicts. It is not a mistake to do the initialization regardless of any conflicts because `amend` is always cleared before the next to-do item is processed. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 18 +- 1 file changed, 17 insertions(+), 1

[PATCH v3 09/27] rebase -i: do not verify reworded patches using pre-commit

2014-08-18 Thread Fabian Ruch
replayed and the new log message in `$GIT_DIR/COMMIT_EDITMSG`. Add tests. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 2 +- t/t3404-rebase-interactive.sh | 14 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/git-rebase--interactive.sh

[PATCH v3 26/27] rebase -i: refuse to commit when resuming with updated head

2014-08-18 Thread Fabian Ruch
-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 35 +-- t/t3404-rebase-interactive.sh | 12 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 8fbfe6d..51ee80c

[PATCH v3 18/27] rebase -i: remove no-op do_with_author git commit --amend

2014-08-18 Thread Fabian Ruch
and until we decide to use other authorships for squash commits than the one of the first commit, unwrap `git commit --amend`. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 17 +++-- t/t3404-rebase-interactive.sh | 23 +++ 2 files

[PATCH v3 22/27] rebase -i: parse to-do list command line options

2014-08-18 Thread Fabian Ruch
when invoked by git-rebase. Add a test case that checks that unknown options are refused and can be corrected using `--edit-todo`. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 95 +++--- t/lib-rebase.sh| 20

[PATCH v3 15/27] rebase -i: do not die in do_pick

2014-08-18 Thread Fabian Ruch
whether there are conflicts or not and in-depth troubleshooting is still possible using the `--verbose` option. Remove the commit message title argument from `do_pick`'s interface, which has become unused. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 34

[PATCH v3 19/27] rebase -i: prepare for squash in terms of do_pick --amend

2014-08-18 Thread Fabian Ruch
. Might be squashed into the subsequent commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 21 +++-- 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index ab807e5..614579c 100644

[PATCH v3 17/27] rebase -i: teach do_pick the option --file

2014-08-18 Thread Fabian Ruch
`rewrite_message` and relay the option --file $rewrite_message to the git-commit command line which creates the commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/git

[PATCH v3 21/27] rebase -i: explicitly distinguish replay commands and exec tasks

2014-08-18 Thread Fabian Ruch
to a new function `do_replay` which assumes the first argument to be a commit hash and make no more such assumptions in `do_next`. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 42 -- 1 file changed, 28 insertions(+), 14

[PATCH v3 13/27] rebase -i: do not use -C when --no-edit is sufficient

2014-08-18 Thread Fabian Ruch
-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index f4bb822..6561831 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -511,7

[PATCH v3 11/27] rebase -i: implement reword in terms of do_pick

2014-08-18 Thread Fabian Ruch
the same steps as the case arm for `reword` in `do_next` so far. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 8a89ced..2d768b3

[PATCH v3 14/27] rebase -i: commit only once when rewriting picks

2014-08-18 Thread Fabian Ruch
either because its commit message can be altered as for any other pick. Since the orphaned root commit gets a temporary parent, it is always rewritten. Safely use the rewrite infrastructure of `do_pick` to create the final commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase

[PATCH v3 20/27] rebase -i: implement squash in terms of do_pick

2014-08-18 Thread Fabian Ruch
`. However, `do_pick` does not execute the verification hooks anyway because it solely replays commits and assumes that they have been verified before. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 32 ++-- 1 file changed, 6 insertions(+), 26

[PATCH v3 10/27] rebase -i: teach do_pick the option --edit

2014-08-18 Thread Fabian Ruch
the substituted command output with control sequences. Execute the `reword` code from `do_next` instead if the option `--edit` is specified. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 43 +++ 1 file changed, 43 insertions(+) diff

[PATCH v3 12/27] rebase -i: log the replay of root commits

2014-08-18 Thread Fabian Ruch
`-q` option was probably introduced as a copy-and-paste error stemming from that part of the root commit handling code. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git-rebase--interactive.sh b

Re: [PATCH v2 23/23] rebase -i: enable options --signoff, --reset-author for pick, reword

2014-08-14 Thread Fabian Ruch
Hi, Michael Haggerty writes: On 08/07/2014 01:59 AM, Fabian Ruch wrote: Lift the general unknown option blockade for the pick and reword commands. If `do_cmd` comes across one of the options `--signoff` and `--reset-author` while parsing a to-do entry and the scheduled command is either

Re: [PATCH v2 23/23] rebase -i: enable options --signoff, --reset-author for pick, reword

2014-08-12 Thread Fabian Ruch
Hi Thomas, Thomas Rast writes: Fabian Ruch baf...@gmail.com writes: @@ -634,21 +644,24 @@ do_replay () { comment_for_reflog pick mark_action_done -do_pick $sha1 || die_with_patch $sha1 Could not apply $sha1... $rest +eval do_pick $opts

Re: [PATCH v2 02/23] rebase -i: allow squashing empty commits without complaints

2014-08-11 Thread Fabian Ruch
Hi Eric, Eric Sunshine writes: On Wed, Aug 6, 2014 at 7:59 PM, Fabian Ruch baf...@gmail.com wrote: The to-do list commands `squash` and `fixup` apply the changes introduced by the named commit to the tree but instead of creating a new commit on top of the current head it replaces the previous

Re: [PATCH v2 04/23] rebase -i: hide interactive command messages in verbose mode

2014-08-11 Thread Fabian Ruch
Hi Thomas, Thomas Rast writes: Fabian Ruch baf...@gmail.com writes: @@ -923,6 +923,8 @@ EOF ;; esac +mkdir -p $state_dir || die Could not create temporary $state_dir + git var GIT_COMMITTER_IDENT /dev/null || die You need to set your committer info first @@ -938,7

Re: [PATCH v2 08/23] rebase -i: reword executes pre-commit hook on interim commit

2014-08-11 Thread Fabian Ruch
Hi Thomas, Thomas Rast writes: Fabian Ruch baf...@gmail.com writes: Subject: Re: [PATCH v2 08/23] rebase -i: reword executes pre-commit hook on interim commit I think the change makes sense, but can you reword the subjects that it describes the state after the commit (i.e. what you

Re: [PATCH v2 20/23] rebase -i: parse to-do list command line options

2014-08-11 Thread Fabian Ruch
Hi Thomas, an updated patch is attached below. Thomas Rast writes: Fabian Ruch baf...@gmail.com writes: [...] are not supported at the moment. Neither are options that contain spaces because the shell expansion of `args` in `do_next` interprets white space characters as argument separator

[PATCH v2 21/23] rebase -i: teach do_pick the option --reset-author

2014-08-06 Thread Fabian Ruch
-commit command line which creates the final commit. If `--amend` is not passed as well, the fresh authorship effect is achieved by the mere fact that we are creating a new commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 23 ++- 1 file

[PATCH v2 11/23] rebase -i: log the replay of root commits

2014-08-06 Thread Fabian Ruch
`-q` option was probably introduced as a copy-and-paste error stemming from that part of the root commit handling code. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/git-rebase--interactive.sh b

[PATCH v2 17/23] rebase -i: prepare for squash in terms of do_pick --amend

2014-08-06 Thread Fabian Ruch
. Might be squashed into the subsequent commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 21 +++-- 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 0fbf773..601a2ff 100644

[PATCH v2 22/23] rebase -i: teach do_pick the option --signoff

2014-08-06 Thread Fabian Ruch
-cherry-pick option `--signoff` to the `do_pick` interface. It appends a Signed-off-by: line using the committer identity to the log message of the picked commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 12 +++- 1 file changed, 11 insertions(+), 1 deletion

[PATCH v2 10/23] rebase -i: implement reword in terms of do_pick

2014-08-06 Thread Fabian Ruch
the same steps as the case arm for `reword` in `do_next` so far. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 6 +- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index aed2f93..8e1730c

[PATCH v2 12/23] rebase -i: root commits are replayed with an unnecessary option

2014-08-06 Thread Fabian Ruch
-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 91ef0f7..71571c8 100644 --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -511,7

[PATCH v2 07/23] rebase -i: squash skips commit-msg hook

2014-08-06 Thread Fabian Ruch
to the existing test checking that the pre-commit hook is disabled when simply picking a commit, provide a test checking that the commit-msg hook is disabled as well. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 2 +- t/t3404-rebase-interactive.sh | 78

[PATCH v2 14/23] rebase -i: do not die in do_pick

2014-08-06 Thread Fabian Ruch
whether there are conflicts or not and in-depth troubleshooting is still possible using the `--verbose` option. Remove the commit message title argument from `do_pick`'s interface, which has become unused. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 34

[PATCH v2 19/23] rebase -i: explicitly distinguish replay commands and exec tasks

2014-08-06 Thread Fabian Ruch
to a new function `do_replay` which assumes the first argument to be a commit hash and make no more such assumptions in `do_next`. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 42 -- 1 file changed, 28 insertions(+), 14

[PATCH v2 13/23] rebase -i: commit only once when rewriting picks

2014-08-06 Thread Fabian Ruch
either because its commit message can be altered as for any other pick. Since the orphaned root commit gets a temporary parent, it is always rewritten. Safely use the rewrite infrastructure of `do_pick` to create the final commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase

[PATCH v2 18/23] rebase -i: implement squash in terms of do_pick

2014-08-06 Thread Fabian Ruch
`. However, `do_pick` does not execute the verification hooks anyway because it solely replays commits and assumes that they have been verified before. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 32 ++-- 1 file changed, 6 insertions(+), 26

[PATCH v2 23/23] rebase -i: enable options --signoff, --reset-author for pick, reword

2014-08-06 Thread Fabian Ruch
still do not accept user options as the interplay of `--reset-author` and the author script are yet to be determined. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/git-rebase

Re: [PATCH v1 09/19] rebase -i: commit only once when rewriting picks

2014-08-06 Thread Fabian Ruch
Hi Jeff, Jeff King writes: On Tue, Jul 29, 2014 at 01:18:09AM +0200, Fabian Ruch wrote: The options passed to `do_pick` determine whether the picked commit will be rewritten or not. If the commit gets rewritten, because the user requested to edit the commit message for instance, let

[PATCH v2 00/23] Enable options --signoff, --reset-author for pick, reword

2014-08-06 Thread Fabian Ruch
-msg hook - run commit-msg hook for reworded _and_ squashed commits - a change to 'test_commit' options and 'fake_editor' debug output Thanks for your time and reviews, Fabian Fabian Ruch (23): rebase -i: allow replaying commits with empty log messages rebase -i: allow squashing empty

[PATCH v2 01/23] rebase -i: allow replaying commits with empty log messages

2014-08-06 Thread Fabian Ruch
` result. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 10 ++ t/t3404-rebase-interactive.sh | 38 ++ t/t3412-rebase-root.sh| 16 3 files changed, 60 insertions(+), 4 deletions(-) diff --git a/git

[PATCH v2 02/23] rebase -i: allow squashing empty commits without complaints

2014-08-06 Thread Fabian Ruch
notification. Add tests. Reported-by: Peter Krefting pe...@softwolves.pp.se Signed-off-by: Fabian Ruch baf...@gmail.com --- Hi, Peter Krefting is cc'd as the author of the bug report Confusing error message in rebase when commit becomes empty discussed on the mailing list in June. Phil Hord

[PATCH v2 03/23] rebase -i: allow rewording empty commits without complaints

2014-08-06 Thread Fabian Ruch
way but nothing more and the unchanged to-do list entry would not fail. Handle `reword` by cherry-picking the named commit and editing the log message using git commit --allow-empty --amend instead of git commit --amend. Add test. Signed-off-by: Fabian Ruch baf...@gmail.com --- git

[PATCH v2 05/23] rebase -i: failed reword prints redundant error message

2014-08-06 Thread Fabian Ruch
be to keep track of the failed hooks in their output so that the user knows which of her hooks require improvement. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase

[PATCH v2 04/23] rebase -i: hide interactive command messages in verbose mode

2014-08-06 Thread Fabian Ruch
the to-do list before and after applying the `FAKE_LINES` rewrite rules to it. Redirect this debug output to stderr so that it does not interfere with the git-rebase status output. Add test. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 9 + git-rebase.sh

[PATCH v2 08/23] rebase -i: reword executes pre-commit hook on interim commit

2014-08-06 Thread Fabian Ruch
replayed and the new log message in `$GIT_DIR/COMMIT_EDITMSG`. Add tests. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 2 +- t/t3404-rebase-interactive.sh | 14 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/git-rebase--interactive.sh

[PATCH v2 06/23] commit: allow disabling pre-commit and commit-msg separately

2014-08-06 Thread Fabian Ruch
commits using git-tag for easy reference. The `--notag` option skips this step. Add tests. Signed-off-by: Fabian Ruch baf...@gmail.com --- Documentation/git-commit.txt | 8 - builtin/commit.c | 32 ++--- t/t7503-pre-commit-hook.sh | 65

[PATCH v2 09/23] rebase -i: teach do_pick the option --edit

2014-08-06 Thread Fabian Ruch
the substituted command output with control sequences. Execute the `reword` code from `do_next` instead if the option `--edit` is specified. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 43 +++ 1 file changed, 43 insertions(+) diff

[PATCH v2 15/23] rebase -i: teach do_pick the option --amend

2014-08-06 Thread Fabian Ruch
conflicts. It is not a mistake to do the initialization regardless of any conflicts because `amend` is always cleared before the next to-do item is processed. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 18 +- 1 file changed, 17 insertions(+), 1

[PATCH v2 20/23] rebase -i: parse to-do list command line options

2014-08-06 Thread Fabian Ruch
as in `do_cmd` with the exception that we only care about where the options stop and the commit hash begins. Do not reject any options when transforming the commit hashes. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 49

[PATCH v2 16/23] rebase -i: teach do_pick the option --file

2014-08-06 Thread Fabian Ruch
`rewrite_message` and relay the option --file $rewrite_message to the git-commit command line which creates the commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/git

Re: [PATCH v1 00/19] Enable options --signoff, --reset-author for pick, reword

2014-08-04 Thread Fabian Ruch
Hi Peff, Jeff King writes: On Tue, Jul 29, 2014 at 01:18:00AM +0200, Fabian Ruch wrote: this is a reroll of the patch series that enables rudimentary support of line options for git-rebase's to-do list commands and reimplements the well-known commands `reword` and `squash` in terms

Re: [PATCH RFC v2 05/19] rebase -i: Implement reword in terms of do_pick

2014-08-04 Thread Fabian Ruch
. Your concerns below are of course noted. Fabian [1] http://article.gmane.org/gmane.comp.version-control.git/254361 Matthieu Moy writes: Fabian Ruch baf...@gmail.com writes: --- a/git-rebase--interactive.sh +++ b/git-rebase--interactive.sh @@ -555,20 +555,7 @@ do_next

Re: [PATCH v1 03/19] rebase -i: reword executes pre-commit hook on interim commit

2014-08-04 Thread Fabian Ruch
Hi, Jeff King writes: On Tue, Jul 29, 2014 at 01:18:03AM +0200, Fabian Ruch wrote: Specify the git-commit option `--no-verify` to disable the pre-commit hook when editing the log message. Because `--no-verify` also skips the commit-msg hook, execute the hook from within git-rebase

Re: [PATCH v1 07/19] rebase -i: log the replay of root commits

2014-08-04 Thread Fabian Ruch
Hi, Jeff King writes: On Tue, Jul 29, 2014 at 01:18:07AM +0200, Fabian Ruch wrote: The command line used to recreate root commits specifies the option `-q` which suppresses the commit summary message. However, git-rebase--interactive tends to tell the user about the commits it creates

Re: [PATCH v1 08/19] rebase -i: root commits are replayed with an unnecessary option

2014-08-04 Thread Fabian Ruch
Hi Jeff, Jeff King writes: On Tue, Jul 29, 2014 at 01:18:08AM +0200, Fabian Ruch wrote: The command line used to recreate root commits specifies the effectless option `-C`. It makes git-commit reuse commit message and authorship of the named commit. However, the commit being amended here

[PATCH] commit --amend: test specifies authorship but forgets to check

2014-07-30 Thread Fabian Ruch
The test case --amend option copies authorship specifies that the git-commit option `--amend` uses the authorship of the replaced commit for the new commit. Add the omitted check that this property actually holds. Signed-off-by: Fabian Ruch baf...@gmail.com --- Without the check, the test case

[PATCH v1 00/19] Enable options --signoff, --reset-author for pick, reword

2014-07-28 Thread Fabian Ruch
indentation level in `do_pick`. Thanks for your time, Fabian Fabian Ruch (19): rebase -i: failed reword prints redundant error message rebase -i: allow rewording an empty commit without complaints rebase -i: reword executes pre-commit hook on interim commit rebase -i: teach do_pick

[PATCH v1 01/19] rebase -i: failed reword prints redundant error message

2014-07-28 Thread Fabian Ruch
be to keep track of the failed hooks in their output so that the user knows which of her hooks require improvement. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase

[PATCH v1 02/19] rebase -i: allow rewording an empty commit without complaints

2014-07-28 Thread Fabian Ruch
way but nothing more and the unchanged to-do list entry would not fail. Handle `reword` by cherry-picking the named commit and editing the log message using git commit --allow-empty --amend instead of git commit --amend. Add test. Signed-off-by: Fabian Ruch baf...@gmail.com --- git

[PATCH v1 11/19] rebase -i: teach do_pick the option --amend

2014-07-28 Thread Fabian Ruch
conflicts. It is not a mistake to do the initialization regardless of any conflicts because `amend` is always cleared before the next to-do item is processed. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 18 +- 1 file changed, 17 insertions(+), 1

[PATCH v1 09/19] rebase -i: commit only once when rewriting picks

2014-07-28 Thread Fabian Ruch
either because its commit message can be altered as for any other pick. Since the orphaned root commit gets a temporary parent, it is always rewritten. Safely use the rewrite infrastructure of `do_pick` to create the final commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase

[PATCH v1 03/19] rebase -i: reword executes pre-commit hook on interim commit

2014-07-28 Thread Fabian Ruch
. Teach `test_commit` the `--no-verify` option and add test. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 17 + t/t3404-rebase-interactive.sh | 38 ++ t/test-lib-functions.sh | 6 +- 3 files changed, 56

[PATCH v1 13/19] rebase -i: prepare for squash in terms of do_pick --amend

2014-07-28 Thread Fabian Ruch
. Might be squashed into the subsequent commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 21 +++-- 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index 5df1086..d85e55d 100644

[PATCH v1 05/19] rebase -i: implement reword in terms of do_pick

2014-07-28 Thread Fabian Ruch
the same steps as the case arm for `reword` in `do_next` so far. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 15 +-- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index e06d9b6

[PATCH v1 19/19] rebase -i: enable options --signoff, --reset-author for pick, reword

2014-07-28 Thread Fabian Ruch
still do not accept user options as the interplay of `--reset-author` and the author script are yet to be determined. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/git-rebase

[PATCH v1 18/19] rebase -i: teach do_pick the option --signoff

2014-07-28 Thread Fabian Ruch
-cherry-pick option `--signoff` to the `do_pick` interface. It appends a Signed-off-by: line using the committer identity to the log message of the picked commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 12 +++- 1 file changed, 11 insertions(+), 1 deletion

[PATCH v1 17/19] rebase -i: teach do_pick the option --reset-author

2014-07-28 Thread Fabian Ruch
-commit command line which creates the final commit. If `--amend` is not passed as well, the fresh authorship effect is achieved by the mere fact that we are creating a new commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 23 ++- 1 file

[PATCH v1 06/19] rebase -i: allow replaying commits with empty log messages

2014-07-28 Thread Fabian Ruch
and the user can make her changes to the replayed commit. Add tests. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh| 4 ++-- t/t3404-rebase-interactive.sh | 24 t/t3412-rebase-root.sh| 19 +++ 3 files changed, 45

[PATCH v1 04/19] rebase -i: teach do_pick the option --edit

2014-07-28 Thread Fabian Ruch
the substituted command output with control sequences. Execute the `reword` code from `do_next` instead if the option `--edit` is specified. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 52 ++ 1 file changed, 52 insertions(+) diff

[PATCH v1 12/19] rebase -i: teach do_pick the option --file

2014-07-28 Thread Fabian Ruch
`rewrite_message` and relay the option --file $rewrite_message to the git-commit command line which creates the commit. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/git

[PATCH v1 08/19] rebase -i: root commits are replayed with an unnecessary option

2014-07-28 Thread Fabian Ruch
replayed. Remove the option. Since `-C` (in contrast to `-c`) does not invoke the editor and the `--amend` option invokes it by default, disable editor invocation again by specifying `--no-edit`. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 2 +- 1 file changed, 1

[PATCH v1 10/19] rebase -i: do not die in do_pick

2014-07-28 Thread Fabian Ruch
whether there are conflicts or not and in-depth troubleshooting is still possible using the `--verbose` option. Remove the commit message title argument from `do_pick`'s interface, which has become unused. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 37

[PATCH v1 16/19] rebase -i: parse to-do list command line options

2014-07-28 Thread Fabian Ruch
as in `do_cmd` with the exception that we only care about where the options stop and the commit hash begins. Do not reject any options when transforming the commit hashes. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 49

[PATCH v1 14/19] rebase -i: implement squash in terms of do_pick

2014-07-28 Thread Fabian Ruch
`. However, `do_pick` does not execute the verification hooks anyway because it solely replays commits and assumes that they have been verified before. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 30 ++ 1 file changed, 6 insertions(+), 24

[PATCH v1 15/19] rebase -i: explicitly distinguish replay commands and exec tasks

2014-07-28 Thread Fabian Ruch
to a new function `do_replay` which assumes the first argument to be a commit hash and make no more such assumptions in `do_next`. Signed-off-by: Fabian Ruch baf...@gmail.com --- git-rebase--interactive.sh | 42 -- 1 file changed, 28 insertions(+), 14

[PATCH v1 07/19] rebase -i: log the replay of root commits

2014-07-28 Thread Fabian Ruch
the authorship of the sentinel commit because this additional commit is an implementation detail hidden from the final history. The removed `-q` option was probably introduced as a copy-and-paste error stemming from that part of the root commit handling code. Signed-off-by: Fabian Ruch baf...@gmail.com

Re: [PATCH RFC v2 08/19] rebase -i: Root commits are replayed with an unnecessary option

2014-07-19 Thread Fabian Ruch
Hi Junio, Junio C Hamano writes: Fabian Ruch baf...@gmail.com writes: It makes the next patch easier to understand because the finalising command line git commit --allow-empty --amend --no-post-rewrite -n --no-edit seems to be simply moved to the end of do_pick. Substituting --no-edit for -C

Re: [PATCH RFC v2 08/19] rebase -i: Root commits are replayed with an unnecessary option

2014-07-18 Thread Fabian Ruch
Hi Junio, Junio C Hamano writes: Fabian Ruch baf...@gmail.com writes: The command line used to recreate root commits specifies the effectless option `-C`. It is used to reuse commit message and authorship from the named commit but the commit being amended here, which is the sentinel commit

Re: [PATCH v1] rebase -p: Command line option --no-ff is ignored

2014-07-16 Thread Fabian Ruch
Hi Marc, I forgot to cc your mailbox when I posted this patch last week. Do you still remember whether there was a particular reason why pick_one_preserving_merges wasn't touched by the commit b499549 (Teach rebase the --no-ff option.), by any chance? Kind regards, Fabian Fabian Ruch writes

[PATCH v1] rebase --root: sentinel commit cloaks empty commits

2014-07-16 Thread Fabian Ruch
` always false for them. Add tests. Signed-off-by: Fabian Ruch baf...@gmail.com --- Hi, Three test cases were added to the bug report to account for the additional cases in which the bug strikes (raised by Michael on the other sub-thread). A bugfix is included now as well. Concerning the bugfix

Re: [PATCH RFC v2 03/19] rebase -i: reword executes pre-commit hook on interim commit

2014-07-13 Thread Fabian Ruch
Hi Junio, Junio C Hamano writes: Fabian Ruch baf...@gmail.com writes: The to-do list command `reword` replays a commit like `pick` but lets the user also edit the commit's log message. This happens in two steps. Firstly, the named commit is cherry-picked. Secondly, the commit created

Re: [PATCH RFC v2 07/19] rebase -i: The replay of root commits is not shown with --verbose

2014-07-11 Thread Fabian Ruch
regards, Fabian Fabian Ruch writes: The command line used to recreate root commits specifies the erroneous option `-q` which suppresses the commit summary message. However, git-rebase--interactive tends to tell the user about the commits it creates, if she wishes (cf. command line option

Re: [PATCH RFC v2 06/19] rebase -i: Stop on root commits with empty log messages

2014-07-10 Thread Fabian Ruch
Hi Junio, Junio C Hamano writes: Fabian Ruch baf...@gmail.com writes: The command line used to recreate root commits specifies the erroneous option `--allow-empty-message`. If the root commit has an empty log message, the replay of this commit should fail and the rebase should be interrupted

Re: [PATCH RFC v2 01/19] rebase -i: Failed reword prints redundant error message

2014-07-10 Thread Fabian Ruch
Hi Andrew, thanks for your review and sorry that I forgot to cc the bug fix to you. Andrew Wong writes: On Tue, Jul 8, 2014 at 4:31 PM, Junio C Hamano gits...@pobox.com wrote: Fabian Ruch baf...@gmail.com writes: It is true that a failed hook script might not output any diagnosis... I think

  1   2   >