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

ISIM

       patch - bir yama dosyasini orjinaline uygular

KULLANIM

       patch [se,cenekler] [orjinal [yama]]
       genellikle soyle kullanilir:

       patch -psayi <yama

A,CIKLAMA

       patch,   diff(1) ile uretilmis bir fark listesi iceren bir yama dosyasi
       alir ve bu yama dosyasindaki  farklari  bir  veya  daha  fazla  orjinal
       dosyaya  uygulayarak  orjinallerin  yamali surumlerini uretir. Normalde
       yamali  surumler  orjinal  dosyalara  yazilarak  olusturulur.  Yedekler
       olusturulabilir;   -b  ve  --backup  seceneklerine  bakiniz.  Yamanacak
       dosyalarin isimleri normalde yama dosyasindan alinir, ancak eger sadece
       bir   yamanacak   dosya  varsa  ismi  komut  satirinda  orjinal  olarak
       belirtilebilir.

       patch calistirildiginda fark listesinin turu -c (--context), -e (--ed),
       -n  (--normal) veya -u (--unified) secenekleri ile belirtilmemisse once
       fark  listesinin  turunu  saptamaya  calisir.  ed  fark  dosyalari  bir
       boruhatti   ile   ed(1)  metin  duzenleyicisi  uzerinden  uygulanirken,
       baglamsal fark dosyalari  (eski,  yeni  ve  birlesik)  ve  normal  fark
       dosyalari dogrudan patch tarafindan uygulanir.

       patch   yama   dosyasindaki   olasi  bozuk  alanlari  atlayarak  yamayi
       uygulamaya calisir. Bu ozelliginden yararlanarak yama dosyasi icine bir
       aciklama  yerlestirebilirsiniz ve buna ragmen yama uygulanir. Eger diff
       dosyasinin  icerigi  surekli  ayni  bicimde  girintilenmisse  veya  bir
       baglamsal  fark  dpsyasinda  satirlar CRLF ile bitiyorsa ya da Internet
       RFC 934'de "-" icin belirtildigi gibi "-" ile baslayan  satirlar  varsa
       bunlar hesaba katilir.

       Baglamsal  fark  dosyalari  ile  ve bir daha az genisletme yapan normal
       fark  dosyalari  ile  patch,  yama  icindeki  satir  numaralari  yanlis
       oldugunda   bunu   saptayabilir   ve  yama  listesinin  her  elemaninin
       uygulanacagi dogru yeri bulmaya calisir. Once listedeki her eleman  ile
       ilgili  satir  numaralarini  alir  ve yamanin uygulanmasinda kullanilan
       arti ve eksi ile belirlenmis satirlara  bakar.  Eger  satir  numaralari
       dogru  yeri  belirtmiyorsa, eksi ile belirtilmis satirlari bulmak uzere
       metni  ileri  ve  geri  her  iki  yonde  tarar.  patch   ilk   taramada
       degistirilecek  satirlarin  tamami  icin  bir  eslesme  arar. Boyle bir
       eslesme bulamazsa, yama dosyasi  bir  baglamsal  yama  dosyasi  ise  ve
       belirsizlik  faktoru  de  1  ise  degistirilecek  satirlarin  ilkini ve
       sonuncusunu yok sayarak bir arama daha yapar. Bulamazsa ve  belirsizlik
       faktoru  2  veya 2 den buyukse bu kez ilk ve son iki satiri yok sayarak
       bir arama daha yapar.  (Ontanimli  belirsizlik  faktoru  2'dir.)  patch
       yamanin  uygulanacagi  yeri  bulamazsa,  uygulayamadigi  bolumu bir red
       dosyasina yazar. Bu dosyanin ismi normalde yama dosyasinin ismine  .rej
       eklenerek   elde  edilir.  Eger  .rej  eki  cok  uzun  bir  dosya  ismi
       olusturacaksa dosya isminin sonuna #  eklenir,  bu  karakter  de  fazla
       geliyorsa  dosya  isminin son karakteri # ile degistirilir. (Rededdilen
       kisim  yamanin  biciminden  bagimsiz  olarak  siradan  baglamsal   fark
       biciminde  ciktilanir.  Eger girdi bir normal fark dosyasi ise baglamin
       cogu basitce bos olur.) Red dosyasindaki reddedilen  kisimlarla  ilgili
       satir   numaralari   yama   dosyasindaki  satir  numaralarindan  farkli
       olabilir: yeni satir numaralari yamanin  eski  dosyada  degil  de  yeni
       (yamanmis)  dosyada  bulunabilecegi  yaklasik  yeri  belirtecek sekilde
       olusturulur.

       Her yama parcasi tamamlandiginda, eger parcanin  uygulanmasi  basarisiz
       olmussa   (yeni dosyadaki) hangi satirdan itibaren devam edecegini size
       bildirilir. Eger  yama  parcasi  fark  dosyasinda  belirtilen  satirdan
       farkli numarali bir satira uygulanmissa size yeni konumu bildirir. Yeni
       konumun cok farkli olmasi parcanin yanlis yeri yamamakta kullanildigini
       belirtebilir.  Bir  eslesme  bulunurken  belirsizlik  faktoru kullanmak
       gerekmisse,  biraz  kusku  duyasiniz  diye  bu  da  ayrica  bildirilir.
       --verbose  secenegini belirtmisseniz basariyla uygulanan yama parcalari
       hakkinda da bilgi verilir.

       Komut satirinda orjinal dosya belirtilmemisse patch, yama  dosyasindaki
       yama    olarak    uygulanabilecek    alanlarin    disindaki    alanlari
       degerlendirerek asagidaki kurallara bagli olarak  yamanin  uygulanacagi
       dosyanin ismini tespit etmeye calisir.

       Once,  aday dosya isimlerinin listesini elde etmeye calisir. Bunu soyle
       yapar:

       .  Baslik bir baglamsal fark dosyasi basligi ise, patch  eski  ve  yeni
          dosya  isimlerini  basliktan  alir.  Eger isimdeki bolu cizgilerinin
          sayisi -psayi veya --strip=sayi  secenekleri  ile  belirtilen  kadar
          degilse bu isim yoksayilir. /dev/null ismi de ayrica yoksayilir.

       .  Yama  olarak  uygulanacak  alanlarin  disinda  Index:  ile  baslayan
          satirlar  varsa  ve  hem   yeni   hem   de   eski   dosya   isimleri
          belirtilmemisse veya  patch POSIX uyumlu ise, patch dosya isimlerini
          Index: ile baslayan satirlardan alir.

       .  Bundan sonraki kurallara uygun olmak uzere, aday dosya  isimlerinin,
          baslikta  gorundukleri  siraya  bakilmaksizin,  (eski,  yeni, Index)
          duzeninde olacaklari varsayilir.

       patch bir dosya ismini aday dosya listesinden su kurallara gore secer:

       .  Bazi isimli dosyalar mevcutsa, patch POSIX uyumluysa ilk dosya  ismi
          degilse eniyi isim secilir.

       .  Eger  patch  RCS,  ClearCase  ve SCCS'yi yoksaymiyorsa (-g sayi veya
          --get=sayi seceneklerine bakiniz) ve isimli bir dosya mevcut degilse
          ama bir RCS,  ClearCase veya SCCS ana dosyasi varsa patch ilk isimli
          dosyayi RCS,  ClearCase veya SCCS ana dosyasi ile secer.

       .  Isimli dosya mevcut  degilse,  bir  RCS,  ClearCase  veya  SCCS  ana
          dosyasi  da  yoksa  ama  bazi dosya isimleri verilmisse, patch POSIX
          uyumlu degilse ve yamanin bir dosya olusturmasi  gerekiyorsa,  patch
          en az dizin olusturulacak sekilde en iyi dosya ismini secer.

       .  Simdiye  dek bahsedilen kurallarla hal bir dosya ismi secilememisse,
          yamanacak dosyanin ismi size sorulur ve patch dosya ismini buna gore
          secer.

       Isimli  dosyalar  listesinden "eniyi" dosya ismi soyle secilir: once en
       az sayida dizini dosya yolu olarak alir,  bundan  sonra,  uzantisiz  en
       kisa  dosya  isimleri,  bundlardan  sonra en kisa isimlerin tumu ve son
       olarak da kalan ilk isim alinir.

       Ek olarak,  Yama  olarak  uygulanacak  alanlarin  disinda  Prereq:  ile
       baslayan  bir  satir  varsa,  patch  bu ongereklilikler satirindaki ilk
       sozcugu (normalde bir surum numaraasidir) alir ve  orjinal  dosyaya  bu
       sozcuk  var  mi  diye  bakar.  Yoksa patch isine devam etmeden once bir
       dogrulama istegi yapar.

       Tum bunlarin nihayetinde, soyle bir bildirim de yapabilirsiniz:

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

       ve, blurfl dizinindeki bir dosya yama dosyasiyla yamanir.

       Eger yama  dosyasi  bir  yamadan  fazlasini  iceriyorsa  patch  onlarin
       herbirini  farkli birer yama dosyasindan geliyormuscasina uygular. Yama
       olarak  uygulanabilecek  her  satir  grubundan  once  gelen  satirlarda
       bulunan  dosya  isimleri  ve surum numaralarindan yukarida bahsedildigi
       gibi yamanacak dosyanin ismi saptanarak bu islem gerceklestirilir.

