Skip to content

commit -> continue leads to missing file warnings #3

@bdrewery

Description

@bdrewery

What is the intended next command after a mergify commit?

Using mergify start yields "merge in progress, you must 'abort' or 'continue'".

Using mergify conitnue yields the following:

[bdrewery@bdrewery-sea1][pts/5][zsh/2][Wed 08/03/2016 11:27:33 PDT][0?4&] (git)-[BR_PIPE_BSDMERGE_UPSTREAM_REFRESH|merge]- 
~/git/onefs3 % mergify commit                                                                                              
mergify: Found an in-progress merge, trying to commit                                                                      
Recorded resolution for 'sys/kern/makesyscalls.sh'.                                                                        
[BR_PIPE_BSDMERGE_UPSTREAM_REFRESH 673fb3e] Add support for COMPAT10 keywords in syscalls.master.                          
 Author: brooks                                                                                        
 Date: Wed Jun 22 21:12:53 2016 +0000                                                                                      
mergify: recording conflicts                                                                                               
[BR_PIPE_BSDMERGE_UPSTREAM_REFRESH 6686ce5] Add support for COMPAT10 keywords in syscalls.master.                          
 Author: brooks                                                                                        
 Date: Wed Jun 22 21:12:53 2016 +0000                                                                                      
mergify: commit of a11d117db18f7dc7ed2f1ff5b24a3518017f058b succeeded                                                      
[bdrewery@bdrewery-sea1][pts/5][zsh/2][Wed 08/03/2016 11:29:58 PDT][0?4&] (git)-[BR_PIPE_BSDMERGE_UPSTREAM_REFRESH]-       
~/git/onefs3 % mergify continue                                                                                            
cat: /local/ssd/bdrewery/git/onefs/.git/worktrees/onefs3/MERGIFY_CURRENT_HASH: No such file or directory                   
mergify: resuming merge at                                                                                                 
mv: cannot stat ‘/local/ssd/bdrewery/git/onefs/.git/worktrees/onefs3/MERGIFY_CURRENT_HASH’: No such file or directory      
mergify: attemping to merge e4ef2142c85cd9081fd589ffbefec3915f814669                                                       
e4ef2142c85cd9081fd589ffbefec3915f814669 Mark the pipe() system call as COMPAT10.                                          
Auto-merging sys/kern/syscalls.master                                                                                      
CONFLICT (content): Merge conflict in sys/kern/syscalls.master                                                             
Auto-merging sys/compat/freebsd32/syscalls.master                                                                          
Recorded preimage for 'sys/kern/syscalls.master'                                                                           
Automatic merge failed; fix conflicts and then commit the result.                                                          
mergify: automerge of e4ef2142c85cd9081fd589ffbefec3915f814669 unsuccessful                                                
mergify: resolve conflicts and 'continue', or 'abort'                                                                      
mergify: recording SVN revision 302094 into upstream/.base                                                                 
                                                                                                                           
mergify: sending Prowl alert                                                                                               

The problem is that MERGIFY_CURRENT_HASH was moved to MERGIFY_LAST_MERGED_HASH on mergify commit. It then tries to find it and fails with a cat warning. It then runs
hashes=git log --pretty=format:%H --reverse --first-parent ${lasthash}..${srcbranch}``
with an emptylasthashwhich results in`HEAD..${srcbranch}` and it actually continues on just fine.

If mergify commit is intended to stop then it needs to also clean up all leftover MERGIFY files as
mergify abort does. Otherwise continue needs to handle the missing file case better by avoiding the cat warning and setting a proper lasthash. mergify commit also needs to be protected against a double run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions