Re: [PATCH v5 13/17] read-tree: show progress by default

2019-10-21 Thread Phillip Wood
gress indicators why not put the isatty() check there and pass the appropriate option to read-tree? Best Wishes Phillip git_config(git_read_tree_config, NULL);

Re: [RFC PATCH 7/7] merge: teach --autostash option

2019-10-18 Thread Phillip Wood
&opt_autostash, - N_("automatically stash/stash pop before and after rebase")), + N_("automatically stash/stash pop before and after")), I've not looked closely at the code in this patch but noticed this. I think it would

Re: [RFC PATCH 6/7] autostash.c: undefine USE_THE_INDEX_COMPATIBILITY_MACROS

2019-10-18 Thread Phillip Wood
away from hold_locked_index() is that it relies on a global variable. While replacing it with an explicit reference the the_repository removes the implicit dependency on global state, it does not move us away from depending on a global variable. I think it would be nicer to change these functio

Re: [RFC PATCH 4/7] autostash: extract reset_head() from rebase

2019-10-18 Thread Phillip Wood
e a preparatory step that fixes this by adding a 'struct repository *r' argument to the function in builtin/rebase.c before moving the function. You could also do the same for next patch and then move both functions together. Best Wishes Phillip + #include "git-compat-util.h&

Re: [RFC PATCH 2/7] autostash: extract read_one() from rebase

2019-10-18 Thread Phillip Wood
d use it instead? (There may be a difference if the file is missing but that function already takes a flag so it could probably be modified easily enough.) Best Wishes Phillip diff --git a/autostash.h b/autostash.h new file mode 100644 index 00..4a8f504f12 --- /dev/null +++ b/a

[PATCH v2 5/6] move run_commit_hook() to libgit and use it there

2019-10-15 Thread Phillip Wood via GitGitGadget
From: Phillip Wood This function was declared in commit.h but was implemented in builtin/commit.c so was not part of libgit. Move it to libgit so we can use it in the sequencer. This simplifies the implementation of run_prepare_commit_msg_hook() and will be used in the next commit. Signed-off

[PATCH v2 4/6] sequencer.h fix placement of #endif

2019-10-15 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Commit 65850686cf ("rebase -i: rewrite write_basic_state() in C", 2018-08-28) accidentially added new function declarations after the #endif at the end of the include guard. Signed-off-by: Phillip Wood --- sequencer.h | 3 +-- 1 file changed, 1 insertion(+), 2

[PATCH v2 2/6] t3404: set $EDITOR in subshell

2019-10-15 Thread Phillip Wood via GitGitGadget
From: Phillip Wood As $EDITOR is exported setting it in one test affects all subsequent tests. Avoid this by always setting it in a subshell. This commit leaves 20 calls to set_fake_editor that are not in subshells as they can safely be removed in the next commit once all the other editor

[PATCH v2 0/6] sequencer: start running post-commit hook again

2019-10-15 Thread Phillip Wood via GitGitGadget
Patch 6 (was 3) I've tided up the test and removed the wrapper function for running the post-commit hook as suggested. Phillip Wood (6): t3404: remove unnecessary subshell t3404: set $EDITOR in subshell t3404: remove uneeded calls to set_fake_editor sequencer.h fix placement of #

[PATCH v2 1/6] t3404: remove unnecessary subshell

2019-10-15 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Neither of the commands executed in the subshell change any shell variables or the current directory so there is no need for them to be executed in a subshell. Signed-off-by: Phillip Wood --- t/t3404-rebase-interactive.sh | 6 ++ 1 file changed, 2 insertions(+), 4

[PATCH v2 6/6] sequencer: run post-commit hook

2019-10-15 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Prior to commit 356ee4659b ("sequencer: try to commit without forking 'git commit'", 2017-11-24) the sequencer would always run the post-commit hook after each pick or revert as it forked `git commit` to create the commit. The conversion to committing

[PATCH v2 3/6] t3404: remove uneeded calls to set_fake_editor

2019-10-15 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Some tests were calling set_fake_editor to ensure they had a sane no-op editor set. Now that all the editor setting is done in subshells these tests can rely on EDITOR=: and so do not need to call set_fake_editor. Also add a test at the end to detect any future additions

Re: [PATCH 2/3] sequencer: use run_commit_hook()

2019-10-14 Thread Phillip Wood
orrection. There are some other public commit related functions in sequencer.c - print_commit_summary(), commit_post_rewrite(), rest_is_empty(), cleanup_message(), message_is_empty(), template_untouched(), update_head_with_reflog() . Would you like to see them moved to commit.c (probably as a separate series)? Best Wishes Phillip > > Thanks. >

Re: [PATCH 3/3] sequencer: run post-commit hook

2019-10-11 Thread Phillip Wood
Hi Dscho On 10/10/2019 22:31, Johannes Schindelin wrote: Hi Phillip, On Thu, 10 Oct 2019, Phillip Wood via GitGitGadget wrote: From: Phillip Wood Prior to commit 356ee4659b ("sequencer: try to commit without forking 'git commit'", 2017-11-24) the sequencer would always

