Provided by: manpages-tr_2.0.6-2_all bug

İSİM

       patch - yama dosyasını uygular

KULLANIM

       patch [seçenekler] [özgün [yama]]

       Genellikle şöyle kullanılır:

       patch -psayı < yama

AÇIKLAMA

       patch, diff(1) ile üretilmiş bir fark listesi içeren bir yama dosyası alır ve bu yama
       dosyasındaki farkları bir veya daha fazla özgün dosyaya uygulayarak özgün dosyaların
       yamalı sürümlerini üretir. Normalde yamalı sürümler özgün dosyalara yazılarak oluşturulur.
       Yedekler oluşturulabilir; -b ve --backup seçeneklerine bakınız. Yamanacak dosyaların
       isimleri normalde yama dosyasından alınır, ancak eğer sadece bir yamanacak dosya varsa
       ismi komut satırında özgün olarak belirtilebilir.

       patch çalıştırıldığında fark listesinin türü -c (--context), -e (--ed), -n (--normal) veya
       -u (--unified) seçenekleri ile belirtilmemişse önce fark listesinin türünü saptamaya
       çalışır. ed fark dosyaları bir boru ile ed(1) metin düzenleyicisine uygulanırken,
       bağlamsal fark dosyaları (eski, yeni ve birleşik) ve normal fark dosyaları doğrudan patch
       tarafından uygulanır.

       patch yama dosyasındaki olası bozuk alanları atlayarak yamayı uygulamaya çalışır. Bu
       özelliğinden yararlanarak yama dosyası içine bir açıklama yerleştirebilirsiniz ve buna
       rağmen yama uygulanır. Eğer diff dosyasının içeriği sürekli aynı biçimde girintilenmişse
       veya bir bağlamsal fark dpsyasında satırlar CRLF ile bitiyorsa ya da Internet RFC 934’de
       "-" için belirtildiği gibi "-" ile başlayan satırlar varsa bunlar hesaba katılır.

       Bağlamsal fark dosyaları ile ve bir daha az genişletme yapan normal fark dosyaları ile
       patch, yama içindeki satır numaraları yanlış olduğunda bunu saptayabilir ve yama
       listesinin her elemanının uygulanacağı doğru yeri bulmaya çalışır. Önce listedeki her
       eleman ile ilgili satır numaralarını alır ve yamanın uygulanmasında kullanılan artı ve
       eksi ile belirlenmiş satırlara bakar. Eğer satır numaraları doğru yeri belirtmiyorsa, eksi
       ile belirtilmiş satırları bulmak üzere metni ileri ve geri her iki yönde tarar. patch ilk
       taramada değiştirilecek satırların tamamı için bir eşleşme arar. Böyle bir eşleşme
       bulamazsa, yama dosyası bir bağlamsal yama dosyası ise ve belirsizlik faktörü de 1 ise
       değiştirilecek satırların ilkini ve sonuncusunu yok sayarak bir arama daha yapar.
       Bulamazsa ve belirsizlik faktörü 2 veya 2 den büyükse bu kez ilk ve son iki satırı yok
       sayarak bir arama daha yapar. (Öntanımlı belirsizlik faktörü 2’dir.)

       Sonek bağlamından daha az önek içeriğine sahip olan yama parçaları (belirsizlik
       uygulandıktan sonra), ilk satır numarası 1 ise dosyanın başlangıcına uygulanmalıdır. Önek
       bağlamından daha az sonek içeriğine sahip olan yama parçaları ise (belirsizlik
       uygulandıktan sonra) dosyanın sonuna uygulanmalıdır.

       patch yamanın uygulanacağı yeri bulamazsa, uygulayamadığı bölümü bir red dosyasına yazar.
       Bu dosyanın ismi normalde yama dosyasının ismine .rej eklenerek elde edilir. Eğer .rej eki
       çok uzun bir dosya ismi oluşturacaksa dosya isminin sonuna # eklenir, bu karakter de fazla
       geliyorsa dosya isminin son karakteri # ile değiştirilir. (Rededdilen kısım yamanın
       biçiminden bağımsız olarak sıradan bağlamsal fark biçiminde çıktılanır. Eğer girdi bir
       normal fark dosyası ise bağlamın çoğu basitçe boş olur.)

       Reddedilen parça, birleşik veya bağlam farkı biçeminde çıkar. Girdi normal bir farksa,
       bağlamların çoğu basitçe boştur. Red dosyasındaki reddedilen kısımlarla ilgili satır
       numaraları yama dosyasındaki satır numaralarından farklı olabilir: yeni satır numaraları
       yamanın eski dosyada değil de yeni (yamanmış) dosyada bulunabileceği yaklaşık yeri
       belirtecek şekilde oluşturulur.

       Her yama parçası tamamlandığında, eğer parçanın uygulanması başarısız olmuşsa (yeni
       dosyadaki) hangi satırdan itibaren devam edeceğini size bildirilir. Eğer yama parçası fark
       dosyasında belirtilen satırdan farklı numaralı bir satıra uygulanmışsa size yeni konumu
       bildirir. Yeni konumun çok farklı olması parçanın yanlış yeri yamamakta kullanıldığını
       belirtebilir. Bir eşleşme bulunurken belirsizlik faktörü kullanmak gerekmişse, biraz kuşku
       duyasınız diye bu da ayrıca bildirilir. --verbose seçeneğini belirtmişseniz başarıyla
       uygulanan yama parçaları hakkında da bilgi verilir.

       Komut satırında özgün dosya belirtilmemişse patch, yama dosyasındaki yama olarak
       uygulanabilecek alanların dışındaki alanları değerlendirerek aşağıdaki kurallara bağlı
       olarak yamanın uygulanacağı dosyanın ismini tespit etmeye çalışır.

       Önce, aday dosya isimlerinin listesini elde etmeye çalışır. Bunu şöyle yapar:

         •  Başlık bir bağlamsal fark dosyası başlığı ise, patch eski ve yeni dosya isimlerini
            başlıktan alır. Eğer isimdeki bölü çizgilerinin sayısı -psayı veya --strip=sayı
            seçenekleri ile belirtilen kadar değilse bu isim yoksayılır. /dev/null ismi de ayrıca
            yoksayılır.

         •  Yama olarak uygulanacak alanların dışında Index: ile başlayan satırlar varsa ve hem
            yeni hem de eski dosya isimleri belirtilmemişse veya patch POSIX uyumlu ise, patch
            dosya isimlerini Index: ile başlayan satırlardan alır.

         •  Bundan sonraki kurallara uygun olmak üzere, aday dosya isimlerinin, başlıkta
            göründükleri sıraya bakılmaksızın, (eski, yeni, index) düzeninde olacakları
            varsayılır.

       patch bir dosya ismini aday dosya listesinden şu kurallara göre seçer:

         •  Bazı isimli dosyalar mevcutsa, patch POSIX uyumluysa ilk dosya ismi değilse en iyi
            isim seçilir.

         •  Eğer patch RCS, ClearCase, Perforce ve SCCS’yi yoksaymıyorsa (-g sayı veya --get=sayı
            seçeneklerine bakınız) ve belirtilen dosya mevcut değilse ama bir RCS, ClearCase,
            Perforce veya SCCS ana dosyası varsa patch belirtilen ilk dosyayı RCS, ClearCase,
            Perforce veya SCCS ana dosyası ile seçer.

         •  Belirtilen dosya mevcut değilse, bir RCS, ClearCase, Perforce veya SCCS ana dosyası
            da yoksa ama bazı dosya isimleri verilmişse, patch POSIX uyumlu değilse ve yamanın
            bir dosya oluşturması gerekiyorsa, patch en az dizin oluşturulacak şekilde en iyi
            dosya ismini seçer.

         •  Şimdiye dek bahsedilen kurallarla bir dosya ismi seçilememişse, yamanacak dosyanın
            ismi size sorulur ve patch dosya ismini buna göre seçer.

       Belirtilen dosyalar listesinden "en iyi" dosya ismi şöyle seçilir: önce en az sayıda
       dizini dosya yolu olarak alır, bundan sonra, uzantısız en kısa dosya isimleri, bunlardan
       sonra en kısa isimlerin tümü ve son olarak da kalan ilk isim alınır.

       Ek olarak, Yama olarak uygulanacak alanların dışında Prereq: ile başlayan bir satır varsa,
       patch bu öngereklilikler satırındaki ilk sözcüğü (normalde bir sürüm numarasıdır) alır ve
       özgün dosyaya bu sözcük var mı diye bakar. Yoksa patch işine devam etmeden önce bir
       doğrulama isteği yapar.

       Tüm bunların nihayetinde, şöyle bir bildirim de yapabilirsiniz:

           | patch -d /usr/src/local/blurfl

       ve, blurfl dizinindeki dosya yama dosyasıyla yamanır.

       Eğer yama dosyası bir yamadan fazlasını içeriyorsa patch onların her birini farklı birer
       yama dosyasından geliyormuşçasına uygular. Yama olarak uygulanabilecek her satır grubundan
       önce gelen satırlarda bulunan dosya isimleri ve sürüm numaralarından yukarıda bahsedildiği
       gibi yamanacak dosyanın ismi saptanarak bu işlem gerçekleştirilir.

