git-apply does not work in a sub-directory of a Git repository
- From
Mehul Jain <mehul.jain2029@gmail.com>
- Date
- Mar 22, 2016, 12:10 UTC
- Message-ID
- <CA+DCAeQQQH59Lb43Y4Bi1xktPNoODV11KkUBbKNG1OZ7mDb-UQ@mail.gmail.com>
Hello everyone,
Recently while using git-apply, I observed that if git-apply is used in a sub-directory of a Git repository then it silently dies without doing anything.
Here's what I did
~ $mkdir example ~ $cd example example $git init Initialized empty Git repository in /home/mj/example/.git/ example $echo main >main example $git add main example $git commit -m 'main' [master (root-commit) 97aeda3] main 1 file changed, 1 insertion(+) create mode 100644 main example $git checkout -b feature Switched to a new branch 'feature' example $echo modified >main example $git add main example $git commit -m 'modified' [feature 2551fa2] modified 1 file changed, 1 insertion(+), 1 deletion(-) example $mkdir outgoing example $git diff master >outgoing/feature.patch example $git checkout master Switched to branch 'master' example $cd outgoing/ outgoing $git apply feature.patch outgoing $cd .. example $cat main main
As you observed, patch wasn't applied. Is it intended behaviour of git-apply? Usually to apply the patch I have to copy it to top directory and then use git-apply.
I tried out git-am to apply the patch ("git format-patch" was used to make patch) while being in the "outgoing" sub-directory and it worked fine. So why does git-apply show this kind of behaviour?
Thanks, Mehul