SE,CENEKLER

       -b, --backup
          Dosyalarin yedegini olusturur. Bir dosya  yamanirken  orjinal  dosya
          silinmez,  ya  baska  bir  yere  kopyalanir ya da ismi degistirilir.
          Mevcut olmayan  bir  dosyanin  yedegi  yapilirken,  olmayan  dosyayi
          belirtmek  icin  sadece  ismi  olan  cismi  olmayan  (bos) bir dosya
          olusturulur. Yedek dosya isimlerinin  nasil  olusturuldugu  -V  veya
          --version-control seceneklerinin aciklamalarinda bulunabilir.

       --backup-if-mismatch
          Yama  bir  dosya  ile  tam uyusmazsa ve yedekleme istenmese de dosya
          yedeklenir. patch POSIX uyumlu degilse bu secenek  ontanimli  olarak
          uygulanir.

       --no-backup-if-mismatch
          Yama  bir  dosya  ile  tam  uyusmazsa  ve yedekleme istense de dosya
          yedeklenmez. patch POSIX uyumlu degilse bu secenek ontanimli  olarak
          uygulanir.

       -B "onek, --prefix="onek
          Basit  yedek  dosya  ismi  olusturulurken  dosya  isminin onune "onek
          getirilir. Ornegin, -B /junk/ ile dosya ismi  src/patch/util.c  olan
          bir     dosyanin     basit     yedegi    yapilirken    dosya    ismi
          /junk/src/patch/util.c yapilir.

       --binary
          Standart cikti veya /dev/tty disinda  tum  dosyalar  icin  okuma  ve
          yazma  islemleri  iklik  kipte  yapilir.  Bu  secenek  POSIX  uyumlu
          sistemlerde etkisizdir. DOS benzeri sistemlerde ise bu secenegin bir
          fark olusturmasi icin yama diff -a --binary ile uretilmis olmalidir.

       -c, --context
          Yama dosyasi siradan bir baglamsal fark dosyasi olarak yorumlanir.

       -d dizin, --directory=dizin
          Hicbir sey yapmadan, hemen dizin dizinine gecilir.

       -D tanim, --ifdef=tanim
          Degisiklikleri   isaretlemede   #ifdef   ...   #endif  yapisi  tanim
          farklilastirma sembolu ile kullanilir.

       --dry-run
          Hicbir dosyada degisiklik yapmaksizin uygulanan yamalarin  sonuclari
          basilir.

       -e, --ed
          Yama dosyasi bir ed betigi olarak yorumlanir.

       -E, --remove-empty-files
          Yama  uygulandiktan  sonra  bosalan  dosyalar  silinir.  Aslinda, bu
          secenek gereksizdir, cunku patch yamadiktan sonra  dosyanin  varolup
          olmayacagini  saptamak icin basliktaki tarih damgasini inceler. Buna
          ragmen, girdi bir baglamsal fark dosyasi degilse ya da  patch  POSIX
          uyumlu  ise, patch bu secenek verilmedikce yamandiktan sonra bosalan
          dosyalari silmez. patch boyle bir dosyayi sildikten sonra bosalmissa
          dosyanin bulundugu dizini de silmeye calisir.

       -f, --force
          Kullanicinin   ne   yaptigini   tam  olarak  bildigi  varsayilir  ve
          kullaniciya  herhangi  bir  soru   yoneltilmez.   Hangi   dosyalarin
          yamanacagini  belirtmeyen  basliklar iceren yamalar atlanir; Prereq:
          ile  baslayan  satirlarda  yanlis  surum  bilgisi  olsa  bile  dosya
          yamanir;  eski  ve  yeni  dosyalarin yer degistirilmesi gerekse bile
          yamalarin bu islem yapilmadan uygulanacagi  varsayilir.  Bu  secenek
          aciklamalari engellemez, bunun icin -s secenegine bakiniz.

       -F sayi, --fuzz=sayi
          En  buyuk  belirsizlik  faktorunu belirtmekte kullanilir. Bu secenek
          sadece baglamsal fark dosyalarina uygulanir ve patch yamanacak  yeri
          bulurken  yama  olarak  kullanilacak  satirlarin bastan ve sondan bu
          kadarini  yoksayar.  Cok  buyuk  belirsizlik  faktorlerinin  yamanin
          basarisizligini   arttiracagini   unutmayin.  Ontanimli  belirsizlik
          faktoru  2'dir  ve  baglamsal  fark  dosyalarinda  baglamsal   satir
          sayisindan daha yuksek bir deger (genelde 3'tur) atanmamalidir.

       -g sayi, --get=sayi
          Bir  dosya RCS veya SCCS denetimindeyken, boyle bir dosya yoksa veya
          salt-okunursa ya da ontanimli surumuyle eslesiyorsa; veya  ClearCase
          denetimindeyken,   boyle  bir  dosya  yoksa,  bu  secenek,  patch'in
          eylemlerini denetlemekte kullanilir. sayi pozitifse,  patch  dosyayi
          surum  denetim  sisteminden  alir; sifirsa, RCS, SCCS veya ClearCase
          yoksayilir ve dosya alinmaz; negatifse dosyanin alinip  alinmayacagi
          kullaniciya  sorulur.  Bu secenegin ontanimli degeri eger atanmissa,
          PATCH_GET ortam degiskeninden alinir;  atanmamissa  ve  patch  POSIX
          uyumluysa ontanimli deger sifir, aksi takdirde negatiftir.

       --help
          Seceneklerin bir ozetini basar ve cikar.

       -i yamadosyasi, --input=yamadosyasi
          Yama yamadosyasi dosyasindan okunur. yamadosyasi olarak - verilmisse
          ontanimli olarak standart girdi okunur.

       -l, --ignore-whitespace
          Yamanacak  dosyalarin  icindeki  sekmeler  ve  bosluklar  icin  yama
          icindeki  bosluklarla  birebir  eslesme  aranmaz, ancak herhangi bir
          uzunlukta boslugun her iki dosyada da  karsilikli  varligi  sarttir,
          satir  sonlarindaki  bosluklar  eslesme acisindan yoksayilir. Normal
          karakterler tam olarak eslestirilir. Baglamsal her  satir  yamanacak
          dosyadaki satirlarla daima eslestirilir.

       -n, --normal
          Yama dosyasi normal bir yama dosyasi olarak yorumlanir.

       -N, --forward
          Eski  ve  yeni  dosyalarin  yer  degistirilecegi  gorunen veya zaten
          uygulanmis yamalar yoksayilir. -R secenegine de bakiniz.

       -o ,ciktidosyasi, --output=,ciktidosyasi
          Dosyalarin yerinde yamanmasi yerine  cikti,  ,ciktidosyasi  dosyasina
          gonderilir.

       -p sayi, --strip=sayi
          Yama   dosyasinda  bulunan  her  dosya  isminin  basindan  sayi  ile
          belirtilen sayida bolu cizgisi iceren dizge yoksayilir. Birden fazla
          yanyana bolu cizgisi varsa bunlar tek bir bolu cizgisi sayilir. Yama
          dosyasinin  yamanacak  dosyalardan  farkli  bir  dizinde   tutulmasi
          durumunda yamanacak dosyalarin nasil bulunacagini belirtmek amaciyla
          kullanilir. Ornegin, yama dosyasinda yamanacak dosya  isminin  soyle
          verildigini varsayalim:

          /u/howard/src/blurfl/blurfl.c
          Secenek  -p0  olarak  verilirse bu dizge oldugu gibi ele alinir, -p1
          verilirse,

          u/howard/src/blurfl/blurfl.c
          bastaki bolu cizgisi atilir, -p4 verilirse,

          blurfl/blurfl.c
          olur. -p hic belirtilmezse  sonuc  blurfl.c  olacaktir.  Bu  durumda
          dosya  yamanin bulundugu dizinde aranacagindan dosya daha farkli bir
          yerdeyse bu da -d secenegi ile belirtilebilir.

       --posix
          POSIX standardina kesinlikle uyulur:

          .  Fark  dosyasi   basliklarindan   dosya   isimleri   ogrenilirken,
             listedeki (eski, yeni, birlesik) ilk mevcut dosya alinir.

          .  Yamandiktan sonra bosalan dosyalar silinmez.

          .  RCS,  ClearCase  veya  SCCS'deki  dosyalar  icin alinacak mi diye
             sormaz.

          .  Komut satirinda seceneklerin dosyalardan once verilmesi gerekir.

          .  Eslesmeyen dosyalarin yedeklemesi yapilmaz.

       --quoting-style=s"ozc"uk
          Ciktilanan  isimler  sarmalanirken  s"ozc"uk   ile   belirtilen   tarz
          kullanilir. s"ozc"uk sunlardan biri olabilir:

          literal
                 Isimler oldugu gibi ciktilanir.

          shell  Isimler   kabuk   metakarakterleri   iceriyorsa   kabuk  icin
                 sarmalanir yoksa anlami belirsiz ciktilama yapilir.

          shell-always
                 Normalde sarmalanmalari gerekmese bile  isimler  daima  kabuk
                 icin sarmalanir.

          c      Isimler C dilinde dizgelere uygulandigi gibi sarmalanir.

          escape Isimler  cevreleyen  cifttirnaklarin ihmal edilmesi disinda c
                 tarzindaki gibi sarmalanir.

          --quoting-style secenegi icin ontanimli degeri  QUOTING_STYLE  ortam
          degiskeninde   belirtebilirsiniz.   Bu  ortam  degikeni  atanmamissa
          ontanimli deger shell'dir.

       -r reddosyasi, --reject-file=reddosyasi
          Bu yamanin eski ve yeni  dosyalar  yer  degistirilerek  uygulanacagi
          varsayilir.  Yama  olarak  kullanilacak  her  bolumdeki eski ve yeni
          satirlar   yer    degistirilerek    uygulanmaya    calisilir.    Yer
          degistirildiginde  anlamsiz olan kisimlar reddedilir. -R secenegi ed
          fark  betikleri  ile  calismaz,  cunku   yer   degistirme   islemini
          gerceklestirmek icin cok az bilgi icerirler.

          Yama  icindeki  kisimlardan  ilkinin  uygulanmasi  basarisiz olursa,
          patch bu kismin eski ve  yeni  satirlarini  yer  degistirerek  boyle
          uygulanabiliyor  mu  diye bakar. Boyle uygulanabiliyorsa kullaniciya
          -R   seceneginin   uygulanmasini   isteyip    istemedigini    sorar.
          Uygulanamiyorsa,  patch normal olarak uygulamaya devam eder. (Bilgi:
          Eger yama  bir  normal  yama  ise  ve  bos  bir  icerik  bile  daima
          esleseceginden  ilk komut yamanin bir ek uygulanacagini belirtiyorsa
          bu yontem yer degistirmeli yamayi saptayamaz. Tesadufen,  cogu  yama
          bir satirin tamamen silinmesini degil ya bir ek ya da bir degisiklik
          yapilmasini gerektirir, bu  durumda  yer  degistirmeli  normal  fark
          dosyalarindan   silme   islemi  ile  baslayanlar  basariyi  arttiran
          kurallarin uygulanmasina bagli olarak basarisiz olur.)

       -s, --silent, --quiet
          Bir hata olusmadikca bilgilendirici hicbir sey ciktilanmaz.

       -t, --batch
          -f seceneginde oldugu gibi sorular engellenir ama  bu  biraz  farkli
          kabulllerle   yapilir:   basliklarinda  dosya  isimlerini  icermeyen
          yamalar atlanir (-f ile  ayni);  yamanin  Prereq:  satirinda  yanlis
          surum  belirtilen  dosyalar  icin yamalar atlanir; ve yer degistirme
          uygulanmasi  gerekliligi  saptanan  yamalarin  yer  degistirme   ile
          uygulanacagi varsayilir.

       -T, --set-time
          Yamanmis  dosyalarin  erisim ve degistirme zamanlari, baglamsal fark
          dosyalarinin   basliklarindaki   zaman   bilgisinin   yerel   zamani
          gosterdigi   varsayimiyla   bu   zamana   ayarlanir.   Bu  secenegin
          kullanilmasi onerilmez, cunku  yerel  zaman  kullanilarak  uygulanan
          yamalari    diger    zaman    dilimlerindeki   kulanicilar   kolayca
          kullanamazlar, ayrica yaz saati uygulamasindan  dolayi  yerel  zaman
          damgalari  yamanin  gecmiste  uygulanmasi  gibi  tuhafliklara  sebep
          olabilir.  Bu  secenek  yerine  -Z  veya   --set-utc   seceneklerini
          kullanarak zamani UTC'ye gore belirtmeyi tercih edin.

       -u, --unified
          Yama dosyasi birlesik baglamsal fark dosyasi olarak yorumlanir.

       -v, --version
          patch'in surum basligini ve ama seviyesini basar ve cikar.

       -V y"ontem, --version-control=y"ontem
          Yedek dosya isimleri saptanirken y"ontem kullanilir. Bu yontem ayrica
          bu     secenek     ile     gerektiginde     degistirilmek      uzere
          PATCH_VERSION_CONTROL  (veya  bu  atanmamissa VERSION_CONTROL) ortam
          degiskeni ile atanabilir. Burada  bir  yontemin  atanmasi  yedekleme
          yapilacagi  anlamina  gelmez,  sadece  yedekleme  yapilacaksa  yedek
          dosyalarinin ismi bu yontem kullanilarak saptanir.

          y"ontem degeri  GNU  Emacs'in  `version-control'  degiskeni  gibidir;
          farkli  olarak  patch daha aciklayici olan esanlamlilarini da tanir.
          Gecerli y"ontem  degerleri  sunlardir  (essiz  kisaltmalar  da  kabul
          edilir):

          existing, nil
                 Zaten  varolan  dosyalarin  numarali  yedekleri yapilir, aksi
                 takdirde basit yedekleme yapilir. Bu ontanimlidir.

          numbered, t
                 Numarali yedekleme yapilir.  F  dosyasinin  yedek  dosyasi  N
                 surum    numarasini    belirtmek    uzere   F.~N~   biciminde
                 isimlendirilir.

          simple, never
                 Basit    yedekleme     yapilir.     -B     (--prefix),     -Y
                 (--basename-prefix)  ve   -z (--suffix) secenekleri ile basit
                 yedek dosyasi ismi belirtilebilir.  Bu  seceneklerin  hicbiri
                 belirtilmemisse,  basit  yedekleme  soneki  kullanilir; sonek
                 degeri    SIMPLE_BACKUP_SUFFIX    ortam     degiskeni     ile
                 belirtilmemisse ontanimli olarak .orig soneki kullanilir.

          Numarali  ve  basit  yedeklemede  dosya  ismi cok uzun olursa bunlar
          yerine sonek olarak ~ kullanilir, bu islem de dosya isminin cok uzun
          olmasina sebep oluyorsa dosya ismindeki son karakter ~ karakteri ile
          degistirilir.

       --verbose
          Yapilan islem hakkinda daha ayrintili bilgi verilir.

       -x sayi, --debug=sayi
          Sadece patch yamacilarini ilgilendiren hata ayiklama   seceneklerini
          belirtmek icin kullanilir.

       -Y "onek, --basename-prefix="onek
          Basit  yedek  dosyasi  ismi  olusturulurken dizinlerden arindirilmis
          dosya isminin onune "onek getirilir. Ornegin basit yedek  dosya  ismi
          -Y   .del/   ile   belirtilmisse  src/patch/util.c  dosyasinin  ismi
          src/patch/.del/util.c yapilir.

       -z sonek, --suffix=sonek
          Basit yedek dosyasi ismi olusturulurken dosya isminin  sonuna  sonek
          getirilir.  Ornegin  basit  yedek  dosya ismi -z - ile belirtilmisse
          src/patch/util.c   dosyasinin   ismi   src/patch/util.c-    yapilir.
          Yedekleme  soneki  gerektiginde  bu  secenek ile degistirilmek uzere
          SIMPLE_BACKUP_SUFFIX ortam degiskeni ile de atanabilir.

       -Z, --set-utc
          Yamanmis dosyalarin erisim ve degistirme zamanlari,  baglamsal  fark
          dosyalarinin  basliklarindaki  zaman bilgisinin koordinatli evrensel
          zamani (UTC; GMT  olarak  da  bilinir)  gosterdigi  varsayimiyla  bu
          zamana   ayarlanir.   Ayrica   -T   veya  --set-time  seceneklerinin
          aciklamasina da bakiniz.

          Dosyanin  orjinal  zamani   yama   basliginda   belirtilen   zamanla
          eslesmezse  ya  da  onun  icerigi yama ile tam olarak eslesmezse, -Z
          (--set-utc) ve -T (--set-time)  secenekleri  bir  dosyanin  zamanini
          ayarlamaktan    kacinir.   Buna   ragmen   -f   (--force)   secenegi
          belirtilmisse dosyanin zamani ne olursa olsun ayarlanir.

          diff cikti biciminin  sinirlamalarindan  dolayi,  dosyalari  icerigi
          degistirilmeyecekse,    bu   seceneklerle   bu   dosyalarin   zamani
          guncellenemez.  Ayrica,  bu  secenekleri   kullandiginiz   takdirde,
          zamanlari  guncellenmis  dosyalara bagimli dosyalari kaldirmalisiniz
          (make  clean  gibi).  Boylece  sonraki  make  cagrilarinda  yamanmis
          dosyalarin       zamanlarindan      dolayi      hatalarla/uyarilarla
          karsilasmazsiniz.

ORTAM DEGI,SKENLERI

       PATCH_GET
          Eksik ya da salt-okunur dosyalarin   RCS,  ClearCase  veya  SCCS'den
          ontanimli olarak alinip alinmayacagini belirtmek icin kullanilir. -g
          (--get) seceneginin aciklamasina bakiniz.

       POSIXLY_CORRECT
          Bu degisken  atanmissa  patch  ontanimli  olarak  POSIX  standardina
          uyumlu davranir. --posix seceneginin aciklamasina bakiniz.

       QUOTING_STYLE
          --quoting-style seceneginin ontanimli degeridir.

       SIMPLE_BACKUP_SUFFIX
          Bu  ortam  degiskeninin  degeri  basit  yedekleme dosyalarinda .orig
          soneki yerine kullanilacak sonektir.

       TMPDIR, TMP, TEMP
          Gecici dosyalari konulacagi  dizindir.  patch  bu  listeden  atanmis
          degerlerden  ilkinin  degeri  kullanir.  Hicbiri atanmamissa sisteme
          bagli ontanimli deger  kullanilir.  Unix  makinalar  icin  bu  deger
          normalde /tmp dizinidir.

       VERSION_CONTROL, PATCH_VERSION_CONTROL
          Surum  denetim  tarzini belirtir. -v (--version-control) seceneginin
          aciklamasina bakiniz.

ILGILI DOSYALAR

       /dev/tty
          denetim ucbirimi; kullaniciya sorulan  sorularin  yanitlarini  almak
          icin kullanilir.

       $TMPDIR/p*
          gecici dosyalar

ILGILI 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"ONDERENLER I,CIN

       Yama gondermeye hazirlaniyorsaniz, hatirlamaniz gereken  bir  suru  sey
       olacaktir.

       Yamanizi sistemli olarak olusturmalisiniz. Iyi bir yontem
       diff  -Naur  eski  yeni  komutunu kullanmaktir. Burada eski ve yeni ile
       eski ve yeni dizin isimleri belirtilir. Bu isimler  herhangi  bir  bolu
       cizgisi  icermemelidir.  diff komutunun basliklari yama uygulayicilarin
       yamayi -Z (--set-utc) secenegi ile uygulayabilecekleri sekilde Evrensel
       Zamanda  geleneksel  Unix  tarih  ve  zaman  biciminde  icermelidir. Bu
       ornekte, komut Bourne kabugu (bash) sozdizimiyle yazilmistir:

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

       Yamanizi uygulayacak olanlara hangi dizine gecip hangi patch secenegini
       kullanacagini   soyleyin.   Secenek   dizgesi   olarak  -Np1  onerilir.
       Yaptiginiz yamayi kendinizi yamayi alacaklarin yerine koyarak  deneyin,
       yani orjinal dosyalarin bir kopyasina bu yamayi uygulayin.

       Ilk   diff'e   gore   yama   seviyesini  arttirmak  icin  yamanmis  bir
       patchlevel.h dosyasi tutmaktan dolayi cok uzgun kisileri  gonderdiginiz
       yama   sayesinde   kazanabilirsiniz.  Yama  icine  bir  Prereq:  satiri
       koyarsaniz  onlarin  siradisi   yamalari   uygularken   bazi   uyarilar
       almamasini saglamis olursunuz.

       Bir    dosyanin    yama    uygulanirken   olusturulmasini   isterseniz,
       olusturulacak dosyayi /dev/null  ile  ya  da  zaman  damgasi  Unix  cag
       baslangicina  (Epoch: 1970-01-01 00:00:00 UTC) ayarlanmis bos bir dosya
       ile   karsilastirilarak   yapilmis   bir   fark   dosyasi   ile    bunu
       saglayabilirsiniz.  Bu  sadece, olusturulacak dosya hedef dizinde yoksa
       calisir. Tersine, yama  uygulaniren  mevcut  bir  dosyanin  silinmesini
       isterseniz,  silinecek dosyayi yine zaman damgasi Unix cag baslangicina
       ayarlanmis bos  bir  dosya  ile  karsilastirilarak  yapilmis  bir  fark
       dosyasi  ile  bunu  saglayabilirsiniz.  Silinmesini  istediginiz dosya,
       patch  POSIX  uyumlu  degilse  ve  -E  (--remove-empty-files)  secenegi
       verilmisse,  silinecektir.  Dosyalari  olusturan  ya  da  silen yamalar
       uretmenin  kolay  bir  yolu  GNU  diff'in  -N  (--new-file)  secenegini
       kullanmaktir.

       Alicilarin -pN secenegini kullanacagini varsayiyorsaniz, bunun gibi bir
       ciktiya sahip yama gondermeyin:

       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

       Cunku burada eski ve yeni dosya isimleri  farkli  sayida  bolu  cizgisi
       icermektedir  ve  patch'in  farkli  surumleri  dosya  isimlerini farkli
       yorumlarlar. Karisikligi onlemek icin boyle bir  cikti  ureten  yamalar
       gonderin:

       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 kullanilabilecek bir dosya
       ismi ile  karsilastirilarak  uretilmis  yamalar  gondermekten  kacinin.
       Boyle  bir  yama  patch'in  gercek  dosyayi  degil  yedekleme dosyasini
       yamamasina yol acabilir. Bunun yerine  old/README  ve  new/README  gibi
       farkli dizinlerde bulunan ayni isimli iki dosyayi karsilastirin.

       Yer  degistirmeli  yamalar  gondermemeye  calisin. Boyle bir yama zaten
       uygulanmis bir yama gibi goruneceginden insanlari sasirtir.

       Yamanizin turetilerek elde  edilen  dosyalari  yamamasina  dikkat  edin
       (makefile'inizin icinde configure: configure.in diye bir satir var diye
       configure dosyasini yamamak gibi.). Alicilar bu  tur  turetilerek  elde
       edilen  dosyalari  zaten kendileri turetebilmelidir. Turetilen dosyalar
       icin fark  dosyalari  gondermek  zorundaysaniz,  fark  dosyalarini  UTC
       kullanarak  uretin. Boylece alicilar yamayi -Z (--set-utc) secenegi ile
       uygulayip yamanmis dosyalara  bagimli  yamanmamis  dosyalari  kaldirmak
       zorunda kalirlar (make clean yapmak gibi).

       Besyuzbilmemkac  farklik bir listeyi tek bir dosyaya koymaktan kacinmak
       iyi olurdu.  Birbiriyle  ilgileri  nedeniyle  gruplanabilen  dosyalarla
       ilgili yamalari farkli dosyalara koymak akillica olur.

