Need help: Generating patch using git
From: amit mehta <hidden>
Date: 2012-01-30 18:33:25
On Mon, Jan 30, 2012 at 11:02 PM, Srivatsa Bhat [off-list ref] wrote:
On Mon, Jan 30, 2012 at 10:51 PM, amit mehta [off-list ref] wrote:quoted
Hi, kernel janitors group seem like a good place to start learning linux kernel and after reading some of the information available on kernel newbies website, i tried to generate a dummy patch and need your help for moving in correct direction of learning and contributing to linux kernel. So these are the steps that i've followed to generate this dummy patch. 1: Download the latest linux kernel sources using git # mkdir linux-next # cd linux-next # git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git linux-2.6 2: Do some modifications. # pwd /root/linux-next/linux-2.6 # git diffdiff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c index 6e412a6..9858701 100644 --- a/net/ipv4/ipconfig.c +++ b/net/ipv4/ipconfig.c@@ -441,7 +441,7 @@ static int __init ic_defaults(void)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?&ic_myaddr); ? ? ? ? ? ? ? ? ? ? ? ?return -1; ? ? ? ? ? ? ? ?} - ? ? ? ? ? ? ? printk("IP-Config: Guessing netmask %pI4\n", &ic_netmask); + ? ? ? ? ? ? ? printk(KERN_INFO "IP-Config: Guessing netmask %pI4\n", &ic_netmask); ? ? ? ?} ? ? ? ?return 0; 3: Generate a patch # pwd /root/linux-next/linux-2.6 # mkdir ../patches # git diff >../patches/ipconfigPatch.txtStrictly speaking, ?a complete patch has many more things, like a commit message, Signed-off-by line etc. Of course, if you are just playing around with patches just for fun, you need not worry about this. But if you want to contribute to the linux kernel, you would need to take care of all that. So, for that, instead of git diff, use: # git commit -a Type an appropriate commit message and add your Signed-off-by. (Your git configurations can help you automate stuff like Signed-off-by). # git format-patch -1 HEAD This will generate the patch for you. You can mail this using git send-email or by copy pasting it in your email client. You can refer to the video by Greg about submitting patches. http://www.youtube.com/watch?v=LLBrBBImJt4quoted
4: Test your patch 4a: Clear the local changes from the tree # git checkout -f 4b: Apply the patch # git apply ../patches/ipconfigPatch.txt The above step(4b) did not returned any git error so it seems to me that the steps to generate this patch was correct. 5: Check your mailer 5a: I just copied the contents of ../patches/ipconfigPatch.txt and pasted in the compose area and sent that mail to myself. After receiving this mail i copied and pasted the mail contents in a file under /root/linux-next/patches/dummyPatch.txt and tried to apply this patch using git but it gave me an error as below: # git apply ../patches/dummy.txt fatal: corrupt patch at line 11Ah, I think your email client corrupted it! (white-space damage perhaps) Check out Documentation/email-clients.txt for more info on how to make your email clients behave :-)
Thank you so much. I'll check the links that you've suggested. -Amit