Provided by: manpages-tr_1.0.5.1-2_all bug

İSİM

       patch - bir yama dosyasını orjinaline uygular

KULLANIM

       patch [seçenekler] [orjinal [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 orjinal dosyaya uygulayarak orjinallerin yamalı sürümlerini üretir. Normalde
       yamalı sürümler orjinal  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 orjinal 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
       boruhattı  ile  ed(1) metin düzenleyicisi üzerinden 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.) 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.)  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 orjinal 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 eniyi isim seçilir.

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

       ·  İsimli dosya mevcut değilse, bir RCS, ClearCase 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  hal  bir  dosya ismi seçilememişse, yamanacak dosyanın ismi size
          sorulur ve patch dosya ismini buna göre seçer.

       İsimli dosyalar listesinden "eniyi" 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, bundlardan 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 numaraasıdır) alır ve orjinal 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 bir dosya yama dosyasıyla yamanır.

       Eğer yama dosyası bir yamadan fazlasını içeriyorsa patch onların herbirini 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

       -b, --backup
          Dosyaların  yedeğini  oluşturur.  Bir  dosya  yamanırken  orjinal  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 önek, --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 iklik  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 dizin, --directory=dizin
          Hiçbir şey yapmadan, hemen dizin dizinine geçilir.

       -D tanım, --ifdef=tanım
          Değişiklikleri işaretlemede #ifdef ... #endif yapısı tanım farklılaştırma sembolü 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 sayı, --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 sayı, --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 ve patch POSIX uyumluysa öntanımlı değer sıfır, aksi takdirde negatiftir.

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

       -i yamadosyası, --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.

       -n, --normal
          Yama dosyası normal bir 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 çıktıdosyası, --output=çıktıdosyası
          Dosyaların yerinde yamanması yerine çıktı, çıktıdosyası dosyasına gönderilir.

       -p sayı, --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 reddosyası, --reject-file=reddosyası
          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.)

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

       -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 başlığını ve ama seviyesini basar ve çıkar.

       -V yöntem, --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 sayı, --debug=sayı
          Sadece patch yamacılarını ilgilendiren hata ayıklama  seçeneklerini belirtmek için kullanılır.

       -Y önek, --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 sonek, --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  orjinal 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  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: ftp://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  bölü  ç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çiminde 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
       orjinal 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, bunun gibi bir çıktıya sahip yama 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üzbilmemkaç  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-gnu-utils (at) gnu.org> adresine bildiriniz.

       patch kısmî eşleşmelerde, aşırı kaymış başlangıç konumlarında ve yer değiştirmelerde daha çevik olmalıydı
       ama bu işlemler ek bir geçiş gerektiriyor.

       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.

KOPYALAMA

       Telif Hakkı © 1984, 1985, 1986, 1988 Larry Wall.
       Telif Hakkı ©  1989,  1990,  1991, 1992, 1993, 1994, 1995, 1996, 1997,  1998  Free  Software  Foundation,
       Inc.

       Bu  kılavuzun  harfi harfine kopyalanmasına ve dağıtılmasına telif hakkı uyarısının ve bu izin uyarısının
       tüm kopyalarında bulunması şartıyla izin verilmiştir.

       Bu kılavuzun değiştirilmiş kopyalarının kopyalanması ve dağıtılması, türetilmiş  çalışmanın  sonuçlarının
       tamamı,  harfi  harfine  kopyalamanın koşullarını içererek ve buna eşdeğer bir izin uyarısı da sağlandığı
       takdirde izin verilmiştir.

       Bu kılavuzun diğer dillere çevirilerinin kopyalanması ve  dağıtılmasına,  bu  izin  uyarısının  bulunduğu
       orjinal  ingilizce  sürümdeki  telif  hakkı  sahipleri tarafından onaylanmış bir çeviri değilse, yukarıda
       açıklanan değiştirilmiş sürümlerinin koşulları sağlandığı takdirde izin verilmiştir.

COPYING

       Copyright 1984, 1985, 1986, 1988 Larry Wall.
       Copyright  1989,  1990,  1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.

       Permission is granted to make and distribute verbatim  copies  of  this  manual  provided  the  copyright
       notice and this permission notice are preserved on all copies.

       Permission is granted to copy and distribute modified versions of  this manual   under   the   conditions
       for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a
       permission notice identical to this one.

       Permission   is  granted  to copy and distribute translations of this manual into another language, under
       the above conditions for modified versions,  except  that this  permission  notice  may  be  included  in
       translations approved by the copyright holders  instead  of  in  the  original English.

YAZARLAR

       patch'in  orjinal  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ı.

ÇEVİREN

       Nilgün Belma Bugüner <nilgun (at) belgeler·gen·tr>, Ağustos 2004

GNU                                               21 Mart 1998                                          patch(1)