TANI ILETILERI

       Tani   iletilerinin   varligi   genellikle   patch'in   yama  dosyanizi
       cozumleyemedigini belirtir.

       --verbose secenegi  verilmisse  bir  Hmm...  iletisi,  yama  dosyasinda
       islenemeyen  bir metinin varligini ve patch'in bu metin icinde bir yama
       var mi acaba, varsa bu ne  tur  bir  yamadir  acaba  diye  bir  saptama
       yapmaya calistigini gosterir.

       patch'in  cikis  durumu  0  ise,  listedeki  yamalarin  hepsi basariyla
       uygulanmis demektir. 1 ise bazilari uygulanamamistir. 2 ise biraz  daha
       fazla sorun vardir. Bir dongu icinde cok sayida yama uyguluyorsaniz her
       seferinde bu cikis durumuna bakmaniz icabeder, boylece kismen  yamanmis
       dosyalara sonraki yamayi uygulamamis olursunuz.

YETERSIZLIKLER

       Baglamsal  fark  dosyalari  bos  dosyalarin  ve  bos  dizinlerin  ya da
       sembolik bag gibi  ozel  dosyalarin  olusturulmasi  ve  silinmesi  icin
       guvenilir   bir   icerik  sunamazlar.  Sahiplik,  dosya  izinleri  gibi
       dosyalarin temel verilerinde bir degisiklik bilgisi sunamadiklari  gibi
       bir  dosyanin  baska bir dosyaya sabit bag mi olacagi gibi bilgileri de
       iceremezler. Bu tur degisiklikler gerekliyse, bunlari  gerceklestirecek
       bir betik yamaya eslik etmelidir.

       patch,  bir  ed  betiginde  olmayan  satir  numaralari  hakkinda birsey
       soyleyemedigi gibi, bir normal fark dosyasinda da sadece bir degisiklik
       ya  da  silme  islemi  bulursa  hatali satir numaralarini saptayabilir.
       Belirsizlik faktoru olarak 3 verildiginde baglamsal fark  dosyalari  da
       sorun yaratabilir. Elverisli bir etkilesimli arayuz eklenene kadar, bir
       baglamsal   fark   dosyasinin   boyle   bir   durumda   sorun   cikarip
       cikarmayacagini  kendiniz saptamalisiniz. Suphesiz, hatasiz gerceklesen
       bir  derleme  islemi  yamanin  hatasiz  uygulandigini  gosteriyor  gibi
       gorunse de bu daima boyle olmaz.

       patch,  bazan  biraz fazla tahmin yapmasi gerekse bile genellikle dogru
       sonuclar  uretir.  Yine  de,  yamanin  uretildigi  dosya  ile   yamanin
       uygulandigi dosya ayni surume ait oldugu zaman sonuclarin dogru olacagi
       garanti edilmistir.

