On Sun, Sep 22, 2013 at 12:04:24AM +0300, Ram Rachum wrote: > I'm making a script `gm` which lets me merge one branch into another > without having either checked out. It works for some cases but not > all. I'm trying to make it work for more cases. > > I concluded that the best way to do it would be by using an > alternate, temporary working directory instead of the repo itself. Yes, otherwise you will be stomping all over the working tree of whatever branch _is_ checked out. > This is my script: > > https://gist.github.com/cool-RR/6575042 > > Now, the problem is that when I try it, it gives these errors: > > git checkout-index: my_file is not in the cache and then error: > my_file: cannot add to the index - missing --add option? > > Anyone has any idea what to do? Your script is quite similar to the one that is used server-side at GitHub to generate the "this can be merged" button for each pull request. So it should work in principle. Just a guess, but using a relative path for the temporary index file might be a problem. read-tree will operate from $GIT_DIR as its working directory, for example, but I think the git-merge-one-file script will be at the top-level of $GIT_WORK_TREE. Meaning that all of the sub-commands it runs will see an empty index. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html