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

Fix reverting a merge commit failing (#28794) #28825

Merged
merged 2 commits into from
Jan 21, 2024

Commits on Jan 17, 2024

  1. Fix reverting a merge commit failing (go-gitea#28794)

    Fixes go-gitea#22236
    
    ---
    Error occurring currently while trying to revert commit using read-tree
    -m approach:
    > 2022/12/26 16:04:43 ...rvices/pull/patch.go:240:AttemptThreeWayMerge()
    [E] [63a9c61a] Unable to run read-tree -m! Error: exit status 128 -
    fatal: this operation must be run in a work tree
    > 	 - fatal: this operation must be run in a work tree
    
    We need to clone a non-bare repository for `git read-tree -m` to work.
    
    go-gitea@bb371ae
    adds support to create a non-bare cloned temporary upload repository.
    
    After cloning a non-bare temporary upload repository, we [set default
    index](https://github.com/go-gitea/gitea/blob/main/services/repository/files/cherry_pick.go#L37)
    (`git read-tree HEAD`).
    This operation ends up resetting the git index file (see investigation
    details below), due to which, we need to call `git update-index
    --refresh` afterward.
    
    Here's the diff of the index file before and after we execute
    SetDefaultIndex: https://www.diffchecker.com/hyOP3eJy/
    
    Notice the **ctime**, **mtime** are set to 0 after SetDefaultIndex.
    
    You can reproduce the same behavior using these steps:
    ```bash
    $ git clone https://try.gitea.io/me-heer/test.git -s -b main
    $ cd test
    $ git read-tree HEAD
    $ git read-tree -m 1f085d7ed8 1f085d7ed8 9933caed00
    error: Entry '1' not uptodate. Cannot merge.
    ```
    
    After which, we can fix like this:
    ```
    $ git update-index --refresh
    $ git read-tree -m 1f085d7ed8 1f085d7ed8 9933caed00
    ```
    me-heer committed Jan 17, 2024
    Configuration menu
    Copy the full SHA
    a896ba1 View commit details
    Browse the repository at this point in the history

Commits on Jan 21, 2024

  1. Configuration menu
    Copy the full SHA
    a0d84c8 View commit details
    Browse the repository at this point in the history