UYUMLULUK BILGILERI

       POSIX standardi, patch'in geleneksel davranisindan  farkli  davranislar
       belirtir.   patch'in  POSIX  uyumlulugu  olmayan  2.1  ve  daha  onceki
       surumleri ile calismak zorundaysaniz  bu  farklardan  haberdar  olmaniz
       gerekir.

       .  Geleneksel  patch'de  -p  seceneginin terimi istege baglidir. Yalniz
          basina  -p  secenegi  -p0'a  esdegerdir.  Simdiki  durumda  ise   -p
          seceneginin  bir terime sahip olmasi zorunludur ve -p 0 secenegi -p0
          secenegine esdegerdir. En yuksek derecede uyumluluk  adina  secenegi
          -p0 ve -p1 gibi kullanin.

          Ayrica,  geleneksel  patch  dosya yolunu saptarken bolu cizgilerinin
          sayisina bakarken yeni surumleri dosya yolunu olusturan  elemanlarin
          sayisina  bakmaktadir.  Bundan  dolayi,  birden  fazla  yanyana bolu
          cizgisi tek bir bolu cizgisi  olarak  ele  alinmaktadir.  En  yuksek
          derecede   uyumluluk   adina  gonderilen  yamalarin  icindeki  dosya
          isimlerinde // olmamasina dikkat edin.

       .  Geleneksel patch'de yedekleme ontanimli olarak etkindir. Bu davranis
          simdi sadece -b (--backup) secenegi ile etkin kilinabilmektedir.

          Bunun tersine, POSIX patch'de bir eslesmeme olsa bile yedekleme asla
          yapilmaz. GNU patch'de bu davranis   --posix  secenegi  kullanilarak
          yahut  POSIXLY_CORRECT  ortam  degiskeninin  varligi sayesinde POSIX
          uyumlulugu saglanarak aksi takdirde --no-backup-if-mismatch secenegi
          ile etkinlestirilir.

          Geleneksel  patch'in  -b sonek secenegi ile GNU patch'in -b -z sonek
          secenekleri esdegerdir.

       .  Geleneksel patch yama basligindan yamanacak dosyanin ismini ogrenmek
          icin  karmasik (ve iyi belgelenmemis) bir yontem kullanir. Bu yontem
          POSIX ile uyumlu olmadigi gibi, birkac yanlis gibi gorunmeyen yanlis
          icerir. Simdi patch ayni karmasiklikta (ama daha iyi belgelenmis) ve
          istege bagli olarak POSIX uyumlu olabilen bir yontem kullanmaktadir;
          onun   artik  daha  az  yanlis  gibi  gorunmeyen  yanlis  icerdigini
          dusunuyoruz.  Baglamsal  fark  dosyasinin   basliginda   ve   Index:
          satirinda  dosya  isimlerinden onek ayirmasi yapildiktan sonra kalan
          dosya isimleri ayni ise bu iki yontem birbiriyle uyumludur. Yamaniz,
          her  basliktaki  dosya isimleri esit sayida bolu cizgisi iceriyorsa,
          normal olarak uyumludur.

       .  Geleneksel patch  kullaniciya  bir  soru  yoneltecegi  zaman  soruyu
          standart  hataya  gonderir  ve  yaniti bir ucbirim olarak sirayla su
          dosyalarda arar: standart hata, standart cikti, /dev/tty ve standard
          girdi.  Simdi  ise  patch  soruyu  standart  citiya  gonderip yaniti
          /dev/tty'den    okur.    Bazi    sorularin    ontanimli    yanitlari
          degistirilmistir,  boyle  ontanimli  yanitlari  olan sorularda patch
          artik sonsuz bir donguye girip yanit beklememektedir.

       .  Geleneksel  patch  gercek  bir  hata  durumunda  1   ile   donerken,
          uygulanamayan yamalar oldugunda bunlarin sayisini belirten bir cikis
          degeri ile doner. Simdi ise patch uygulanamayan yamalar oldugunda  1
          ile, gercek bir sorun olmasi durumunda 2 cikis degeri ile doner.

       .  GNU  patch,  geleneksel  patch ve POSIX uyumlu patch icin ortak olan
          seceneklerle kendinizi sinirlarsaniz iyi olur. Bu secenekler asagida
          listelenmistir.  Terimli  seceneklerde  terimler zorunludur ve terim
          ile secenek arasindaki boslugun olup olmamasi onemlidir.

          -c
          -d dizin
          -D tanim
          -e
          -l
          -n
          -N
          -o ,ciktidosyasi
          -psayi
          -R
          -r reddosyasi

