Eli Schwartz 於 西元2015年07月23日 22:05 寫道:
On Thu, Jul 23, 2015 at 3:45 AM, Ting-Wei Lan <[email protected]> wrote:
I forgot 'git push --force' was no longer allowed in AUR4. I forgot to
include .SRCINFO changes in the last commit, and I can no longer do 'git
subtree push' to fix it because the pushed commit was rebased. I cannot use
'git reflog' and 'git reset' to go back to the old commit because I have
pushed changes to other packages after rebasing. It seems the only way to
fix it myself is doing 'git subtree pull', but it will cause the history
become very ugly.
Can I file a request to remove a commit for mingw-w64-gtk3 package? I
cannot find this type of request on AUR4 webpage, but I hope this can be
accepted.
I'm not sure if this would work, but what about using filter-branch to
restore the rebased commit to its original state? The sha1 checksums for
the later commits would change in the master repo, but as long as the
content and dates and stuff for the *individual* commits remains constant,
I think the subtree push will recreate the same history. Then simply
continue from the HEAD with a new commit to update the .SRCINFO.
You will have to make sure the rebased commit has the same author/committer
*dates* as well as removing the .SRCINFO (I assume that is what you
rebased).
Thanks! After I change the date of the rebased commit, 'git subtree
push' succeeds.
I suggest you steal some of my infrastructure, though. See:
https://github.com/eli-schwartz/pkgbuilds for an example of pre-commit and
prepare-commit-msg hooks that do the heavy lifting for you. Automatically
generating .SRCINFO on its own is VERY much worth it -- I don't even have
to bother remembering they exist!
Yes, I think I should add a pre-commit hook to prevent this problem from
happening again.
-- Eli Schwartz