cara memasukkan file baru ke dalam tambalan

9

Saya mencoba membuat tambalan seperti yang diperkenalkan di sini .
Katakanlah saya punya dua direktori pp1(modified version)dan pp0(clean version), saya membuat file tambalan pp0.patchdengan diffperintah:

 diff -crB pp0 pp1 > pp0.patch

Masalahnya adalah jika ada file hanya di pp1, itu tidak akan dimasukkan ke dalam tambalan. Bagaimana cara mengatasinya?

UPDATE :
Saya pertama-tama mengubah ke direktori pp0 dan menguji apakah patch akan berhasil

  patch --dry-run -p1 -i /path-to-pp0.patch

Meskipun saya telah menambahkan --new-fileke diffperintah, mereka hanya di pp1tidak terdaftar dalam hasil

PEMBARUAN :
Saya tidak sengaja menambal file yang salah

  diff -crb --new-file pp1 pp0 > pp0.patch

atau

  diff -crNb pp1 pp0 > pp0.patch

akan melakukan

manuzhang
sumber

Jawaban:

9

Anda harus dapat melakukan ini menggunakan --new-filesakelar. Diambil dari halaman manual berbeda :

 --new-file
          In directory comparison, if a file is found in only  one  direc-
          tory, treat it as present but empty in the other directory.

Coba ini:

diff -crB --new-file pp0 pp1 > pp0.patch
pootzko
sumber
Saya tidak tahu apakah saya telah menambalnya dengan benar tetapi file baru tidak termasuk
manuzhang
permintaan maaf saya, itu berhasil
manuzhang
3

Jawaban langsung :,diff -N seperti yang dijelaskan oleh pootzko . Anda akan menemukan bahwa banyak tambalan di luar sana dibuat oleh diff -urN.

Apa yang dapat membuat hidup Anda lebih baik: mulai menggunakan alat kontrol versi. Jika Anda tidak tahu, mulailah dengan salah satu dari tiga sistem kontrol revisi utama yang didistribusikan , Bazaar , Git , atau Mercurial . Periksa di versi bersih, kerja, periksa di pekerjaan Anda sebanyak yang Anda suka, dan tanyakan perbedaan sistem kontrol versi Anda dengan versi bersih dan pekerjaan Anda.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
thx, andai saja saya dapat memiliki satu di kehidupan nyata dan kembali ke masa lalu ketika melakukan kesalahan :)
manuzhang