ydata-profiling icon indicating copy to clipboard operation
ydata-profiling copied to clipboard

git history

Open vorel99 opened this issue 1 year ago • 1 comments

Current Behaviour

Hello, I'm sorry to ask, but what happened to git history of repo? Should I Rebase all my feature branches to actual version of develop?

I have old copy of develop branch here: https://github.com/vorel99/supervised-pandas-profiling/tree/develop but new branch is completely different.

Expected Behaviour

Data Description

Code that reproduces the bug

No response

pandas-profiling version

Dependencies

-

OS

No response

Checklist

  • [X] There is not yet another bug report for this issue in the issue tracker
  • [X] The problem is reproducible from this bug report. This guide can help to craft a minimal bug report.
  • [X] The issue has not been resolved by the entries listed under Common Issues.

vorel99 avatar Oct 11 '23 19:10 vorel99

Hi @vorel99,

I had to force-pushed the dev branch before the last release because of a commit that was not following the CI requirements. This might explain why you personal fork is off with the current dev as it might have change the commits after the faulty one.

In general, for each release we have to force push because of the way our CI works:

  • the CI bot will add some commits on the main branch related to code quality and the release notes
  • we have to re-align dev on master either before or after the release because of that

It is usually transparent for the user because even if the CI introduces new commits, they cannot create conflict such that even if the user does not rebase, it does not create conflict, just missing commits. However, when the history has to be rewritten because of a faulty commit, it messes up dev hashes after that one, notably for the forks.

Assuming the main repository is remote for your fork and your fork origin you can realign like this:

git fetch remote
git rebase origin/dev dev
git push origin/dev --force

If there are still conflicts during the rebase, you might want to realign manually:

# delete the commits from at the last release
git checkout dev
git reset HEAD~30 --hard   ## CAREFUL if you have local work on that branch that is not pushed, it is a destructive operation
git fetch remote
git rebase origin/dev dev
git push origin/dev --force

For a branch on which you have some work (i.e. existing commits), you can use an interactive rebase to remove the other commits but leave yours:

git checkout my-branch-from-dev
git rebase -i HEAD~30 # delete the lines representing the commits you want to delete, at least up to the last release
git fetch remote
git rebase origin/dev dev
git push origin/my-branch-from-dev --force

Let me know if you have any questions.

aquemy avatar Oct 17 '23 07:10 aquemy