Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commits that have been forced overwritten remain on dashboard/activity #3236

Open
1 of 7 tasks
mqudsi opened this issue Dec 19, 2017 · 12 comments
Open
1 of 7 tasks

Commits that have been forced overwritten remain on dashboard/activity #3236

mqudsi opened this issue Dec 19, 2017 · 12 comments
Labels
issue/confirmed Issue has been reviewed and confirmed to be present or accepted to be implemented type/bug

Comments

@mqudsi
Copy link
Contributor

mqudsi commented Dec 19, 2017

  • Gitea version (or commit ref): master
  • Git version: n/a
  • Operating system: n/a
  • Database (use [x]): n/a
    • PostgreSQL
    • MySQL
    • MSSQL
    • SQLite
  • Can you reproduce the bug at https://try.gitea.io:
    • Yes
    • No
    • Not relevant
  • Log gist: n/a

Description

Pushing a commit then overwriting that commit and force pushing results in both the overwritten and the new commit showing up in the dashboard/activity.

i.e.

git init .
echo "wrong commit" > file
git add file
git commit -m "wrong commit"
echo "right commit" > file
git add file
git commit --amend -m "right commit"
git push -f

Instead of just the expected right commit appearing in the dashboard/activity (since the old one has been force overwritten), both commits appear. Reproduced here: https://try.gitea.io/mqudsi/test2

Screenshot of incorrect result:

dashboard-old-commits

@stale
Copy link

stale bot commented Feb 9, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs during the next 2 weeks. Thank you for your contributions.

@stale stale bot added the issue/stale label Feb 9, 2019
@lunny lunny added the type/bug label Feb 11, 2019
@stale stale bot removed the issue/stale label Feb 11, 2019
@lunny lunny added the issue/confirmed Issue has been reviewed and confirmed to be present or accepted to be implemented label Feb 11, 2019
@0x3333
Copy link

0x3333 commented Mar 3, 2020

Is there anything I could do to fix this? If someone give me some guidance, I could work it out. Thanks.

@guillep2k
Copy link
Member

I don't think there's a simple way of "fixing" this. I'm not even sure it's a bug. Since the dashboard should notify of new events, why should those events disappear if they actually happened?

If you're force pushing to e.g. cover some mistake, I understand that you may not want others to see such mistake. But IMHO there is plenty of other uses for force pushing that it would be incorrect to hide.

Also, you must take into account that other users might have enabled e-mail notifications. Those e-mails are out there and can't be claimed back. 😁

@lunny
Copy link
Member

lunny commented Mar 3, 2020

@guillep2k I think the problem is if you force-push to a branch, the hidden commit should not be displayed on dashboard. It should be a bug of calculation of the commits affected when force pushing.

He didn't mean to delete the old events.

@guillep2k
Copy link
Member

But "not be displayed" and "delete the event" are equivalent from the UI point of view. I understand that if the commit was overwritten the link becomes invalid, but the entry should still show up in the dashboard. Perhaps something like:

image

@0x3333
Copy link

0x3333 commented Mar 3, 2020

After @guillep2k comment, it looks to me that he is right. Effectively, you pushed those commits, they must show up in the dashboard. My concern was that it was wrong, not to hide some mistake, but if you changed your history, you changed commits, if you changed commits, they should show up. Actually, this is a hint that something may have gone wrong.

I'm withdrawing my complaint... 😆

Thanks!

@Erriez
Copy link

Erriez commented Mar 2, 2021

Is there a workaround to remove specific commits from the Dashboard? I accidentally pushed a file with passwords, but remains on the Dashboard after rewriting the git history... However, the Git log is correct.

Thanks!

@lunny
Copy link
Member

lunny commented Mar 4, 2021

Currently, I think the workaround is to delete the comment from database directly.

@Erriez
Copy link

Erriez commented Mar 4, 2021

Thanks @lunny. I've deleted the entries manually from table actions and is no longer displayed at the Dashboard.

I ran the Garbage collect all repositories in the Site Administration, but the SHA1 link is still accessible. Is it possible to delete this as well?

@lunny
Copy link
Member

lunny commented Mar 6, 2021

The default garbage collect is 1 week ago unused commits You can change the default garbage collect time. See https://docs.gitea.io/en-us/config-cheat-sheet/#git-git GC_Args

@Erriez
Copy link

Erriez commented Mar 7, 2021

@lunny Thanks for pointing to the documentation. That's very useful.

However, I don't understand why the manual "Garbage collect all repositories" did not work:

image

After running it, the commits are still available. I have to wait a few days and then I know if there is a difference with the Cron garbage collection.

@devioa
Copy link
Contributor

devioa commented Sep 4, 2023

indeed this issue also troubles me
at least I also believe that force push should no longer be displayed on the dashboard

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
issue/confirmed Issue has been reviewed and confirmed to be present or accepted to be implemented type/bug
Projects
None yet
Development

No branches or pull requests

6 participants