openSuSE kernel is an upstream kernel tree with a set of patches. Last week, the second time I encountered the patch applying failure. From the .rej file, I could not see any conflict. This problem blocked me for the whole weekend, until my colleague Jeff Mohoeny and Jiri Slaby showed me the magic.
Jiri told me there were hardlinks from the git repository to the patched directory. If some files from the git repository got modified, the one in patched directory also got modified. Unless the modification got patched or edited by quilt edit, it should be problematic. I removed all the decompressed upstream kernel tree and repatched everything from the tar.bz2 upstream code file, everything backed to work.
Jeff kindly replied me a hint to solve this issue when using vim (cause it will try to edit in place), which is adding something into .vimrc:
set backup
if version > 700
set backupcopy=auto,breakhardlink
else
set backupcopy=no
endif
Jeff also told me the “if” part was because the SLES9 vim does not support the breakhardlink option, but it’ll still do the right thing.
By this experience, I realized it’s time to setup a blog for myself. Here it is