[PATCH 3/3] sequencer: run post-commit hook

2019-10-10 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Prior to commit 356ee4659b ("sequencer: try to commit without forking 'git commit'", 2017-11-24) the sequencer would always run the post-commit hook after each pick or revert as it forked `git commit` to create the commit. The conversion to committing

[PATCH 1/3] sequencer.h fix placement of #endif

2019-10-10 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Commit 65850686cf ("rebase -i: rewrite write_basic_state() in C", 2018-08-28) accidentially added new function declarations after the #endif at the end of the include guard. Signed-off-by: Phillip Wood --- sequencer.h | 3 +-- 1 file changed, 1 insertion(+), 2

[PATCH 2/3] sequencer: use run_commit_hook()

2019-10-10 Thread Phillip Wood via GitGitGadget
From: Phillip Wood This simplifies the implementation of run_prepare_commit_msg_hook() and will be used in the next commit. Signed-off-by: Phillip Wood --- builtin/commit.c | 22 -- commit.h | 3 --- sequencer.c | 45

[PATCH 0/3] sequencer: start running post-commit hook again

2019-10-10 Thread Phillip Wood via GitGitGadget
When I converted the sequencer to avoid forking git commit i forgot about the post-commit hook. These patches are based on pw/rebase-i-show-HEAD-to-reword, otherwise the new test fails as that branch changes the number of commits we make. Phillip Wood (3): sequencer.h fix placement of #endif

Re: Raise your hand to Ack jk/code-of-conduct if your Ack fell thru cracks

2019-10-09 Thread Phillip Wood
who wanted to give their Acks but forgot to do so, to raise their hands on this thread. I forgot to add Acked-by: Phillip Wood to my original reply in this thread, could you add it please Thanks Phillip Thanks for starting the concluding move on this topic. For reference, here is the CoC

Re: [PATCH 1/1] commit: add support to provide --coauthor

2019-10-08 Thread Phillip Wood
On 08/10/2019 11:11, Phillip Wood wrote: > Hi Toon & Zeger-Jan > > On 08/10/2019 08:49, Toon Claes wrote: >> Add support to provide the Co-author when committing. For each >> co-author provided with --coauthor=, a line is added at the >> bottom of the commit me

Re: [PATCH 1/1] commit: add support to provide --coauthor