SEÇENEKLER

       Uzun seçenekler için zorunlu olan girdiler kısa seçenekler için de zorunludur.

       -b, --backup
           Dosyaların yedeğini oluşturur. Bir dosya yamanırken özgün dosya silinmez, ya başka bir
           yere kopyalanır ya da ismi değiştirilir. Mevcut olmayan bir dosyanın yedeği
           yapılırken, olmayan dosyayı belirtmek için sadece ismi olan cismi olmayan (boş) bir
           dosya oluşturulur. Yedek dosya isimlerinin nasıl oluşturulduğu -V veya --version-
           control seçeneklerinin açıklamalarında bulunabilir.

       --backup-if-mismatch
           Yama bir dosya ile tam uyuşmazsa ve yedekleme istenmese de dosya yedeklenir. patch
           POSIX uyumlu değilse bu seçenek öntanımlı olarak uygulanır.

       --no-backup-if-mismatch
           Yama bir dosya ile tam uyuşmazsa ve yedekleme istense de dosya yedeklenmez. patch
           POSIX uyumlu değilse bu seçenek öntanımlı olarak uygulanır.

       -B, --prefix=önek
           Basit yedek dosya ismi oluşturulurken dosya isminin önüne önek getirilir. Örneğin, -B
           /junk/ ile dosya ismi src/patch/util.c olan bir dosyanın basit yedeği yapılırken dosya
           ismi /junk/src/patch/util.c yapılır.

       --binary
           Standart çıktı veya /dev/tty dışında tüm dosyalar için okuma ve yazma işlemleri ikil
           kipte yapılır. Bu seçenek POSIX uyumlu sistemlerde etkisizdir. DOS benzeri sistemlerde
           ise bu seçeneğin bir fark oluşturması için yama diff -a --binary ile üretilmiş
           olmalıdır.

       -c, --context
           Yama dosyası sıradan bir bağlamsal fark dosyası olarak yorumlanır.

       -d, --directory=dizin
           Hiçbir şey yapmadan, hemen dizine geçilir.

       -D , --ifdef=tanım
           Değişiklikleri işaretlemede #ifdef ... #endif yapısı tanım farklılaştırma simgesi ile
           kullanılır.

       --dry-run
           Hiçbir dosyada değişiklik yapmaksızın uygulanan yamaların sonuçları basılır.

       -e, --ed
           Yama dosyası bir ed betiği olarak yorumlanır.

       -E, --remove-empty-files
           Yama uygulandıktan sonra boşalan dosyalar silinir. Aslında, bu seçenek gereksizdir,
           çünkü patch yamadıktan sonra dosyanın varolup olmayacağını saptamak için başlıktaki
           tarih damgasını inceler. Buna rağmen, girdi bir bağlamsal fark dosyası değilse ya da
           patch POSIX uyumlu ise, patch bu seçenek verilmedikçe yamandıktan sonra boşalan
           dosyaları silmez. patch böyle bir dosyayı sildikten sonra boşalmışsa dosyanın
           bulunduğu dizini de silmeye çalışır.

       -f, --force
           Kullanıcının ne yaptığını tam olarak bildiği varsayılır ve kullanıcıya herhangi bir
           soru yöneltilmez. Hangi dosyaların yamanacağını belirtmeyen başlıklar içeren yamalar
           atlanır; Prereq: ile başlayan satırlarda yanlış sürüm bilgisi olsa bile dosya yamanır;
           eski ve yeni dosyaların yer değiştirilmesi gerekse bile yamaların bu işlem yapılmadan
           uygulanacağı varsayılır. Bu seçenek açıklamaları engellemez, bunun için -s seçeneğine
           bakınız.

       -F , --fuzz=sayı
           En büyük belirsizlik faktörünü belirtmekte kullanılır. Bu seçenek sadece bağlamsal
           fark dosyalarına uygulanır ve patch yamanacak yeri bulurken yama olarak kullanılacak
           satırların baştan ve sondan bu kadarını yoksayar. Çok büyük belirsizlik faktörlerinin
           yamanın başarısızlığını arttıracağını unutmayın. Öntanımlı belirsizlik faktörü 2’dir
           ve bağlamsal fark dosyalarında bağlamsal satır sayısından daha yüksek bir değer
           (genelde 3’tür) atanmamalıdır.

       -g , --get=sayı
           Bir dosya RCS veya SCCS denetimindeyken, böyle bir dosya yoksa veya salt-okunursa ya
           da öntanımlı sürümüyle eşleşiyorsa; veya ClearCase denetimindeyken, böyle bir dosya
           yoksa, bu seçenek, patch’in eylemlerini denetlemekte kullanılır. sayı pozitifse, patch
           dosyayı sürüm denetim sisteminden alır; sıfırsa, RCS, SCCS veya ClearCase yoksayılır
           ve dosya alınmaz; negatifse dosyanın alınıp alınmayacağı kullanıcıya sorulur. Bu
           seçeneğin öntanımlı değeri eğer atanmışsa, PATCH_GET ortam değişkeninden alınır;
           atanmamışsa öntanımlı değer sıfırdır.

       --help
           Seçeneklerin bir özetini basar ve çıkar.

       -i, --input=yamadosyası
           Yama yamadosyası dosyasından okunur. yamadosyası olarak - verilmişse öntanımlı olarak
           standart girdi okunur.

       -l, --ignore-whitespace
           Yamanacak dosyaların içindeki sekmeler ve boşluklar için yama içindeki boşluklarla
           birebir eşleşme aranmaz, ancak herhangi bir uzunlukta boşluğun her iki dosyada da
           karşılıklı varlığı şarttır, satır sonlarındaki boşluklar eşleşme açısından yoksayılır.
           Normal karakterler tam olarak eşleştirilir. Bağlamsal her satır yamanacak dosyadaki
           satırlarla daima eşleştirilir.

       --merge, -merge=merge, -merge=diff3
           < Yama dosyasını özgün dosyaya diff3(1) veya merge(1) gibi uygular. Bir çelişki
           bulunursa patch bir uyarı çıktılar ve çelişkiyi <<<<<<< ve >>>>>>> satırları arasına
           yerleştirir. Bir çelişki genelde şuna benzer:

              <<<<<<<
              özgün dosyadaki satırlar
              |||||||
              yamadaki özgün satırlar
              =======
              yamadaki yeni satırlar
              >>>>>>>

           --merge seçeneğinin seçimlik girdisi çelişkinin çıktılanma biçemini değiştirir: diff3
           biçeminde ||||||| bölümünden sonra yamadaki özgün satırlar gösterilir; merge
           biçeminde, bu bölüm olmaz. merge biçemi öntanımlıdır.

           Bu seçenek --forward seçeneğini de uygularken --fuzz=sayı seçeneğini yok sayar.

       -n, --normal
           Yama dosyası, normal yama dosyası olarak yorumlanır.

       -N, --forward
           Eski ve yeni dosyaların yer değiştirileceği görünen veya zaten uygulanmış yamalar
           yoksayılır. -R seçeneğine de bakınız.

       -o, --output=çıktıdosyası
           Dosyaların yerinde yamanması yerine çıktı, çıktıdosyası dosyasına gönderilir.

       -p, --strip=sayı
           Yama dosyasında bulunan her dosya isminin başından sayı ile belirtilen sayıda bölü
           çizgisi içeren dizge yoksayılır. Birden fazla yanyana bölü çizgisi varsa bunlar tek
           bir bölü çizgisi sayılır. Yama dosyasının yamanacak dosyalardan farklı bir dizinde
           tutulması durumunda yamanacak dosyaların nasıl bulunacağını belirtmek amacıyla
           kullanılır. Örneğin, yama dosyasında yamanacak dosya isminin şöyle verildiğini
           varsayalım:

              /u/howard/src/blurfl/blurfl.c

           Seçenek -p0 olarak verilirse bu dizge olduğu gibi ele alınır, -p1 verilirse,

              u/howard/src/blurfl/blurfl.c

           baştaki bölü çizgisi atılır, -p4 verilirse,

              blurfl/blurfl.c

           olur. -p hiç belirtilmezse sonuç blurfl.c olacaktır. Bu durumda dosya yamanın
           bulunduğu dizinde aranacağından dosya daha farklı bir yerdeyse bu da -d seçeneği ile
           belirtilebilir.

       --posix
           POSIX standardına kesinlikle uyulur:

            •  Fark dosyası başlıklarından dosya isimleri öğrenilirken, listedeki (eski, yeni,
               birleşik) ilk mevcut dosya alınır.

            •  Yamandıktan sonra boşalan dosyalar silinmez.

            •  RCS, ClearCase veya SCCS’deki dosyalar için alınacak mı diye sormaz.

            •  Komut satırında seçeneklerin dosyalardan önce verilmesi gerekir.

            •  Eşleşmeyen dosyaların yedeklemesi yapılmaz.

       --quoting-style=sözcük
           Çıktılanan isimler sarmalanırken sözcük ile belirtilen tarz kullanılır. sözcük
           şunlardan biri olabilir:

           literal
               İsimler olduğu gibi çıktılanır.

           shell
               İsimler kabuk metakarakterleri içeriyorsa kabuk için sarmalanır yoksa anlamı
               belirsiz çıktılama yapılır.

           shell-always
               Normalde sarmalanmaları gerekmese bile isimler daima kabuk için sarmalanır.

           c   İsimler C dilinde dizgelere uygulandığı gibi sarmalanır.

           escape
               İsimler çevreleyen çifttırnakların ihmal edilmesi dışında c tarzındaki gibi
               sarmalanır.

           --quoting-style seçeneği için öntanımlı değeri QUOTING_STYLE ortam değişkeninde
           belirtebilirsiniz. Bu ortam değikeni atanmamışsa öntanımlı değer shell’dir.

       -r, --reject-file=reddosyası
           Reddedilenler öntanımlı .rej dosyası yerine reddosyasına konulur. reddosyası olarak -
           belirtilmişse reddedilenler yok sayılır.

       -R, --reverse
           Bu yamanın eski ve yeni dosyalar yer değiştirilerek uygulanacağı varsayılır. Yama
           olarak kullanılacak her bölümdeki eski ve yeni satırlar yer değiştirilerek uygulanmaya
           çalışılır. Yer değiştirildiğinde anlamsız olan kısımlar reddedilir. -R seçeneği ed
           fark betikleri ile çalışmaz, çünkü yer değiştirme işlemini gerçekleştirmek için çok az
           bilgi içerirler.

           Yama içindeki kısımlardan ilkinin uygulanması başarısız olursa, patch bu kısmın eski
           ve yeni satırlarını yer değiştirerek böyle uygulanabiliyor mu diye bakar. Böyle
           uygulanabiliyorsa kullanıcıya -R seçeneğinin uygulanmasını isteyip istemediğini sorar.
           Uygulanamıyorsa, patch normal olarak uygulamaya devam eder. (Bilgi: Eğer yama bir
           normal yama ise ve boş bir içerik bile daima eşleşeceğinden ilk komut yamanın bir ek
           uygulanacağını belirtiyorsa bu yöntem yer değiştirmeli yamayı saptayamaz. Tesadüfen,
           çoğu yama bir satırın tamamen silinmesini değil ya bir ek ya da bir değişiklik
           yapılmasını gerektirir, bu durumda yer değiştirmeli normal fark dosyalarından silme
           işlemi ile başlayanlar başarıyı arttıran kuralların uygulanmasına bağlı olarak
           başarısız olur.)

       --read-only=davranış
           Salt-okunur bir dosyada değişiklik yapılırken belirtilen davranışa uyulur: ignore ise
           olası sorunlar yok sayılır, warn ise bu konuda uyarır, fail ise işlem başarısız olur.

       reject-format=biçem
           Reddedilenler dosyaları belirtilen biçemde üretir (context veya unified). Bu seçenek
           olmaksızın yama unified (birleşik) ise reddedilen parçalar da unified diff biçeminde
           olur. Aksi takdirde, context (bağlamsal) diff biçeminde olur.

       -s, --silent, --quiet
           Bir hata oluşmadıkça bilgilendirici hiçbir şey çıktılanmaz.

       --follow-symlinks
           Girdi dosyalarını aranırken sembolik bağlar izlenir. Sembolik bağların işaret ettiği
           dosyaları değiştirmek yerine sembolik bağları değiştirir. Sembolik bağlara Git tarzı
           yamalar artık uygulanmamaktadır. Bu seçenek, yamanın önceki sürümleriyle geriye dönük
           uyumluluk için mevcuttur; kullanımı önerilmez.

       -t, --batch
           -f seçeneğinde olduğu gibi sorular engellenir ama bu biraz farklı kabulllerle yapılır:
           başlıklarında dosya isimlerini içermeyen yamalar atlanır (-f ile aynı); yamanın
           Prereq: satırında yanlış sürüm belirtilen dosyalar için yamalar atlanır; ve yer
           değiştirme uygulanması gerekliliği saptanan yamaların yer değiştirme ile uygulanacağı
           varsayılır.

       -T, --set-time
           Yamanmış dosyaların erişim ve değiştirme zamanları, bağlamsal fark dosyalarının
           başlıklarındaki zaman bilgisinin yerel zamanı gösterdiği varsayımıyla bu zamana
           ayarlanır.

           Bu seçeneğin kullanılması önerilmez, çünkü yerel zaman kullanılarak uygulanan yamaları
           diğer zaman dilimlerindeki kulanıcılar kolayca kullanamazlar, ayrıca yaz saati
           uygulamasından dolayı yerel zaman damgaları yamanın geçmişte uygulanması gibi
           tuhaflıklara sebep olabilir. Bu seçenek yerine -Z veya --set-utc seçeneklerini
           kullanarak zamanı UTC’ye göre belirtmeyi tercih edin.

       -u, --unified
           Yama dosyası birleşik bağlamsal fark dosyası olarak yorumlanır.

       -v, --version
           patch’in sürümünü ve yama seviyesini basar ve çıkar.

       -V, --version-control=yöntem
           Yedek dosya isimleri saptanırken yöntem kullanılır. Bu yöntem ayrıca bu seçenek ile
           gerektiğinde değiştirilmek üzere PATCH_VERSION_CONTROL (veya bu atanmamışsa
           VERSION_CONTROL) ortam değişkeni ile atanabilir. Burada bir yöntemin atanması
           yedekleme yapılacağı anlamına gelmez, sadece yedekleme yapılacaksa yedek dosyalarının
           ismi bu yöntem kullanılarak saptanır.

           yöntem değeri GNU Emacs’ın ’version-control’ değişkeni gibidir; farklı olarak patch
           daha açıklayıcı olan eşanlamlılarını da tanır. Geçerli yöntem değerleri şunlardır
           (eşsiz kısaltmalar da kabul edilir):

           existing, nil
               Zaten varolan dosyaların numaralı yedekleri yapılır, aksi takdirde basit yedekleme
               yapılır. Bu öntanımlıdır.

           numbered, t
               Numaralı yedekleme yapılır. F dosyasının yedek dosyası N sürüm numarasını
               belirtmek üzere F.~N~ biçiminde isimlendirilir.

           simple, never
               Basit yedekleme yapılır. -B (--prefix), -Y (--basename-prefix) ve -z (--suffix)
               seçenekleri ile basit yedek dosyası ismi belirtilebilir. Bu seçeneklerin hiçbiri
               belirtilmemişse, basit yedekleme soneki kullanılır; sonek değeri
               SIMPLE_BACKUP_SUFFIX ortam değişkeni ile belirtilmemişse öntanımlı olarak .orig
               soneki kullanılır.

           Numaralı ve basit yedeklemede dosya ismi çok uzun olursa bunlar yerine sonek olarak ~
           kullanılır, bu işlem de dosya isminin çok uzun olmasına sebep oluyorsa dosya ismindeki
           son karakter ~ karakteri ile değiştirilir.

       --verbose
           Yapılan işlem hakkında daha ayrıntılı bilgi verilir.

       -x, --debug=sayı
           Sadece patch yamacılarını ilgilendiren hata ayıklama seçeneklerini belirtmek için
           kullanılır.

       -Y, --basename-prefix=önek
           Basit yedek dosyası ismi oluşturulurken dizinlerden arındırılmış dosya isminin önüne
           önek getirilir. Örneğin basit yedek dosya ismi -Y .del/ ile belirtilmişse
           src/patch/util.c dosyasının ismi src/patch/.del/util.c yapılır.

       -z, --suffix=sonek
           Basit yedek dosyası ismi oluşturulurken dosya isminin sonuna sonek getirilir. Örneğin
           basit yedek dosya ismi -z - ile belirtilmişse src/patch/util.c dosyasının ismi
           src/patch/util.c- yapılır. Yedekleme soneki gerektiğinde bu seçenek ile değiştirilmek
           üzere SIMPLE_BACKUP_SUFFIX ortam değişkeni ile de atanabilir.

       -Z, --set-utc
           Yamanmış dosyaların erişim ve değiştirme zamanları, bağlamsal fark dosyalarının
           başlıklarındaki zaman bilgisinin koordinatlı evrensel zamanı (UTC; GMT olarak da
           bilinir) gösterdiği varsayımıyla bu zamana ayarlanır. Ayrıca -T veya --set-time
           seçeneklerinin açıklamasına da bakınız.

           Dosyanın özgün zamanı yama başlığında belirtilen zamanla eşleşmezse ya da onun içeriği
           yama ile tam olarak eşleşmezse, -Z (--set-utc) ve -T (--set-time) seçenekleri bir
           dosyanın zamanını ayarlamaktan kaçınır. Buna rağmen -f (--force) seçeneği
           belirtilmişse dosyanın zamanı ne olursa olsun ayarlanır.

           diff çıktı biçiminin sınırlamalarından dolayı, dosyaları içeriği değiştirilmeyecekse,
           bu seçeneklerle bu dosyaların zamanı güncellenemez. Ayrıca, bu seçenekleri
           kullandığınız takdirde, zamanları güncellenmiş dosyalara bağımlı dosyaları
           kaldırmalısınız (make clean gibi). Böylece sonraki make çağrılarında yamanmış
           dosyaların zamanlarından dolayı hatalarla/uyarılarla karşılaşmazsınız.

