Re: renormalize histroy with smudge/clean-filter

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks for your help, Brian!

On Wed, Feb 05, 2025 at 10:55:24PM +0000, brian m. carlson wrote:
> On 2025-02-05 at 21:47:26, Josef Wolf wrote:
> > 
> > Huh? I never entered a command "merge-renormalize"
> 
> When you use command like `--strategy foo` with a custom strategy, Git
> calls a binary called `git merge-foo` to implement that strategy.  So
> while you didn't explicitly invoke that, when you used the nonstandard
> strategy `renormalize` (which, by the way, does not exist), Git invoked
> it when you rebased, since rebases by default use merges under the hood.

Uh, You're right: renormalize is not a merge-strategy on its own but an option
to the ort strategy.

   $ git rebase --root --strategy ort -X renormalize
   Updating files: 100% (372/372), done.
   error: Your local changes to the following files would be overwritten by merge:
       gt8/P-0113/G
       gt8/P-0113/P-0113-0_A-2
       gt8/P-0113/U
   Please commit your changes or stash them before you merge.
   Aborting
                        
Those are (some) of the files which are subject to the filtering. I can go
further with:

  $ git add --renormalize . && git commit --amend --no-edit && git rebase --continue

So this approach works. Although it needs some manual intervention.

> > BTW: It does not make any difference whether I add "-c merge.renormalze=true"
> 
> That option also does not exist.

Well, this is described in git(1) manpage:

   [ ... ]
   SYNOPSIS
       git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
   [ ... ]                                            ^^^^^^^^^^^^^^^^^^^


> git rebase --root -x 'git add --renormalize . && git commit --amend --no-edit'

Unfortunately, this runs the command on every commit and gives a warning when
a cmmit don't touch a filtered file:

  $ git rebase --root -x 'git add --renormalize . && git commit --amend --no-edit'
  [ ... ]
  No changes
  You asked to amend the most recent commit, but doing so would make
  it empty. You can repeat your command with --allow-empty, or you can
  remove the commit entirely with "git reset HEAD^".

Is there a way to run the command only when rebase halts?

-- 
Josef Wolf
jw@xxxxxxxxxxxxx




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux