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