Giter Site home page Giter Site logo

Comments (4)

webknjaz avatar webknjaz commented on June 8, 2024

Maybe inject black fixup commits in between user-created ones? This way the user could attempt to squash related things fairly easily if they want it...

P.S. I also do not like wholesale commits like this

from black_out.

ewjoachim avatar ewjoachim commented on June 8, 2024

I like this idea, this would allow a clear PR where you can check the diff, and then the repo owner would be resposible for the (madness of) rewriting the whole history.

But is there a way to fixup that wouldn't create rebase conflicts ? Not sure.

I was already surprised that git filter-branch would manage to blacken all commits without getting lost in applying the diffs. I don't know enough of the git internal specifics, but I guess git filter-branch is able to work on the state of the tree at each commit, whereas my experience with rebase is that it really much more works on the diff each commit introduces. But, again, I'm no git expert.

from black_out.

webknjaz avatar webknjaz commented on June 8, 2024

You can try injecting two commits, not one. Fixup + its revert. This would probably simplify the interactive rebase part. Then, you could squash those reverts with the following commits...

But yes, you are right. It's not exactly trivial. I'm currently helping out with packaging of pygit2 wheels so hopefully it will be possible to get those easily installable soon. It's interface should simplify plumbing level Git interactions...

from black_out.

ewjoachim avatar ewjoachim commented on June 8, 2024

Hmm, it's interesting but the --autosquash flag on rebase only allows moving commits to right after existing ones, and the 2 only commit merge actions, fixup and squash, only merge with the previous commit.

I'll need an example:
there's A ---- B, you're blackouting the repo, so you'll get 3 commits: A-Black, A-Black-Revert and B-Black : A --- A-Black --- A-Black-Revert --- B --- B-Black

There's 2 possible todo here:

pick A
fixup A-Black
reword A-Black-Revert
fixup B
fixup B-Black

but you'd have to manually enter B's commit message at the reword step, or

pick A
fixup A-Black
pick A-Black-Revert
squash B
fixup B-Black

But, again, you'd have to enter B's commit message at the squash step.

And non of those solutions can be achieved using fixup! or squash! commits only wich kinda defeats the purpose...

Except if I'm mistaken ?

from black_out.

Related Issues (9)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.