ORTAM DEĞİŞKENLERİ

       PATCH_GET
           Eksik ya da salt-okunur dosyaların RCS, ClearCase, Perforce veya SCCS’den öntanımlı
           olarak alınıp alınmayacağını belirtmek için kullanılır. -g (--get) seçeneğinin
           açıklamasına bakınız.

       POSIXLY_CORRECT
           Bu değişken atanmışsa patch öntanımlı olarak POSIX standardına uyumlu davranır.
           --posix seçeneğinin açıklamasına bakınız.

       QUOTING_STYLE
           --quoting-style seçeneğinin öntanımlı değeridir.

       SIMPLE_BACKUP_SUFFIX
           Bu ortam değişkeninin değeri basit yedekleme dosyalarında .orig soneki yerine
           kullanılacak sonektir.

       TMPDIR, TMP, TEMP
           Geçici dosyaları konulacağı dizindir. patch bu listeden atanmış değerlerden ilkinin
           değeri kullanır. Hiçbiri atanmamışsa sisteme bağlı öntanımlı değer kullanılır. Unix
           makinalar için bu değer normalde /tmp dizinidir.

       VERSION_CONTROL, PATCH_VERSION_CONTROL
           Sürüm denetim tarzını belirtir. -v (--version-control) seçeneğinin açıklamasına
           bakınız.

İLGİLİ DOSYALAR

       /dev/tty
           denetim uçbirimi; kullanıcıya sorulan soruların yanıtlarını almak için kullanılır

       $TMPDIR/p*
           geçici dosyalar

İLGİLİ BELGELER

       diff(1), ed(1).

       Marshall T. Rose ve Einar A. Stefferud, Proposed Standard for Message Encapsulation,
       Internet RFC 934 <URL: http://ftp.isi.edu/innotes/rfc934.txt> (1985-01).

YAMA GÖNDERENLER İÇİN

       Yama göndermeye hazırlanıyorsanız, hatırlamanız gereken bir sürü şey olacaktır.
       Yamanızı sistemli olarak oluşturmalısınız. İyi bir yöntem

       diff -Naur eski yeni komutunu kullanmaktır. Burada eski ve yeni ile eski ve yeni dizin
       isimleri belirtilir. Bu isimler herhangi bir eğik çizgi çizgisi içermemelidir. diff
       komutunun başlıkları yama uygulayıcıların yamayı -Z (--set-utc) seçeneği ile
       uygulayabilecekleri şekilde Evrensel Zamanda geleneksel Unix tarih ve zaman biçeminde
       içermelidir. Bu örnekte, komut Bourne kabuğu (bash) sözdizimiyle yazılmıştır:

           LC_ALL=C TZ=UTC0 diff -Naur gcc-2.7 gcc-2.8

       Yamanızı uygulayacak olanlara hangi dizine geçip hangi patch seçeneğini kullanacağını
       söyleyin. Seçenek dizgesi olarak -Np1 önerilir. Yaptığınız yamayı kendinizi yamayı
       alacakların yerine koyarak deneyin, yani özgün dosyaların bir kopyasına bu yamayı
       uygulayın.

       İlk diff’e göre yama seviyesini arttırmak için yamanmış bir patchlevel.h dosyası tutmaktan
       dolayı çok üzgün kişileri gönderdiğiniz yama sayesinde kazanabilirsiniz. Yama içine bir
       Prereq: satırı koyarsanız onların sıradışı yamaları uygularken bazı uyarılar almamasını
       sağlamış olursunuz.

       Bir dosyanın yama uygulanırken oluşturulmasını isterseniz, oluşturulacak dosyayı /dev/null
       ile ya da zaman damgası Unix çağ başlangıcına (Epoch: 1970-01-01 00:00:00 UTC) ayarlanmış
       boş bir dosya ile karşılaştırılarak yapılmış bir fark dosyası ile bunu sağlayabilirsiniz.
       Bu sadece, oluşturulacak dosya hedef dizinde yoksa çalışır. Tersine, yama uygulanıren
       mevcut bir dosyanın silinmesini isterseniz, silinecek dosyayı yine zaman damgası Unix çağ
       başlangıcına ayarlanmış boş bir dosya ile karşılaştırılarak yapılmış bir fark dosyası ile
       bunu sağlayabilirsiniz. Silinmesini istediğiniz dosya, patch POSIX uyumlu değilse ve -E
       (--remove-empty-files) seçeneği verilmişse, silinecektir. Dosyaları oluşturan ya da silen
       yamalar üretmenin kolay bir yolu GNU diff’in -N (--new-file) seçeneğini kullanmaktır.

       Alıcıların -pN seçeneğini kullanacağını varsayıyorsanız, böyle bir çıktıya sahip yamayı
       göndermeyin:

           diff -Naur v2.0.29/prog/README prog/README
           --- v2.0.29/prog/README   Mon Mar 10 15:13:12 1997
           +++ prog/README   Mon Mar 17 14:58:22 1997

       Çünkü burada eski ve yeni dosya isimleri farklı sayıda bölü çizgisi içermektedir ve
       patch’in farklı sürümleri dosya isimlerini farklı yorumlarlar. Karışıklığı önlemek için
       böyle bir çıktı üreten yamalar gönderin:

           diff -Naur v2.0.29/prog/README v2.0.30/prog/README
           --- v2.0.29/prog/README   Mon Mar 10 15:13:12 1997
           +++ v2.0.30/prog/README   Mon Mar 17 14:58:22 1997

       README.orig gibi yedek dosya ismi olarak kullanılabilecek bir dosya ismi ile
       karşılaştırılarak üretilmiş yamalar göndermekten kaçının. Böyle bir yama patch’in gerçek
       dosyayı değil yedekleme dosyasını yamamasına yol açabilir. Bunun yerine old/README ve
       new/README gibi farklı dizinlerde bulunan aynı isimli iki dosyayı karşılaştırın.

       Yer değiştirmeli yamalar göndermemeye çalışın. Böyle bir yama zaten uygulanmış bir yama
       gibi görüneceğinden insanları şaşırtır.

       Yamanızın türetilerek elde edilen dosyaları yamamasına dikkat edin (makefile’ınızın içinde
       configure: configure.in diye bir satır var diye configure dosyasını yamamak gibi.).
       Alıcılar bu tür türetilerek elde edilen dosyaları zaten kendileri türetebilmelidir.
       Türetilen dosyalar için fark dosyaları göndermek zorundaysanız, fark dosyalarını UTC
       kullanarak üretin. Böylece alıcılar yamayı -Z (--set-utc) seçeneği ile uygulayıp yamanmış
       dosyalara bağımlı yamanmamış dosyaları kaldırmak zorunda kalırlar (make clean yapmak
       gibi).

       Beş yüz bilmem kaç farklık bir listeyi tek bir dosyaya koymaktan kaçınmak iyi olurdu.
       Birbiriyle ilgileri nedeniyle gruplanabilen dosyalarla ilgili yamaları farklı dosyalara
       koymak akıllıca olur.

TANI İLETİLERİ

       Tanı iletilerinin varlığı genellikle patch’in yama dosyanızı çözümleyemediğini belirtir.

       --verbose seçeneği verilmişse bir Hmm... iletisi, yama dosyasında işlenemeyen bir metinin
       varlığını ve patch’in bu metin içinde bir yama var mı acaba, varsa bu ne tür bir yamadır
       acaba diye bir saptama yapmaya çalıştığını gösterir.

       patch’in çıkış durumu 0 ise, listedeki yamaların hepsi başarıyla uygulanmış demektir. 1
       ise bazıları uygulanamamıştır. 2 ise biraz daha fazla sorun vardır. Bir döngü içinde çok
       sayıda yama uyguluyorsanız her seferinde bu çıkış durumuna bakmanız icabeder, böylece
       kısmen yamanmış dosyalara sonraki yamayı uygulamamış olursunuz.

YETERSİZLİKLER

       Bağlamsal fark dosyaları boş dosyaların ve boş dizinlerin ya da sembolik bağ gibi özel
       dosyaların oluşturulması ve silinmesi için güvenilir bir içerik sunamazlar. Sahiplik,
       dosya izinleri gibi dosyaların temel verilerinde bir değişiklik bilgisi sunamadıkları gibi
       bir dosyanın başka bir dosyaya sabit bağ mı olacağı gibi bilgileri de içeremezler. Bu tür
       değişiklikler gerekliyse, bunları gerçekleştirecek bir betik yamaya eşlik etmelidir.

       patch, bir ed betiğinde olmayan satır numaraları hakkında birşey söyleyemediği gibi, bir
       normal fark dosyasında da sadece bir değişiklik ya da silme işlemi bulursa hatalı satır
       numaralarını saptayabilir. Belirsizlik faktörü olarak 3 verildiğinde bağlamsal fark
       dosyaları da sorun yaratabilir. Elverişli bir etkileşimli arayüz eklenene kadar, bir
       bağlamsal fark dosyasının böyle bir durumda sorun çıkarıp çıkarmayacağını kendiniz
       saptamalısınız. Şüphesiz, hatasız gerçekleşen bir derleme işlemi yamanın hatasız
       uygulandığını gösteriyor gibi görünse de bu daima böyle olmaz.

       patch, bazan biraz fazla tahmin yapması gerekse bile genellikle doğru sonuçlar üretir.
       Yine de, yamanın üretildiği dosya ile yamanın uygulandığı dosya aynı sürüme ait olduğu
       zaman sonuçların doğru olacağı garanti edilmiştir.

