git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH/RFCv2 2/2] git rebase -i: warn about removed commits

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Jun 1, 2015, 23:16 UTC
Message-ID
<CAPig+cRGT4qgCNgVi_x-==GKze7VUPVbVPGHYui7y5ZXie72Qw@mail.gmail.com>
In-Reply-To
<1433159523-6596-2-git-send-email-remi.galan-alfonso@ensimag.grenoble-inp.fr>

On Mon, Jun 1, 2015 at 7:52 AM, Galan Rémi <remi.galan-alfonso@ensimag.grenoble-inp.fr> wrote:

Show 28 quoted lines
> Check if commits were removed (i.e. a line was deleted) and print
> warnings or abort git rebase according to the value of the
> configuration variable rebase.checkLevel.
>
> Add the configuration variable rebase.checkLevel.
>     - When unset or set to "ignore", no checking is done.
>     - When set to "warn", the commits are checked, warnings are
>       displayed but git rebase still proceeds.
>     - When set to "error", the commits are checked, warnings are
>       displayed and the rebase is aborted.
>
> rebase.checkLevel defaults to "ignore".
>
> Signed-off-by: Galan Rémi <remi.galan-alfonso@ensimag.grenoble-inp.fr>
> ---
> diff --git a/Documentation/config.txt b/Documentation/config.txt
> index 5f76e8c..e2e5554 100644
> --- a/Documentation/config.txt
> +++ b/Documentation/config.txt
> @@ -2160,6 +2160,15 @@ rebase.autoStash::
>         successful rebase might result in non-trivial conflicts.
>         Defaults to false.
>
> +rebase.checkLevel::
> +       If set to "warn", git rebase -i will print a warning if some
> +       commits are removed (i.e. a line was deleted) or if some
> +       commits appear more than one time (e.g. the same commit is
> +       picked twice), however the rebase will still proceed. If set

The cover letter says that v2 no longer checks for a duplicate, however, this documentation still mentions it.

Show 18 quoted lines
> +       to "error", it will print the previous warnings and abort the
> +       rebase. If set to "ignore", no checking is done.  Defaults to
> +       "ignore".
> +
>  receive.advertiseAtomic::
>         By default, git-receive-pack will advertise the atomic push
>         capability to its clients. If you don't want to this capability
> diff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt
> index 9cf3760..d348ca2 100644
> --- a/Documentation/git-rebase.txt
> +++ b/Documentation/git-rebase.txt
> @@ -213,6 +213,12 @@ rebase.autoSquash::
>  rebase.autoStash::
>         If set to true enable '--autostash' option by default.
>
> +rebase.checkLevel::
> +       If set to "warn" print warnings about removed commits and
> +       duplicated commits in interactive mode. If set to "error"
Same here.
Show 14 quoted lines
> +       print the warnings and abort the rebase. If set to "ignore" no
> +       checking is done. "ignore" by default.
> +
> diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh
> index 1bad068..d3a9ed5 100755
> --- a/t/t3404-rebase-interactive.sh
> +++ b/t/t3404-rebase-interactive.sh
> @@ -1103,7 +1103,6 @@ test_expect_success 'rebase -i commits that overwrite untracked files (no ff)' '
>  '
>
>  test_expect_success 'drop' '
> -       git checkout master &&
>         test_when_finished "git checkout master" &&
>         git checkout -b dropBranchTest master &&

This "cleanup" change might deserve its own test (or at least a mention in the commit message).

Show 13 quoted lines
>         set_fake_editor &&
> @@ -1113,4 +1112,13 @@ test_expect_success 'drop' '
>         test A = $(git cat-file commit HEAD^^ | sed -ne \$p)
>  '
>
> +test_expect_success 'rebase -i respects rebase.checkLevel' '
> +       test_config rebase.checkLevel error &&
> +       test_when_finished "git checkout master" &&
> +       git checkout -b tmp2 master &&
> +       set_fake_editor &&
> +       test_must_fail env FAKE_LINES="1 2 3 4" git rebase -i --root &&
> +       test E = $(git cat-file commit HEAD | sed -ne \$p)
> +'
Shouldn't you also explicitly test "warn" and "ignore" modes?
Previous: Galan RémiNext: Eric Sunshine
Message 3 of 10 in “git-rebase -i: add command "drop" to remove a commit”
  1. 1/2 git-rebase -i: add command "drop" to remove a commitGalan Rémi, Jun 1, 2015
  2. 2/2 git rebase -i: warn about removed commitsGalan Rémi, Jun 1, 2015
  3. Eric SunshineJun 1, 2015
  4. Eric SunshineJun 1, 2015
  5. Remi Galan AlfonsoJun 2, 2015
  6. Eric SunshineJun 2, 2015
  7. Remi Galan AlfonsoJun 2, 2015
  8. Matthieu MoyJun 2, 2015
  9. Remi Galan AlfonsoJun 2, 2015
  10. Junio C HamanoJun 2, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.