2019-10-08 Thread Phillip Wood
_mode get_cleanup_mode(const char *cleanup_arg, diff --git a/t/t7502-commit-porcelain.sh b/t/t7502-commit-porcelain.sh index 14c92e4c25..5ed6735cf4 100755 --- a/t/t7502-commit-porcelain.sh +++ b/t/t7502-commit-porcelain.sh @@ -138,6 +138,17 @@ test_expect_success 'partial removal' ' &#x

Re: What's cooking in git.git (Oct 2019, #01; Thu, 3)

2019-10-05 Thread Phillip Wood
Hi Elijah On 05/10/2019 01:40, Elijah Newren wrote: On Fri, Oct 4, 2019 at 4:49 AM Phillip Wood wrote: Hi Junio On 03/10/2019 06:04, Junio C Hamano wrote: Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while c

Re: What's cooking in git.git (Oct 2019, #01; Thu, 3)

2019-10-04 Thread Phillip Wood
Hi Junio On 03/10/2019 06:04, Junio C Hamano wrote: Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. The ones marked with '.' do not appear in any of the integration branches, but I am still

Re: [PATCH v4 3/6] rebase -i: support --committer-date-is-author-date

2019-10-04 Thread Phillip Wood
return -1; - if (flags & AMEND_MSG) { const char *exclude_gpgsig[] = { "gpgsig", NULL }; const char *out_enc = get_commit_output_encoding(); @@ -1359,6 +1388,26 @@ static int try_to_commit(struct repository *r, commit_list_insert(

Re: [PATCH v4 1/6] rebase -i: add --ignore-whitespace flag

2019-10-04 Thread Phillip Wood
/dev/null +++ b/t/t3433-rebase-options-compatibility.sh @@ -0,0 +1,65 @@ +#!/bin/sh +# +# Copyright (c) 2019 Rohit Ashiwal +# + +test_description='tests to ensure compatibility between am and interactive backends' + +. ./test-lib.sh + +# This is a special case in which both am and interactive b

Re: [PATCH v1 4/5] rebase: fill `squash_onto' in get_replay_opts()

2019-10-02 Thread Phillip Wood
Hi Dscho On 02/10/2019 09:16, Johannes Schindelin wrote: Hi, On Fri, 27 Sep 2019, Phillip Wood wrote: Hi Alban On 25/09/2019 21:13, Alban Gruin wrote: >>> [...] builtin/rebase.c | 5 + 1 file changed, 5 insertions(+) diff --git a/builtin/rebase.c b/builtin/rebas

Re: [PATCH v1 0/5] Use complete_action’s todo list to do the rebase

2019-09-27 Thread Phillip Wood
ok fine to me modulo the confusing wording in the commit message on patch 4 Best Wishes Phillip This is based on master (4c86140027, "Third batch"). The tip of this series is tagged as "reduce-todo-list-cont-v1" at https://github.com/agrn/git. [0] http://public-inbox

Re: [PATCH v1 4/5] rebase: fill `squash_onto' in get_replay_opts()

2019-09-27 Thread Phillip Wood
he sequencer through read_populate_opts(). Without this, calling `pick_commits()' directly will result in incorrect results with `rebase --root'. Let’s change that. Good catch Best Wishes Phillip Signed-off-by: Alban Gruin --- builtin/rebase.c | 5 + 1 file changed, 5 inser

Re: [PATCH v1 5/5] sequencer: directly call pick_commits() from complete_action()

2019-09-27 Thread Phillip Wood
odo list - commits any staged changes - this is unnecessary as we're staring a new rebase so there are no staged changes - calls record_in_rewritten() - this is unnecessary as we're starting a new rebase So I agree that this patch is correct. Thanks Phillip + todo_list

Re: [PATCH v4 5/6] rebase -i: support --ignore-date

2019-09-27 Thread Phillip Wood
mittertime +' + +test_expect_success '--ignore-date works with interactive backend' ' + git commit --amend --date="$GIT_AUTHOR_DATE" && + git rebase --ignore-date -i HEAD^ && + git show HEAD --pretty="format:%ai" >authortime && + git show HEAD --pretty="format:%ci" >committertime && + grep "+" authortime && + grep "+" committertime +' + +test_expect_success '--ignore-date works with rebase -r' ' + git checkout side && + git merge commit3 && + git rebase -r --root --ignore-date && + git rev-list HEAD >rev_list && + while read HASH + do + git show $HASH --pretty="format:%ai" >authortime + git show $HASH --pretty="format:%ci" >committertime + grep "+" authortime + grep "+" committertime + done It's good to see the new test. Did you see Stolee's email [4] about the test coverage of the previous version of this series? You should check that this series tests all the untested non-error handling lines. [4] https://public-inbox.org/git/1ed86989-9ba2-0cd7-b6f7-654d1943b...@gmail.com/ Best Wishes Phillip test_done

Re: [PATCH v2 00/19] hashmap bug/safety/ease-of-use fixes

2019-09-26 Thread Phillip Wood
ve}_entry() use container_of() and hashmap_init() takes a struct hashmap_entry? That comment is in a lot of our structure definitions as well. Best Wishes Phillip Apologies for the delays, been busy with other stuff... Previous discussion starts at: https://public-inbox.org/git/2019

Re: [PATCH] add a Code of Conduct document

2019-09-24 Thread Phillip Wood
proposed CoC is, I don't think it's too long at all. It only takes a couple of minutes to read and is quite clear. Best Wishes Phillip Take, for example, the TrueOS Rules of Conduct, which in just a few short sentences covers everything that's worth covering: https://w

Re: [PATCH] add a Code of Conduct document

2019-09-24 Thread Phillip Wood
otherwise there's no point to having a CoC but we don't want to get bogged down by a whole sequence of what if someone does this that or the other. I think the text below does a good job of setting out expectations without being too long Best Wishes Phillip Signed-off-by: Jeff

Re: [PATCH 0/1] git-config --add allows values from stdin

2019-09-23 Thread Phillip Wood
n the configuration, and then add/unset others based on the results using only a single process, I don't think that a mode-based '--stdin' flag gets the job done. That's true but I don't know how common it is compared to a script wanting to read a bunch of config

Re: [PATCH v2] rebase: introduce --update-branches option

2019-09-23 Thread Phillip Wood
Hi On 09/09/2019 15:13, Johannes Schindelin wrote: Hi, On Mon, 9 Sep 2019, Phillip Wood wrote: On 08/09/2019 00:44, Warren He wrote: Everyone in this thread, thanks for your support and encouragement. [...] It should not really imply `--interactive`, but `--rebase-merges

Re: [PATCH] name-rev: avoid cutoff timestamp underflow

2019-09-23 Thread Phillip Wood
On 23/09/2019 09:37, SZEDER Gábor wrote: On Sun, Sep 22, 2019 at 11:01:26PM +0200, Johannes Sixt wrote: Am 22.09.19 um 21:53 schrieb SZEDER Gábor: On Sun, Sep 22, 2019 at 07:57:36PM +0100, Phillip Wood wrote: On 22/09/2019 19:01, SZEDER Gábor wrote: +/* + * One day. See the 'name

Re: [PATCH] name-rev: avoid cutoff timestamp underflow

2019-09-22 Thread Phillip Wood
485,13 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix) add_object_array(object, *argv, &revs); } - if (cutoff) - cutoff = cutoff - CUTOFF_DATE_SLOP; + if (cutoff) { + /* check for undeflow */ + if (cut

Re: [PATCH v4 0/6] rebase -i: support more options

2019-09-09 Thread Phillip Wood
On 09/09/2019 19:02, Junio C Hamano wrote: Rohit Ashiwal writes: Following the suggestion of Phillip I've rebased my patch on master (745f681289) and cherry-picking b0a3186140. Sorry, but that's horrible. The latter does not even cleanly apply on the former. Yes I had assume

Re: [PATCH v2] rebase: introduce --update-branches option

2019-09-09 Thread Phillip Wood
en we don't end up with some branches updated and others not. Side Note I'd avoid creating another worktree local ref refs/rewritten-heads/. Either store them under refs/rewritten/ or refs/worktree/ Best Wishes Phillip I agree that requiring a separate update-ref step at the e

Re: [PATCH] rebase: introduce --update-branches option

2019-09-03 Thread Phillip Wood
updated is checked out in another worktree then we need some way to deal with that. If there are no local changes in that worktree then we could just update the local HEAD and working copy. Best Wishes Phillip It's implemented as a function that processes a todo list

Re: [PATCH 1/1] rebase -r: let `label` generate safer labels

2019-09-02 Thread Phillip Wood
on-alphanumeric characters would avoid the problem entirely. Best Wishes Phillip strbuf_reset(&buf); diff --git a/t/t3430-rebase-merges.sh b/t/t3430-rebase-merges.sh index 7b6c4847ad..737396f944 100755 --- a/t/t3430-rebase-merges.sh +++ b/t/t3430-rebase-merges.sh @@ -441

Re: git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-30 Thread Phillip Wood
On 30/08/2019 14:23, Dmitry Nikulin wrote: On Fri, 30 Aug 2019 at 13:16, Phillip Wood wrote: I'm not sure why the last argument is being split in your example. It is not split in the example below I have replicated the splitting issue on my small demo repo [1]: $ env GIT_EXTERNAL

Re: git-diff passes : args to GIT_EXTERNAL_DIFF incorrectly?

2019-08-30 Thread Phillip Wood
n your example. It is not split in the example below $git mv git.c renamed.c $env GIT_EXTERNAL_DIFF='printf "|%s|\\n"' git diff HEAD |git.c| |/tmp/lMQpP8_git.c| |c1ee7124edcfb0417539134d50212e997dc71c1f| |100644| |renamed.c| |c1ee7124edcfb0417539134d50212e997dc71c1f| |100644| |r

Re: [PATCH 1/1] checkout: add simple check for 'git checkout -b'

2019-08-29 Thread Phillip Wood
.checkout_index = -2;/* default on */ opts.checkout_worktree = -2; /* default on */ + + if (argc == 3 && !strcmp(argv[1], "-b")) { + /* +* User ran 'git checkout -b ' and expects What if the user ran 'git checkou

Re: error: cannot cherry-pick during a revert

2019-08-29 Thread Phillip Wood
ago - historically the sequencer hasn't been all that good at cleaning up after itself if the user committed the final pick or revert with 'git commit' and forgot to run 'cherry-pick/revert --continue' afterwards. Best Wishes Phillip Mike

Re: [PATCH 10/11] introduce container_of macro

2019-08-28 Thread Phillip Wood
ch series adds some very welcome type safety changes, at first sight this patch threatens to undermine that as there is no check (and no compiler independent way to check) that type == typeof(*ptr). It would also be helpful if the commit message could explain how this can be used to improve type

Re: [PATCH 04/11] hashmap_entry: detect improper initialization

2019-08-28 Thread Phillip Wood
the changed initializations already used hashmap_entry_init() and so presumably were already initializing hashmap_entry.next correctly. Is there a way to get 'make coccicheck' detect incorrect initializations, this renaming wont prevent bad code being added in the future. Best Wishe

Re: [PATCH v5 0/2] Honor .gitattributes with rebase --am

2019-08-26 Thread Phillip Wood
* Add tests for am and am -3 in addition to rebase. I've only had time for a quick look at these but the changes look good to me. Thanks for taking the time to add the tests for am and the code for handling the merge attributes Best Wishes Phillip Changes from v3: * Check for both ad

Re: [PATCH v4 2/2] apply: reload .gitattributes after patching it

2019-08-26 Thread Phillip Wood
On 20/08/2019 19:32, Phillip Wood wrote: On 20/08/2019 19:24, Junio C Hamano wrote: Phillip Wood writes: Do you know why -m and -i aren't affected? I had to look, but I believe the answer is because they use the sequencer, and the sequencer calls git merge-recursive as a separate pr

Re: [PATCH 3/3] sequencer: simplify root commit creation

2019-08-22 Thread Phillip Wood
On 19/08/2019 17:09, Eric Sunshine wrote: On Mon, Aug 19, 2019 at 5:18 AM Phillip Wood via GitGitGadget wrote: Adapt try_to_commit() to create a new root commit rather than special casing this in run_git_commit(). The significantly reduces the amount of s/The/This/ Thanks Eric - well

Re: [PATCH v3 1/6] rebase -i: add --ignore-whitespace flag

2019-08-20 Thread Phillip Wood
ption that the sequencer will simply ignore all my whitespace changes) I think this is ready if we can live with the difference - I'm not entirely convinced that adding an option with the same name and a different behavior is going to improve things though. Best Wishes Phillip --wh

Re: [PATCH v3 0/6] rebase -i: support more options

2019-08-20 Thread Phillip Wood
On 20/08/2019 18:53, Junio C Hamano wrote: Phillip Wood writes: Hi Rohit On 20/08/2019 04:45, Rohit Ashiwal wrote: I've tries to incorporated all the suggestions. It is helpful if you can list the changes to remind us all what we said. (as a patch author I find composing that is he

Re: [PATCH v4 2/2] apply: reload .gitattributes after patching it

2019-08-20 Thread Phillip Wood
On 20/08/2019 19:24, Junio C Hamano wrote: Phillip Wood writes: Do you know why -m and -i aren't affected? I had to look, but I believe the answer is because they use the sequencer, and the sequencer calls git merge-recursive as a separate process, and so the writing of the tree is

Re: [PATCH v3 5/6] rebase -i: support --ignore-date

2019-08-20 Thread Phillip Wood
On 20/08/2019 18:42, Junio C Hamano wrote: Rohit Ashiwal writes: +/* Construct a free()able author string with current time as the author date */ +static char *ignore_author_date(const char *author) +{ + int len = strlen(author); Mental note: ignore_author_date() would not allow author

Re: [PATCH v3 0/6] rebase -i: support more options

2019-08-20 Thread Phillip Wood
ot be free()'d. The author returned by read_author_ident() is owned by the strbuf that you pass to read_author_ident() which is confusing. Best Wishes Phillip [1]: git show v2.0.0:git-am.sh [2]: https://github.com/git/git/blob/v2.23.0/sequencer.c#L959 Rohit Ashiwal (6): rebase -i: add --

Re: [PATCH v3 5/6] rebase -i: support --ignore-date

2019-08-20 Thread Phillip Wood
git a/sequencer.h b/sequencer.h index e3881e9275..bf5a79afdb 100644 --- a/sequencer.h +++ b/sequencer.h @@ -44,6 +44,7 @@ struct replay_opts { int quiet; int reschedule_failed_exec; int committer_date_is_author_date; + int ignore_date; int mainline; diff --git

Re: [PATCH v3 3/6] rebase -i: support --committer-date-is-author-date

2019-08-20 Thread Phillip Wood
is what all the other callers do. + + strbuf_addf(&date, "@%s", ident.date_begin); I still think this will pass any junk after a corrupted timezone, it would be better to do strbuf_addf(&date, "@%.*s %.*s", ident.date_begin, ident.data

Re: [PATCH 2/2] rebase.c: make sure current branch isn't moved when autostashing

2019-08-20 Thread Phillip Wood
hing problem. Best Wishes Phillip On 18/08/2019 10:53, Ben Wijen wrote: The rebase --autostash incorrectly moved the current branch to orig_head, where orig_head -- commit object name of tip of the branch before rebasing It seems this was incorrectly taken over from git-legacy-rebase.sh Sign

Re: [PATCH 1/2] t3420: never change upstream branch

2019-08-20 Thread Phillip Wood
ted-onto-branch && + echo changed >file0 && + git add file0 && + git rebase --autostash upstream feature-branch && + test $(git rev-parse upstream) = $(git rev-parse unrelated-onto-branch) In addition to Junio's suggest

Re: [PATCH v4 2/2] apply: reload .gitattributes after patching it

2019-08-20 Thread Phillip Wood
On 20/08/2019 04:05, brian m. carlson wrote: On 2019-08-19 at 09:55:27, Phillip Wood wrote: On 19/08/2019 10:41, Phillip Wood wrote: [...] diff --git a/convert.c b/convert.c index 94ff837649..030e9b81b9 100644 --- a/convert.c +++ b/convert.c @@ -1293,10 +1293,11 @@ struct conv_attrs

Re: [PATCH v4 2/2] apply: reload .gitattributes after patching it

2019-08-20 Thread Phillip Wood
Hi Brian On 20/08/2019 03:45, brian m. carlson wrote: On 2019-08-19 at 09:41:42, Phillip Wood wrote: Hi Brian On 18/08/2019 19:44, brian m. carlson wrote: When applying multiple patches with git am, or when rebasing using the am backend, it's possible that one of our patches has upda

Re: [PATCH v4 2/2] apply: reload .gitattributes after patching it

2019-08-19 Thread Phillip Wood
On 19/08/2019 10:41, Phillip Wood wrote: [...] diff --git a/convert.c b/convert.c index 94ff837649..030e9b81b9 100644 --- a/convert.c +++ b/convert.c @@ -1293,10 +1293,11 @@ struct conv_attrs {   const char *working_tree_encoding; /* Supported encoding or default encoding if NULL

Re: [PATCH v4 2/2] apply: reload .gitattributes after patching it

2019-08-19 Thread Phillip Wood
encoding if NULL */ }; +static struct attr_check *check; I was concerned about the impact adding a file global if we ever want to multi-thread this for submodules, but looking through the file there are a couple of others already so this isn't creating a

Re: [PATCH 0/2] git rebase: Make sure upstream branch is left alone.

2019-08-19 Thread Phillip Wood
t;. 'git rebase --autostash ' should checkout (presumably stashing any unstaged and uncommitted changes first) and then do rebase - what's it doing instead? Best Wishes Phillip The following patches contain both a test and a fix. Ben Wijen (2): t3420: never change upstream

[PATCH 0/3] rebase -i: always update HEAD before rewording

2019-08-19 Thread Phillip Wood via GitGitGadget
This series contains a couple of patches to make the C version of rebase --interactive behave more like the scripted version. The third patch is not strictly related to the first two but is included here to avoid merge conflicts. Phillip Wood (3): rebase -i: always update HEAD before rewording

[PATCH 1/3] rebase -i: always update HEAD before rewording

2019-08-19 Thread Phillip Wood via GitGitGadget
From: Phillip Wood If the user runs git log while rewording a commit it is confusing if sometimes we're amending the commit that's being reworded and at other times we're creating a new commit depending on whether we could fast-forward or not[1]. Fix this inconsistency by always

[PATCH 3/3] sequencer: simplify root commit creation

2019-08-19 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Adapt try_to_commit() to create a new root commit rather than special casing this in run_git_commit(). The significantly reduces the amount of special case code for creating the root commit and reduces the number of commit code paths we have to worry about. Signed-off-by

[PATCH 2/3] rebase -i: check for updated todo after squash and reword

2019-08-19 Thread Phillip Wood via GitGitGadget
From: Phillip Wood While a rebase is stopped for the user to edit a commit message it can be convenient for them to also edit the todo list. The scripted version of rebase supported this but the C version does not. We already check to see if the todo list has been updated by an exec command so

Re: [GSoC][PATCH v2 5/6] rebase -i: support --ignore-date

2019-08-17 Thread Phillip Wood
On 14/08/2019 20:33, Junio C Hamano wrote: Phillip Wood writes: That's an important distinction, particularly if GIT_COMMITTER_DATE is set in the environment - are we aiming to have the author and committer dates match or are we just resetting the author date to now? Rohit - do you know

Re: minor interactive rebase regression: HEAD points to wrong commit while rewording

2019-08-15 Thread Phillip Wood
On 14/08/2019 22:20, SZEDER Gábor wrote: On Mon, Aug 12, 2019 at 09:28:52PM +0100, Phillip Wood wrote: Save the updated commit message, and after the editor opens up the third commit's log message, check again where HEAD is pointing to now: ~/tmp/reword (master +|REBASE-i 2/3)$ hea

Re: [GSoC][PATCH v2 5/6] rebase -i: support --ignore-date

2019-08-14 Thread Phillip Wood
now? Rohit - do you know which --ignore-date does in the am based rebase? Best Wishes Phillip Again, I think reset-author-date would be a better synonym to this one.

Re: [GSoC][PATCH v2 5/6] rebase -i: support --ignore-date

2019-08-14 Thread Phillip Wood
Hi Junio & Rohit On 13/08/2019 18:21, Junio C Hamano wrote: Phillip Wood writes: +static void push_dates(struct child_process *child) +{ + time_t now = time(NULL); + struct strbuf date = STRBUF_INIT; + + strbuf_addf(&date, "@%"PRIuM

Re: [GSoC][PATCH v2 3/6] rebase -i: support --committer-date-is-author-date

2019-08-14 Thread Phillip Wood
On 13/08/2019 18:06, Junio C Hamano wrote: Phillip Wood writes: [...] + + strbuf_addf(&date, "@%s",ident.date_begin); I think we should use %s.* and ident.date_end to be sure we getting what we want. Your version is OK if the author is formatted correctly but I&

Re: [GSoC][PATCH v2 3/6] rebase -i: support --committer-date-is-author-date

2019-08-13 Thread Phillip Wood
commits will have different dates. If it had said 'change the date of each rebased commit' then the singular would definitely be right but as it stands I'm not sure this is an improvement. Best Wishes Phillip of the rebased commits (see linkgit:git-am[1]). + See

Re: [GSoC][PATCH v2 4/6] sequencer: rename amend_author to author_to_rename

2019-08-13 Thread Phillip Wood
s for rewording this Best Wishes Phillip Signed-off-by: Rohit Ashiwal --- sequencer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sequencer.c b/sequencer.c index fbc0ed0cad..e186136ccc 100644 --- a/sequencer.c +++ b/sequencer.c @@ -1424,7 +1424,7 @@ static int try_to_c

Re: [GSoC][PATCH v2 5/6] rebase -i: support --ignore-date

2019-08-13 Thread Phillip Wood
); strbuf_release(&script); @@ -1053,6 +1087,8 @@ static int run_git_commit(struct repository *r, argv_array_push(&cmd.args, "--amend"); if (opts->gpg_sign) argv_array_pushf(&cmd.args, "-S%s", opts->gpg_sign);

Re: [GSoC][PATCH v2 3/6] rebase -i: support --committer-date-is-author-date

2019-08-13 Thread Phillip Wood
On 13/08/2019 11:38, Phillip Wood wrote: Hi Rohit [...] @@ -964,6 +976,25 @@ static int run_git_commit(struct repository *r,   {   struct child_process cmd = CHILD_PROCESS_INIT; +    if (opts->committer_date_is_author_date) { +    size_t len; +    int res = -1; +    str

Re: [GSoC][PATCH v2 1/6] rebase -i: add --ignore-whitespace flag

2019-08-13 Thread Phillip Wood
lay, buf.buf); strbuf_release(&buf); This way we never change opts->strategy_opts and we always release the temporary copy. Best Wishes Phillip return replay; } @@ -511,6 +524,8 @@ int cmd_rebase__interactive(int argc, const char **argv, const char *prefix) argc =

Re: [GSoC][PATCH v2 3/6] rebase -i: support --committer-date-is-author-date

2019-08-13 Thread Phillip Wood
if (!ident.date_begin) + return error(_("corrupted author without date information")); We return an error if we cannot get the date - this is exactly what we should be doing above. It is also great to see a single version of this being used whether or not we are am

Re: minor interactive rebase regression: HEAD points to wrong commit while rewording

2019-08-12 Thread Phillip Wood
erge/done so does not look at HEAD. While it might seem odd if the user looks at HEAD it's quite nice not to create a new commit only to amend it straight away when it's reworded. We have REBASE_HEAD which always points to the current pick - HEAD is also an unreliable indicator of the

Re: Incorrect behavior from git checkout --patch

2019-08-11 Thread Phillip Wood
Hi Dave On 11/08/2019 10:54, Phillip Wood wrote: Hi Dave Thanks for the bug report. I've tried to reproduce it on the latest master, version 2.22.0 and 2.20.1 and am unable to do so. Doh, I was doing 'git checkout -p HEAD', when I checkout from the index I can reproduce th

Re: Incorrect behavior from git checkout --patch

2019-08-11 Thread Phillip Wood
a mistake translating your patches to files that can be used with git checkout. Best Wishes Phillip [1] https://github.com/git/git/commit/1b074e15d0f976be2bc14f9528874a841c055213#diff-588be9a03d1f7e33db12f186aad5fde9 pre-image block_one { line 1 line 2 line 3 2 4 6 8 line 4 line 5 line 6 2 4

Re: [GSoC][PATCHl 5/6] rebase -i: support --ignore-date

2019-08-08 Thread Phillip Wood
On 08/08/2019 12:42, Phillip Wood wrote: On 06/08/2019 18:36, Rohit Ashiwal wrote: rebase am already has this flag to "lie" about the author date by changing it to the committer (current) date. Let's add the same for interactive machinery. Signed-off-by: Rohit Ashiwal --- >

Re: [GSoC][PATCHl 1/6] rebase -i: add --ignore-whitespace flag

2019-08-08 Thread Phillip Wood
f_addstr(&buf, " --ignore-space-change"); + free(opts->strategy_opts); + opts->strategy_opts = strbuf_detach(&buf, NULL); + } Instead of modifying opts->strategy_opts perhaps we could just use a temporary variable Best Wishes Phillip if

Re: [GSoC][PATCHl 6/6] rebase: add --author-date-is-committer-date

2019-08-08 Thread Phillip Wood
llent idea Best Wishes Phillip Signed-off-by: Rohit Ashiwal --- Documentation/git-rebase.txt | 1 + builtin/rebase.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt index a5cdf8518b..bb60426911 100644

Re: [GSoC][PATCHl 5/6] rebase -i: support --ignore-date

2019-08-08 Thread Phillip Wood
opts->ignore_date)); if (read_and_refresh_cache(r, opts)) return -1; diff --git a/sequencer.h b/sequencer.h index e6cba468db..73d0515a3e 100644 --- a/sequencer.h +++ b/sequencer.h @@ -44,6 +44,7 @@ struct replay_opts {

Re: [GSoC][PATCHl 4/6] sequencer: rename amend_author to author_to_rename

2019-08-08 Thread Phillip Wood
when amending a commit, I'm fine with the rename though. Best Wishes Phillip Signed-off-by: Rohit Ashiwal --- sequencer.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sequencer.c b/sequencer.c index 65adf79222..d24a6fd585 100644 --- a/sequencer.c +++ b/s

Re: [GSoC][PATCHl 3/6] rebase -i: support --committer-date-is-author-date

2019-08-08 Thread Phillip Wood
uthor + len - idx); + memcpy(date, idx, author + len - idx); + setenv("GIT_COMMITTER_DATE", date, 1); + free(date); git has a high level api for manipulation author/committer information in ident.c, it would

Re: amend warnings with no changes staged

2019-08-06 Thread Phillip Wood
ation the the commit's content is unchanged. I've been using a wrapper script that errors out if there are no new changes staged with --amend --no-edit and found it very helpful (as is a proper --reword option rather than having to give --amend --only) Best Wishes Phillip It i

Re: Support for --stdin-paths in commit, add, etc

2019-08-01 Thread Phillip Wood
t named staged paths. You can use a temporary index, add the files you want to commit with update-index --stdin and then run 'git commit' When I've been scripting I've sometimes wished that diff-index and diff-files had a --stdin option. Best Wishes Phillip

Re: [BUG]: Destructive behaviour of git revert

2019-07-30 Thread Phillip Wood
u explain what you want to happen when you revert that merge? The idea of revert is to undo the changes introduced by the commit that is being reverted, I'm struggling to understand why you think revert should not do this for files that are added. Best Wishes Phillip I classify this

Re: [RFC PATCH 0/9] rebase -i: extend rebase.missingCommitsCheck to `--edit-todo' and co.

2019-07-29 Thread Phillip Wood
Hi Alban On 25/07/2019 21:26, Alban Gruin wrote: Hi Phillip, Le 24/07/2019 à 15:29, Phillip Wood a écrit : Hi Alban Thanks for working on this, it's great to see you back on the list and I think it would be a useful addition to rebase. Unfortunately I'm not sure about this impl

Re: [GSoC][PATCH v2 2/2] rebase -i: support --committer-date-is-author-date

2019-07-24 Thread Phillip Wood
Hi Rohit On 23/07/2019 20:57, Rohit Ashiwal wrote: Hi Phillip On Sat, 20 Jul 2019 15:56:50 +0100 Phillip Wood wrote: [...] @@ -467,6 +470,9 @@ int cmd_rebase__interactive(int argc, const char **argv, const char *prefix) OPT_BOOL(0, "autosquash", &o

Re: [RFC PATCH 0/9] rebase -i: extend rebase.missingCommitsCheck to `--edit-todo' and co.

2019-07-24 Thread Phillip Wood
g point of the rebase. I think dscho's garden-shears script does something similar. Under the proposed scheme if I subsequently edit the todo list it will not catch any deleted commits as the original list is empty. Best Wishes Phillip The idea to extend this feature was suggested to me mo

Re: [GSoC][PATCH v2 1/1] rebase -i: add --ignore-whitespace flag

2019-07-22 Thread Phillip Wood
;force-rebase", &options.flags, > @@ -1821,6 +1838,9 @@ int cmd_rebase(int argc, const char **argv, const char > *prefix) > } > > if (options.rebase_merges) { > + if (options.ignore_whitespace) > + die(_("cannot combin

Re: [GSoC][PATCH v2 2/2] rebase -i: support --committer-date-is-author-date

2019-07-20 Thread Phillip Wood
+ setenv("GIT_COMMITTER_DATE", date, 1); + free(date); + } + if (commit_tree_extended(msg->buf, msg->len, &tree, parents, oid, author, opts->gpg_sign, extra)) { res = error(_("

Re: What's cooking in git.git (Jul 2019, #01; Wed, 3)

2019-07-11 Thread Phillip Wood
On 08/07/2019 23:02, Junio C Hamano wrote: > Phillip Wood writes: > >>> * pw/rebase-progress-test-cleanup (2019-07-01) 1 commit >>> - t3420: remove progress lines before comparing output >>> (this branch uses sg/rebase-progress.) >>> >>> Test

Re: What's cooking in git.git (Jul 2019, #01; Wed, 3)

2019-07-04 Thread Phillip Wood
paring output > (this branch uses sg/rebase-progress.) > > Test cleanup. > > Will merge to 'next'. I've just posted an update to this which avoids the repeated printf calls Best Wishes Phillip

Re: [PATCH 1/1] t3420: remove progress lines before comparing output

2019-07-04 Thread Phillip Wood
On 02/07/2019 18:23, Junio C Hamano wrote: > Phillip Wood writes: > >>> As long as sed implementation used here does not do anything funny >>> to CR, I think the approach to strip everything before the last CR >>> on the line is sensible. As I am not familiar

[PATCH v2 1/1] t3420: remove progress lines before comparing output

2019-07-04 Thread Phillip Wood via GitGitGadget
From: Phillip Wood Some of the tests check the output of rebase is what we expect. These were added after a regression that added unwanted stash output when using --autostash. They are useful as they prevent unintended changes to the output of the various rebase commands. However they also

  1   2   3   4   5   6   7   8   9   10   >