[PATCH] add: Use struct argv_array in run_add_interactive()

2014-03-15 Thread Fabian Ruch
run_add_interactive() in builtin/add.c manually computes array bounds and allocates a static args array to build the add--interactive command line, which is error-prone. Use the argv-array helper functions instead. Signed-off-by: Fabian Ruch --- builtin/add.c | 21 ++--- 1 file

Re: [PATCH] add: Use struct argv_array in run_add_interactive()

2014-03-15 Thread Fabian Ruch
On 03/15/2014 12:14 PM, Fabian Ruch wrote: > run_add_interactive() in builtin/add.c manually computes array bounds > and allocates a static args array to build the add--interactive command > line, which is error-prone. Use the argv-array helper functions instead. > > Signed-off-

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

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 > --- > This verifies and depends on "refs: make rev-parse --quiet actually quiet". > > t/t1503-rev-parse-verify

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

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

[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 Signed-off-by: Fabian Ruch --- Hi David, I don't think you made a mista

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 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 >&

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 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 () { >>

[RFC 2/3] rebase -i: Reschedule tasks that failed before the index was touched

2014-05-26 Thread Fabian Ruch
not continue until they are resolved or the changes are not recorded in the index (return value neither 0 nor 1) and `rebase` has to try again with the same task. Reported-by: Phil Hord Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh | 27 ++- 1 file changed, 22

[RFC 1/3] sequencer: Signal failed ff as an aborted, not a conflicted merge

2014-05-26 Thread Fabian Ruch
uations in which the sequencer encounters an error. Signed-off-by: Fabian Ruch --- sequencer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sequencer.c b/sequencer.c index 90cac7b..97cecca 100644 --- a/sequencer.c +++ b/sequencer.c @@ -278,7 +278,7 @@ static int fast_forwar

[RFC 3/3] tests: Add 'rebase -i commits that overwrite untracked files'

2014-05-26 Thread Fabian Ruch
case for regression testing to the "rebase-interactive" test suite. Reported-by: Phil Hord Signed-off-by: Fabian Ruch --- t/t3404-rebase-interactive.sh | 44 +++ 1 file changed, 44 insertions(+) diff --git a/t/t3404-rebase-interactive.sh b/t/t3

Re: [PATCH 4/4] git-ack: record an ack

2014-06-03 Thread Fabian Ruch
Hi Michael, I have some inline comments below. Also, some parts of the patch do not adhere to the style rules - tabs for indentation - $(...) for command substitution - no space after redirection operators - double-quotes around redirection targets for shell scripts (from the file `Documenta

Re: [RFC 1/3] sequencer: Signal failed ff as an aborted, not a conflicted merge

2014-06-09 Thread Fabian Ruch
Hi Junio, On 05/27/2014 08:42 PM, Junio C Hamano wrote: > Fabian Ruch writes: >> [..] >> >> In order to signal the three possible situations (not only success and >> failure to complete) after a pick through porcelain commands such as >> `cherry-pick`, exit with

[PATCH] rebase -i: Remember merge options beyond continue actions

2014-06-09 Thread Fabian Ruch
If the user explicitly specified a merge strategy or strategy options, "rebase --interactive" started using the default merge strategy again after "rebase --continue". This problem gets fixed by this commit. Add test. Since the "rebase" options "-s" and "-X" imply "--merge", we can simply remove

Re: [PATCH] rebase -i: Remember merge options beyond continue actions

2014-06-09 Thread Fabian Ruch
rd in the interactive mode and always compile the "cherry-pick" arguments from the "rebase" state variables "strategy" and "strategy_opts". Reported-by: Diogo de Campos Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh| 18 +++--- t/t3

Re: [PATCH 0/4] ack recoding in commit log

2014-06-11 Thread Fabian Ruch
Hi Michael, On 05/18/2014 11:17 PM, Michael S. Tsirkin wrote: > As a maintainer, I often get patches by mail, then > acked-by,reviewed-by etc responses are sent by separate > mail. > > I like making acks commits, > this way they are easy to keep track of > as part of git history. In order to ful

[RFC] rebase --root: Empty root commit is replaced with sentinel

2014-06-18 Thread Fabian Ruch
-empty`. Signed-off-by: Fabian Ruch --- Notes: Hi, This is not a fix yet. We are currently special casing in `do_pick` and whether the current head is the sentinel commit is not a special case that would fit into `do_pick`'s interface description. What if we

[RFC PATCH 2/7] rebase -i: Teach do_pick the option --edit

2014-06-18 Thread Fabian Ruch
ff-by: Fabian Ruch --- git-rebase--interactive.sh| 52 --- t/t3404-rebase-interactive.sh | 8 +++ 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index ea5514e..fffdfa5 100644 ---

[RFC PATCH 0/7] rebase -i: Implement `reword` and `squash` in terms of `do_pick`

2014-06-18 Thread Fabian Ruch
to run the post-rewrite hook, something I could not figure out myself. Thanks for your time, Fabian [1] pick, reword, squash, fixup Fabian Ruch (7): rebase -i: Make option handling in pick_one more flexible rebase -i: Teach do_pick the option --edit rebase -i: Stop on root commits with

[RFC PATCH 1/7] rebase -i: Make option handling in pick_one more flexible

2014-06-18 Thread Fabian Ruch
parameter left on the list. If an option is not supported, ignore it and issue a warning on the console. Construct a new arguments list `extra_args` of recognized options that shall be passed to `cherry-pick` on the command line. Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh | 61

[RFC PATCH 3/7] rebase -i: Stop on root commits with empty log messages

2014-06-18 Thread Fabian Ruch
;t include these flags in the git-commit command line either. Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh | 4 ++-- t/t3412-rebase-root.sh | 39 +++ 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/git-rebase--interactive.sh b/

[RFC PATCH 6/7] rebase -i: Prepare for squash in terms of do_pick --amend

2014-06-18 Thread Fabian Ruch
be squashed into the subsequent commit. Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh | 20 +++- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh index e4992dc..ada520d 100644 --- a/git-rebase

[RFC PATCH 4/7] rebase -i: Commit only once when rewriting picks

2014-06-18 Thread Fabian Ruch
always rewritten. Safely use the rewrite infrastructure of `do_pick` to create the final commit. Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh | 31 ++- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase

[RFC PATCH 7/7] rebase -i: Teach do_pick the options --amend and --file

2014-06-18 Thread Fabian Ruch
initialization regardless of any conflicts because `$amend` is always cleared before the next to-do item is processed. Signed-off-by: Fabian Ruch --- Notes: A question about when to enable the post-rewrite hook. `rebase` collects the hashes of all processed commits using

[RFC PATCH 5/7] rebase -i: Do not die in do_pick

2014-06-18 Thread Fabian Ruch
`$squash_msg` as commit message. Indicate an error in `do_pick` using return statements and properly kill the script at the call sites. Remove unused commit message title argument from `do_pick`'s signature. Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh

Re: [RFC] rebase --root: Empty root commit is replaced with sentinel

2014-06-19 Thread Fabian Ruch
Hi Michael, thanks for your reply. On 06/19/2014 01:35 PM, Michael Haggerty wrote: > On 06/18/2014 02:10 PM, Fabian Ruch wrote: >> `rebase` supports the option `--root` both with and without `--onto`. >> The case where `--onto` is not specified is handled by creating a >>

Re: [RFC PATCH 1/7] rebase -i: Make option handling in pick_one more flexible

2014-06-21 Thread Fabian Ruch
Hi Michael, On 06/20/2014 03:40 PM, Michael Haggerty wrote: > On 06/19/2014 05:28 AM, Fabian Ruch wrote: >> `pick_one` and `pick_one_preserving_merges` are wrappers around >> `cherry-pick` in `rebase --interactive`. They take the hash of a commit >> and build a `cherry-pi

Re: [RFC PATCH 2/7] rebase -i: Teach do_pick the option --edit

2014-06-21 Thread Fabian Ruch
Hi Michael, On 06/20/2014 03:41 PM, Michael Haggerty wrote: > On 06/19/2014 05:28 AM, Fabian Ruch wrote: >> The to-do list command `reword` replays a commit like `pick` but lets >> the user also edit the commit's log message. If one thinks of `pick` >> entries as sched

Re: [RFC PATCH 3/7] rebase -i: Stop on root commits with empty log messages

2014-06-21 Thread Fabian Ruch
Hi Eric, On 06/21/2014 02:33 AM, Eric Sunshine wrote: > On Wed, Jun 18, 2014 at 11:28 PM, Fabian Ruch wrote: >> When `rebase` is executed with `--root` but no `--onto` is specified, >> `rebase` creates a sentinel commit which is replaced with the root >> commit in three st

Re: [RFC PATCH 1/7] rebase -i: Make option handling in pick_one more flexible

2014-06-22 Thread Fabian Ruch
Hi Junio, On 06/20/2014 09:53 PM, Junio C Hamano wrote: > Michael Haggerty writes: >>> pick_one () { >>> ff=--ff >>> + extra_args= >>> + while test $# -gt 0 >>> + do >>> + case "$1" in >>> + -n) >>> + ff= >>> + extra_args="$extra_

Re: [PATCH v2] git-am: add option to extract email Message-Id: tag into commit log

2014-07-02 Thread Fabian Ruch
Hi Avi, On 07/02/2014 10:51 AM, Avi Kivity wrote: > Some workflows prefer to track exactly which email message was used to > generate a commit. This can be used, for example, to generate an > automated acknowledgement when a patch is committed as a response to > the patch email, or as a reference

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

2014-07-02 Thread Fabian Ruch
and line. This could be both a security and a usability issue. For this reason, the patch series still hasn't graduated from being RFC. Fabian Fabian Ruch (19): rebase -i: Failed reword prints redundant error message rebase -i: reword complains about empty commit despite --keep-emp

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

2014-07-02 Thread Fabian Ruch
nates. Caveat: In case the commit-msg hook finds the new log message ill-formatted, the user is only notified of the failed commit-msg hook but the log message is used for the commit anyway. git-commit ought to offer more fine-grained control over which hooks are executed. Signed-off-by: Fabian Ruch ---

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

2014-07-02 Thread Fabian Ruch
tion would 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 --- git-rebase--interactive.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh ind

[PATCH RFC v2 02/19] rebase -i: reword complains about empty commit despite --keep-empty

2014-07-02 Thread Fabian Ruch
some 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 --- git-r

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

2014-07-02 Thread Fabian Ruch
ich carries out exactly the same steps as the case arm for `reword` in `do_next` so far. Signed-off-by: Fabian Ruch --- 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 RFC v2 10/19] rebase -i: Do not die in do_pick

2014-07-02 Thread Fabian Ruch
veals 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 --- git-rebase--interacti

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

2014-07-02 Thread Fabian Ruch
`--allow-empty-message` is correctly specified here. Add test. Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh | 2 +- t/t3412-rebase-root.sh | 39 +++ 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/git-rebase--interactive.sh b/git

[PATCH RFC v2 04/19] rebase -i: Teach do_pick the option --edit

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

[PATCH RFC v2 15/19] rebase -i: Explicitly distinguish replay commands and exec tasks

2014-07-02 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 --- git-rebase--interactive.sh | 42 -- 1 file changed, 28 insertions(+), 14 deletions(-) diff

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

2014-07-02 Thread Fabian Ruch
that the committer email and commit date fields do not match the root commit either way. Remove the option. However, `-C` (other than `-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

[PATCH RFC v2 09/19] rebase -i: Commit only once when rewriting picks

2014-07-02 Thread Fabian Ruch
. 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 --- git-rebase--interactive.sh | 55 +++--- 1 file changed, 33

[PATCH RFC v2 19/19] rebase -i: Enable options --signoff, --reset-author for pick, reword

2014-07-02 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 --- git-rebase--interactive.sh | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git

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

2014-07-02 Thread Fabian Ruch
is a detail of git-rebase--interactive's implementation. The option `-q` was probably introduced as a copy-and-paste error stemming from that part of the root commit handling code. Signed-off-by: Fabian Ruch --- git-rebase--interactive.sh | 2 +- 1 file changed, 1 insertion(+), 1 del

[PATCH RFC v2 17/19] rebase -i: Teach do_pick the option --reset-author

2014-07-02 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 --- git-rebase--interactive.sh | 23 ++- 1 file changed, 22 insertions

[PATCH RFC v2 14/19] rebase -i: Implement squash in terms of do_pick

2014-07-02 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 --- git-rebase--interactive.sh | 30 ++ 1 file changed, 6 insertions(+), 24 deletions(-) diff

[PATCH RFC v2 18/19] rebase -i: Teach do_pick the option --signoff

2014-07-02 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 --- git-rebase--interactive.sh | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a

[PATCH RFC v2 12/19] rebase -i: Teach do_pick the option --file

2014-07-02 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 --- git-rebase--interactive.sh | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/

[PATCH RFC v2 11/19] rebase -i: Teach do_pick the option --amend

2014-07-02 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 --- git-rebase--interactive.sh | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff

[PATCH RFC v2 16/19] rebase -i: Parse to-do list command line options

2014-07-02 Thread Fabian Ruch
the to-do list is edited. Apply the same procedure 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 --- git-rebase--interactive.sh | 49 ++

[PATCH RFC v2 13/19] rebase -i: Prepare for squash in terms of do_pick --amend

2014-07-02 Thread Fabian Ruch
git-commit. Might be squashed into the subsequent commit. Signed-off-by: Fabian Ruch --- 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 47e3edf..37800be 100644 --- a/

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

2014-07-06 Thread Fabian Ruch
holds for fast_forward might be turned off due to a use of --no-ff. To correctly notice squashes, explicitly check for -n. Add test. Signed-off-by: Fabian Ruch --- Hi, The code checking force_rebase is copied from pick_one, although using a ternary operator to initialise fast_forward might be

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

2014-07-09 Thread Fabian Ruch
On 07/08/2014 10:45 PM, Junio C Hamano wrote: > Fabian Ruch writes: >> Fabian Ruch (19): >> rebase -i: Failed reword prints redundant error message >> rebase -i: reword complains about empty commit despite --keep-empty >> rebase -i: reword executes pre-co

Re: [PATCH RFC v2 02/19] rebase -i: reword complains about empty commit despite --keep-empty

2014-07-09 Thread Fabian Ruch
Junio C Hamano writes: > Fabian Ruch writes: >> Subject: rebase -i: reword complains about empty commit despite --keep-empty > > I had to read the title and then the log twice before understanding > that the above is not "change the complaint message" (i.e. &

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 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

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 wrote: >> Fabian Ruch writes: >>> It is true that a failed hook script might not output any diagnosis... >> >>

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

2014-07-11 Thread Fabian Ruch
age. Kind 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 (c

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 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 >

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, Fabi

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

2014-07-16 Thread Fabian Ruch
= "$ptree"` always false for them. Add tests. Signed-off-by: Fabian Ruch --- 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 bu

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 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 t

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 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. S

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

2014-07-28 Thread Fabian Ruch
ll without introducing another 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

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

2014-07-28 Thread Fabian Ruch
tion would 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 --- git-rebase--interactive.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh ind

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

2014-07-28 Thread Fabian Ruch
some 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 --- git-r

[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 --- git-rebase--interactive.sh | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff

[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 --- git-rebase--interactive.sh | 58

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

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

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

2014-07-28 Thread Fabian Ruch
git-commit. Might be squashed into the subsequent commit. Signed-off-by: Fabian Ruch --- 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 --- a/

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

2014-07-28 Thread Fabian Ruch
ich carries out exactly the same steps as the case arm for `reword` in `do_next` so far. Signed-off-by: Fabian Ruch --- 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 --- git-rebase--interactive.sh | 19 --- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git

[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 --- git-rebase--interactive.sh | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a

[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 --- git-rebase--interactive.sh | 23 ++- 1 file changed, 22 insertions

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

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

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

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

[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 --- git-rebase--interactive.sh | 20 +++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/

[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 --- git-rebase--interactive.sh | 2 +- 1 file changed, 1 insertion(+), 1

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

2014-07-28 Thread Fabian Ruch
veals 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 --- git-rebase--interacti

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

2014-07-28 Thread Fabian Ruch
the to-do list is edited. Apply the same procedure 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 --- 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 --- git-rebase--interactive.sh | 30 ++ 1 file changed, 6 insertions(+), 24 deletions(-) diff

[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 --- git-rebase--interactive.sh | 42 -- 1 file changed, 28 insertions(+), 14 deletions(-) diff

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

2014-07-28 Thread Fabian Ruch
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 --- git-rebase

[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 --- Without the check, the test case suc

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

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

2014-08-04 Thread Fabian Ruch
hread. Your concerns below are of course noted. Fabian [1] http://article.gmane.org/gmane.comp.version-control.git/254361 Matthieu Moy writes: > Fabian Ruch writes: >> --- a/git-rebase--interactive.sh >> +++ b/git-rebase--interactive.sh >> @@

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

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

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

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

2014-08-06 Thread Fabian Ruch
squash skips commit-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 mes

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

2014-08-06 Thread Fabian Ruch
a `squash` result. Signed-off-by: Fabian Ruch --- 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/

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

2014-08-06 Thread Fabian Ruch
ts in the rebased history without notification. Add tests. Reported-by: Peter Krefting Signed-off-by: Fabian Ruch --- 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 Hor

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

2014-08-06 Thread Fabian Ruch
some 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 --- git-r

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

2014-08-06 Thread Fabian Ruch
tion would 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 --- git-rebase--interactive.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh ind

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

2014-08-06 Thread Fabian Ruch
-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 --- git-rebase--interactive.sh| 9 + git-rebase.sh | 12

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

2014-08-06 Thread Fabian Ruch
ommit replayed and the new log message in `$GIT_DIR/COMMIT_EDITMSG`. Add tests. Signed-off-by: Fabian Ruch --- 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 b/git-r

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

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

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

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

[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 --- git-rebase--interactive.sh | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff

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

2014-08-06 Thread Fabian Ruch
the to-do list is edited. Apply the same procedure 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 --- git-rebase--interactive.sh | 49 ++

  1   2   >