UYUMLULUK BİLGİLERİ

       POSIX standardı, patch’in geleneksel davranışından farklı davranışlar belirtir. patch’in
       POSIX uyumluluğu olmayan 2.1 ve daha önceki sürümleri ile çalışmak zorundaysanız bu
       farklardan haberdar olmanız gerekir.

        •  Geleneksel patch’de -p seçeneğinin terimi isteğe bağlıdır. Yalnız başına -p seçeneği
           -p0’a eşdeğerdir. Şimdiki durumda ise -p seçeneğinin bir terime sahip olması
           zorunludur ve -p 0 seçeneği -p0 seçeneğine eşdeğerdir. En yüksek derecede uyumluluk
           adına seçeneği -p0 ve -p1 gibi kullanın.

           Ayrıca, geleneksel patch dosya yolunu saptarken bölü çizgilerinin sayısına bakarken
           yeni sürümleri dosya yolunu oluşturan elemanların sayısına bakmaktadır. Bundan dolayı,
           birden fazla yanyana bölü çizgisi tek bir bölü çizgisi olarak ele alınmaktadır. En
           yüksek derecede uyumluluk adına gönderilen yamaların içindeki dosya isimlerinde //
           olmamasına dikkat edin.

        •  Geleneksel patch’de yedekleme öntanımlı olarak etkindir. Bu davranış şimdi sadece -b
           (--backup) seçeneği ile etkin kılınabilmektedir.

           Bunun tersine, POSIX patch’de bir eşleşmeme olsa bile yedekleme asla yapılmaz. GNU
           patch’de bu davranış --posix seçeneği kullanılarak yahut POSIXLY_CORRECT ortam
           değişkeninin varlığı sayesinde POSIX uyumluluğu sağlanarak aksi takdirde --no-backup-
           if-mismatch seçeneği ile etkinleştirilir.

           Geleneksel patch’in -b sonek seçeneği ile GNU patch’in -b -z sonek seçenekleri
           eşdeğerdir.

        •  Geleneksel patch yama başlığından yamanacak dosyanın ismini öğrenmek için karmaşık (ve
           iyi belgelenmemiş) bir yöntem kullanır. Bu yöntem POSIX ile uyumlu olmadığı gibi,
           birkaç yanlış gibi görünmeyen yanlış içerir. Şimdi patch aynı karmaşıklıkta (ama daha
           iyi belgelenmiş) ve isteğe bağlı olarak POSIX uyumlu olabilen bir yöntem
           kullanmaktadır; onun artık daha az yanlış gibi görünmeyen yanlış içerdiğini
           düşünüyoruz. Bağlamsal fark dosyasının başlığında ve Index: satırında dosya
           isimlerinden önek ayırması yapıldıktan sonra kalan dosya isimleri aynı ise bu iki
           yöntem birbiriyle uyumludur. Yamanız, her başlıktaki dosya isimleri eşit sayıda bölü
           çizgisi içeriyorsa, normal olarak uyumludur.

        •  Geleneksel patch kullanıcıya bir soru yönelteceği zaman soruyu standart hataya
           gönderir ve yanıtı bir uçbirim olarak sırayla şu dosyalarda arar: standart hata,
           standart çıktı, /dev/tty ve standard girdi. Şimdi ise patch soruyu standart çıtıya
           gönderip yanıtı /dev/tty’den okur. Bazı soruların öntanımlı yanıtları
           değiştirilmiştir, böyle öntanımlı yanıtları olan sorularda patch artık sonsuz bir
           döngüye girip yanıt beklememektedir.

        •  Geleneksel patch gerçek bir hata durumunda 1 ile dönerken, uygulanamayan yamalar
           olduğunda bunların sayısını belirten bir çıkış değeri ile döner. Şimdi ise patch
           uygulanamayan yamalar olduğunda 1 ile, gerçek bir sorun olması durumunda 2 çıkış
           değeri ile döner.

        •  GNU patch, geleneksel patch ve POSIX uyumlu patch için ortak olan seçeneklerle
           kendinizi sınırlarsanız iyi olur. Bu seçenekler aşağıda listelenmiştir. Terimli
           seçeneklerde terimler zorunludur ve terim ile seçenek arasındaki boşluğun olup
           olmaması önemlidir.

               -c
               -d dizin
               -D tanım
               -e
               -l
               -n
               -N
               -o çıktıdosyası
               -psayı
               -R
               -r reddosyası