YAZILIM HATALARI

       Yazilim hatalarini  lutfen  eposta  ile  <bug-gnu-utils  (at)  gnu.org>
       adresine bildiriniz.

       patch  kismi  eslesmelerde,  asiri kaymis baslangic konumlarinda ve yer
       degistirmelerde daha cevik olmaliydi  ama  bu  islemler  ek  bir  gecis
       gerektiriyor.

       Kod  eger  yinelenmisse  (ornegin, #ifdef ESKIKOD ... #else ...  #endif
       ile) patch her iki surumude yamayamayacatir ve bu  her  ikisi  icin  de
       uygulanabiliyorsa,  yanlis surum yamanabilecek ve size islemin basarili
       oldugunu soylececektir.

       Evvelce  uygulanmis  bir  yamayi  uygularsaniz,   patch   yamanin   yer
       degistirmeli  yama olarak uygulanacagini varsayabilir ve size bu yamayi
       uygulamamayi teklif eder. Bu bir ozellik olarak yorumlanabilirdi.

KOPYALAMA

       Telif Hakki (C) 1984, 1985, 1986, 1988 Larry Wall.
       Telif Hakki (C)  1989,  1990,  1991,  1992,  1993,  1994,  1995,  1996,
       1997, 1998 Free Software Foundation, Inc.

       Bu  kilavuzun harfi harfine kopyalanmasina ve dagitilmasina telif hakki
       uyarisinin ve bu izin uyarisinin tum  kopyalarinda  bulunmasi  sartiyla
       izin verilmistir.

       Bu  kilavuzun  degistirilmis  kopyalarinin kopyalanmasi ve dagitilmasi,
       turetilmis calismanin sonuclarinin tamami, harfi  harfine  kopyalamanin
       kosullarini  icererek  ve  buna  esdeger bir izin uyarisi da saglandigi
       takdirde izin verilmistir.

       Bu kilavuzun diger dillere cevirilerinin kopyalanmasi ve dagitilmasina,
       bu  izin  uyarisinin  bulundugu orjinal ingilizce surumdeki telif hakki
       sahipleri tarafindan onaylanmis bir ceviri degilse, yukarida  aciklanan
       degistirilmis   surumlerinin   kosullari   saglandigi   takdirde   izin
       verilmistir.

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 surumu Larry Wall tarafindan yazilmistir. Paul  Eggert
       patch'in  keyfi  sinirlarini kaldirdi; ikilik dosyalarin desteklenmesi,
       dosya  zamanlarinin  ayarlanmasi,  dosyalari  silinmesi   ozelliklerini
       ekledi;  ve daha iyi POSIX uyumlulugu sagladi. Diger destekleyicilerden
       Wayne  Davison  unidiff  destegini,  David  MacKenzie  yapilandirma  ve
       yedekleme desteklerini sagladi.

,CEVIREN

       Nilgun Belma Buguner <nilgun (at) belgeler.gen.tr>, Agustos 2004