2011-04-11 5 views
12
Varolan dosya için bir yama oluşturmak bilmek

kolaydır:Yeni bir dosya için yama nasıl oluşturulur?

diff -aru oldFile newFile 2>&1 | tee myPatch.patch

Ama tamamen yeni dosya için bir yama oluşturmak istiyorsanız, ne yapmalı? Dosyamın TestDir adında bir klasörde olduğunu varsayalım. Daha önceki TestDir, entirelyNewfile.c adlı bir dosya içermiyordu, ancak şimdi aynı oluyor.

entirelyNewfile.c için bir yama nasıl oluşturulur? Buradaki fikir, yamanın spesifikasyonlara uygun şekilde uygulanması ve RPM oluşturulmasını oluşturmasıdır. BUILD dir bu yeni dosyaya sahip.

Eklemek gerekirse: iki dizin arasında bir değişiklik yapmaya çalışırsam, bir tanesi yeni dosyaya sahipken diğeri de eksikse, düzeltme eki oluşturmak için bu dosya yalnızca bir klasörde mevcut olduğunu belirten bir hata oluşturur.

cevap

14

-N, diff argümanlarına ekleyin.

+0

Çok teşekkürler. Ama bunları nasıl düzenleriz? --- Olddir/testUsecase2.cc 1970-01-01 05: 30: 00.000000000 +0530 +++ NewDir/testUsecase2.cc 2011-04-11 20: 39: 56.000000000 +0530 – kingsmasher1

+0

Bunlar düzgün biçimlendirilmemişse, bunlar genellikle RPM sırasında dosyaları reddeder bırakır. – kingsmasher1

0

Bunu bilmenin en kolay yolu, tüm dosyaları sürüm denetimi altına almaktır (henüz değilse). Ben Git tercih, ama benzer bir şey başka bir sürüm kontrol sisteminde yapılabilir:

git init 
git add . 
git commit -m "initial state" 
<do your edits here> 
git add . 
git commit -m "new state" 
git diff HEAD^1 
+0

Ama oradan RPM yapıları nasıl oluşturacaksınız? RPM oluşturma, SPEC dosyasına eklenecek tek yamalar gerektirir. – kingsmasher1

+0

"git diff" adımı, bir dosyaya kaydedilebilen ve daha sonra RPM .spec dosyanıza bir kaynak olarak eklenebilecek bir yama üretecektir. – jcollie

4
diff /dev/null <newfile> 

sizin newfile için bir yama yaratacaksınız.