YAZILIM HATALARI

       Yazılım hatalarını lütfen eposta ile <bug-patch (at) gnu.org> adresine bildiriniz.

       Kod eğer yinelenmişse (örneğin, #ifdef ESKİKOD ... #else ... #endif ile) patch her iki
       sürümüde yamayamayacatır ve bu her ikisi için de uygulanabiliyorsa, yanlış sürüm
       yamanabilecek ve size işlemin başarılı olduğunu söylececektir.

       Evvelce uygulanmış bir yamayı uygularsanız, patch yamanın yer değiştirmeli yama olarak
       uygulanacağını varsayabilir ve size bu yamayı uygulamamayı teklif eder. Bu bir özellik
       olarak yorumlanabilirdi.

       Bir yama parçasının nasıl birleştirileceğini hesaplamak, standart bulanık algoritmayı
       kullanmaktan çok daha zordur. Daha büyük parçalar, daha fazla bağlam, özgün konumdan daha
       büyük bir sapma ve daha kötü bir eşleşme, algoritmayı yavaşlatır.

TELİF HAKKI VE LİSANS

       Telif Hakkı © 1984, 1985, 1986, 1988 Larry Wall.
       Telif hakkı © 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
       2001, 2002, 2009 Free Software Foundation, Inc. Lisans GPLv3+: GNU GPL sürüm 3 veya üstü
       <http://gnu.org/licenses/gpl.html>. Bu bir özgür yazılımdır: yazılımı değiştirmek ve
       dağıtmakta özgürsünüz. Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.

YAZARLAR

       patch’in özgün sürümü Larry Wall tarafından yazılmıştır. Paul Eggert patch’in keyfî
       sınırlarını kaldırdı; ikilik dosyaların desteklenmesi, dosya zamanlarının ayarlanması,
       dosyaları silinmesi özelliklerini ekledi; ve daha iyi POSIX uyumluluğu sağladı. Diğer
       destekleyicilerden Wayne Davison unidiff desteğini, David MacKenzie yapılandırma ve
       yedekleme desteklerini sağladı. Andreas Grünbacher birleştirme desteğini sağladı.

ÇEVİREN

       © 2022 Nilgün Belma Bugüner
       Bu çeviri özgür yazılımdır: Yasaların izin verdiği ölçüde HİÇBİR GARANTİ YOKTUR.
       Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri yapmak için
       https://github.com/TLBP/manpages-tr/issues adresinde "New Issue" düğmesine tıklayıp yeni
       bir konu açınız ve isteğinizi belirtiniz.