Provided by: manpages-pl_0.6-2_all bug

NAZWA

       patch - dołącz plik różnicowy do oryginału

SKŁADNIA

       patch [opcje] [plikoryginalny [plikzłatą]]

       lecz zazwyczaj po prostu

       patch -pnum <plikzłatą

OPIS

        Uwaga! To tłumaczenie może być nieaktualne!

       Patch  pobiera  plik z łatą, który może zawierać jedną z czterech postaci różnic, dawanych
       przez program diff(1).  Jeśli plikzłatą jest pominięty lub jest myślnikiem, to łata będzie
       czytana  ze  standardowego  wejścia.   Następnie dołącza te różnice do pliku oryginalnego,
       dając w efekcie wersję załataną. Domyślnie, wersja załatana jest  podstawiana  na  miejsce
       oryginału.   Może  też  tworzyć  kopie  zapasowe  zmienianego oryginału, zob. opcja -b lub
       --backup.  Kopia oryginału jest zapisywana obok, z rozszerzeniem ".orig" (w systemach  nie
       obsługujących  długich  nazw  plików "~").  Postać nazwy kopii zapasowej można kontrolować
       przez opcje -b (--suffix), -B (--prefix), lub -V (--version-control).

       Nazwy plików do załatania są zwykle brane z pliku łaty,  ale  jeśli  łatany  będzie  tylko
       jeden plik, to można podać go w wierszu poleceń jako plikoryginalny.

       Podczas  uruchamiania,  patch  próbuje  sam określić rodzaj listingu różnicowego. Można to
       zrobić też ręcznie, opcjami -c (--context), -e (--ed), -n (--normal) lub  -u  (--unified).
       Różnice  typu  context  (starego  rodzaju,  nowego  rodzaju  i  unifikowane  (unified)) są
       nanoszone na oryginał wprost przez program patch, podczas gdy  różnice  ed  są  po  prostu
       przesyłane poprzez potok do edytora ed(1).

       Patch  próbuje  automatycznie  pominąć  wszelkie  śmieci  znajdujące  się przed fragmentem
       różnicowym, dokonać załatania i znowu pominąć śmieci, znajdujące się za różnicą. Tak  więc
       przekazanie patchowi, różnicy znajdującej się np. w wiadomości pocztowej, powinno działać.
       Jeśli całość różnic jest wcięta o ten sam rozmiar, lub różnice kontekstowe zawierają linie
       zakończone  parami  CRLF,  lub  są raz bądź wielokrotnie zakapsułkowane przez poprzedzenie
       ciągiem "- " linii zaczynających się od "-", jak podano w RFC 934, to  jest  to  poprawnie
       uwzględniane w łataniu.

       W  przypadku  różnic  typu context i w mniejszym stopniu różnic typu normal, patch potrafi
       wykryć, kiedy numery linii wymienione w łacie są nieprawidłowe i spróbuje znaleźć właściwe
       miejsce.  Jako  pierwszy strzał, używany jest numer linii użyty w badanym kawałku plus lub
       minus offset użyty do zaaplikowania poprzedniego  kawałka.  Jeśli  nie  jest  to  właściwe
       miejsce,  nastąpi skanowanie w przód i wstecz w poszukiwaniu zestawu linii odpowiadającego
       podanemu kontekstowi.  Na początek, szukane jest  miejsce,  do  którego  pasują  wszystkie
       linie  fragmentu.   Jeśli  nie  uda  się  go  znaleźć  i  mamy  do  czynienia  z różnicami
       kontekstowymi a współczynnik `maximum fuzz factor' jest ustawiony  na  1  lub  więcej,  to
       skanowanie  jest  powtarzane,  lecz  teraz  ignoruje  pierwszą i ostatnią linię kontekstu.
       Jeśli i to zawiedzie, a wyżej wymieniony współczynnik jest ustawiony na 2 lub  więcej,  to
       ignorowane  będą dwie pierwsze i dwie ostatnie linie.  (Domyślnym współczynnikiem jest 2.)
       Jeśli patch nie może znaleźć właściwego miejsca do  zaaplikowania  fragmentu  różnicy,  to
       wstawi  go  do  pliku  odrzuceń,  który  normalnie  ma nazwę pliku wyjściowego, z dopisaną
       końcówką .rej (lub # jeśli .rej utworzyłoby zbyt długą nazwę pliku.  Jeśli  dodanie  nawet
       pojedynczego  znaku  # powoduje, że nazwa pliku staje się za długa, to # zastępuje ostatni
       znak nazwy).  (Zauważ, że odrzucony fragment  zostanie  wyprodukowany  jako  różnica  typu
       context,  niezależnie  od  postaci  łaty  wejściowej.  Jeśli  była  ona typu normal, wiele
       kontekstów będzie po prostu pustych.)  Numery linii w pliku odrzuceń mogą być inne  niż  w
       łacie:  odzwierciedlają one przypuszczalną pozycję w nowym pliku, do której prawdopodobnie
       należą odrzucone fragmenty.

       Gdy obróbka fragmentu  jest  zakończona,  zostaniesz  poinformowany,  czy  zakończyła  się
       sukcesem,  czy też się nie powiodła i w której linii (nowego pliku) wg patcha ten fragment
       powinien się znaleźć.  Jeśli jest ona inna od numeru linii, podanego w  pliku  różnicowym,
       zostaniesz  poinformowany  o  offsecie.   Pojedynczy  duży  offset  może być wskazówką, że
       fragment zainstalowano w złym miejscu.  Jeśli  do  porównania  użyto  współczynnika  `fuzz
       factor',  to  też będziesz o tym poinformowany, gdyż może to być podejrzane.  Jeśli użyłeś
       opcji --verbose, zostaniesz też powiadomiony o fragmentach dopasowanych dokładnie.

       Jeśli w linii komend nie podano żadnego pliku oryginalnego, patch spróbuje go odgadnąć  ze
       śmieci, zawartych w pliku z różnicą, stosując poniższe zasady.

       Najpierw buduje uporządkowaną listę kandydatur według takich reguł:

         Jeśli  nagłówek  jest  nagłówkiem  różnicy  typu  context, nazwa starego i nowego pliku
          odczytywana jest z niego. Nazwa pliku jest ignorowana jeśli ma za  mało  ukośników  dla
          opcji -pnum lub --strip=num.  Nazwa /dev/null jest również ignorowana.

         Jeśli  w  początkowych  śmieciach  jest linia Index: i albo brakuje obu nazw, starego i
          nowego pliku, albo patch działa zgodnie z POSIX, to pobierana jest nazwa z tej linii.

         W poniższych regułach zakłada się, że rozważane nazwy plików są  uporządkowane  (stary,
          nowy, indeks), niezależnie od kolejności, w jakiej występują w nagłówku.

       Następnie patch wybiera nazwę pliki z listy potencjalnych nazw:

         Jeśli  któryś z wymienionych plików istnieje, to wybierana jest pierwsza nazwa zgodna z
          POSIX, w przeciwnym razie najlepsza.

         Jeżeli patch nie ignoruje RCS, ClearCase i SCCS (zob. opcję -g num  lub  --get=num),  a
          tak  wskazany  plik istnieje, ale znaleziono główną (master) pozycję RCS, ClearCase lub
          SCCS, wybrany zostanie pierwszy plik wymieniony w tej pozycji.

         Jeśli nie istnieje plik o danej nazwie, nie znaleziono głównej pozycji  RCS,  ClearCase
          lub  SCCS,  podano  jakieś  nazwy,  patch  nie  stosuje  się  do POSIX, zaś łata wymaga
          utworzenia pliku, to wybierana jest najlepsza nazwa wymagająca stworzenia  najmniejszej
          liczby katalogów.

         Jeśli  powyższy  algorytm  heurystyczny  nie da żadnej nazwy pliku, to zostaniesz o nią
          zapytany.  Poza tym, jeśli w prowadzących śmieciach znajduje linia  "Prereq:  ",  patch
          spróbuje  pobrać  pierwsze  słowo  z  tej  linii  (zwykle numer wersji) i sprawdzić czy
          istnieje ono w pliku  wejściowym.   Jeśli  nie,  patch  zapyta  o  potwierdzenie  przed
          kontynuacją.

       Efektem  tego  wszystkiego  jest to, że powinieneś być w stanie podać w interfejsie newsów
       następujące:

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

       i tym samym załatać katalog blurfl bezpośrednio z artykułu, który zawiera łatę.

       Jeśli plik z łatą składa się z więcej niż jednej łaty, program patch spróbuje  zaaplikować
       je  tak,  jakby  przyszły  w  osobnych plikach z łatami.  Znaczy to między innymi tyle, że
       nazwa łatanego pliku jest określana dla każdego listingu różnic  z  osobna  i  że  śmieci,
       znajdujące  się przed każdym z listingów będą analizowane jak opisano wyżej.  Do kolejnych
       łat można przekazywać opcje (i inną oryginalną  nazwę  pliku),  oddzielając  odpowiadające
       listy  argumentów  znakiem  '+'.   (Lista argumentów kolejnej łaty nie musi jednak podawać
       nowej nazwy pliku z łatą.)

OPCJE

       -b, --backup
          Tworzy pliki kopii  zapasowych.   To  znaczy,  przy  łataniu  pliku,  zamiast  usuwania
          oryginału  tworzy  jego  kopię  lub zmienia nazwę. Jako kopia zapasowa pliku, który nie
          istniał tworzony jest pusty  plik,  zastępczo  reprezentujący  nieistniejący  oryginał.
          Sposób   ustalania   nazw   plików   kopii  zapasowych  opisano  przy  opcjach  -V  lub
          --version-control.

       --backup-if-mismatch
          Tworzy kopię zapasową jeśli łata nie pasuje dokładnie do pliku a nie  zażądano  w  inny
          sposób  tworzenia  kopii.  Jest to zachowanie domyślne, chyba że patch działa zgodnie z
          POSIX.

       --no-backup-if-mismatch
          Nie tworzy kopii zapasowej jeśli łata  nie  pasuje  dokładnie  do  pliku  i  jeśli  nie
          zażądano  w  inny sposób tworzenia kopii.  Jest to zachowanie domyślne gdy patch działa
          zgodnie z POSIX.

       -B pref, --prefix=pref
          Poprzedza przedrostkiem pref nazwę pliku podczas tworzenia  nazwy  zwykłej  kopii.   Na
          przykład,    przy   -B /junk/   nazwą   zwykłej   kopii   dla   src/patch/util.c   jest
          /junk/src/patch/util.c.

       --binary
          Za wyjątkiem standardowego wyjścia i /dev/tty,  wszystkie  pliki  czyta  i  zapisuje  w
          trybie  binarnym.   Opcja  ta nie ma żadnych skutków na systemach zgodnych z POSIX.  Na
          systemach podobnych do DOS, gdzie ma znaczenie, łata powinna być tworzona  przy  użyciu
          diff -a --binary.

       -c,  --context
          Wymusza interpretację pliku z łatą jako różnicy typu context.

       -d kat,  --directory=katalog
          Powoduje  interpretację  katalogu  jako katalogu, który ma być bieżącym i przechodzi do
          niego przed zrobieniem czegokolwiek innego.

       -D symb,  --ifdef=symb
          Powoduje używanie konstrukcji  "#ifdef...#endif"  do  oznaczania  zmian.   symb  będzie
          symbolem różnicującym.

       --dry-run
          Wypisuje wynik łatania bez faktycznego zmieniania plików.

       -e,  --ed
          Wymusza interpretację pliku z łatą jako skryptu ed.

       -E,  --remove-empty-files
          Powoduje,  że  usuwane są pliki wyjściowe, które po zaaplikowaniu łat są puste.  Zwykle
          użycie tej opcji nie jest konieczne, gdyż program  potrafi  zbadać  znaczniki  czasu  w
          nagłówku  i  stwierdzić,  czy  po  naniesieniu łat plik powinien istnieć.  Jeśli jednak
          wejście nie jest plikiem różnic kontekstowych lub gdy patch  działa  zgodnie  z  POSIX,
          puste  załatane  pliki  nie będą usuwane, dopóki nie zostanie podana ta opcja.  Podczas
          usuwania pliku patch usiłuje usunąć również jego puste katalogi nadrzędne.

       -f,  --force
          Wymusza założenie, że użytkownik dokładnie wie co robi i powoduje  niezadawanie  pytań.
          Pomija  łaty, z których nagłówków nie wynika, jaki plik powinien być załatany; pliki są
          łatane nawet jeśli mają  złą  wersję  dla  linii  Prereq:;  zakłada,  że  łaty  nie  są
          odwrócone,  nawet jeśli tak wyglądają.  Opcja ta nie eliminuje komentarzy; do tego użyj
          -s.

       -F num,  --fuzz=num
          Ustawia współczynnik `maximum fuzz factor'.  Opcja  ta  tyczy  się  tylko  różnic  typu
          context  i  powoduje,  że  patch ignoruje maksymalnie tyle linii, zaglądając w miejsca,
          gdzie  ma  zainstalować  fragment  łaty.  Zauważ,   że   duży   współczynnik   zwiększa
          prawdopodobieństwo  nieprawidłowego  naniesienia  łaty. Domyślną wartością jest 2 i nie
          może być ustawiona na więcej niż liczba linii kontekstu w różnicy, czyli zwykle 3.

       -g num,  --get=num
          Steruje akcjami programu patch gdy oryginalny plik jest pod kontrolą RCS  lub  SCCS,  a
          nie  istnieje  lub  jest  przeznaczony  tylko  dla  odczytu.  Także wtedy, gdy jest pod
          kontrolą ClearCase, a nie istnieje.  Jeżeli num jest dodatnie,  to  pobiera  (get)  lub
          aktualizuje  (check  out)  plik  z  danego  systemu  kontroli  wersji (revision control
          system).  Jeśli wynosi zero, patch ignoruje system kontroli wersji i nie pobiera pliku;
          jeśli num jest ujemne, to pyta użytkownika czy pobrać plik.  Domyślna wartość tej opcji
          określana jest wartością zmiennej środowiska PATCH_GET  jeśli  takowa  istnieje;  jeśli
          nie,  to  wartość  domyślna  jest zerem, gdy patch działa zgodnie z POSIX, w przeciwnym
          razie jest ujemna.

       -i plikłaty,  --input=plikłaty
          Odczytuje łatę z plikułaty.  Jeśli plikiemłaty jest -,  to  ze  standardowego  wejścia,
          domyślnie.

       -l,  --ignore-whitespace
          Wykonuje  swobodniejsze  porównywanie  wzorców,  w  przypadku, gdy w pliku pozamieniano
          tabulacje i spacje. Dowolna sekwencja białych spacji (znaków tabulacji  lub  spacji)  w
          linii  pliku  łaty  będzie  odpowiadać  dowolnej  sekwencji białych spacji oryginalnego
          pliku.  Ciągi białych spacji występujące na  końcach  linii  są  ignorowane.   Normalne
          znaki  muszą wciąż dokładnie pasować. Każda linia kontekstu nadal musi pasować do linii
          oryginalnego pliku.

       -n,  --normal
          Powoduje, że plik z łatą jest interpretowany jak różnica typu `normal'.

       -N,  --forward
          powoduje ignorowanie łat, które wydają się być odwrócone lub już zaaplikowane.   Zobacz
          też -R.

       -o plik-wyj,  --output=plik-wyj
          Zamiast łatania bezpośrednio oryginalnych plików, wynik jest kierowany do plik-wyj.

       -pnum,  --strip=num
          Z   każdej  nazwy  pliku  znalezionej  w  pliku  łaty  ujmuje  najmniejszy  przedrostek
          zawierający num początkowych ukośników.  Ciąg kilku sąsiadujących ukośników  liczy  się
          za  jeden  ukośnik.   Opcję  przewidziano  na wypadek gdybyś przechowywał pliki w innym
          katalogu niż osoba, która przesłała łatę.  Na przykład, załóżmy, że nazwa pliku w łacie
          miała wartość

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

          ustawienie -p lub -p0 nie zmienia jej, -p1 daje

               u/howard/src/blurfl/blurfl.c

          bez początkowego ukośnika, a -p4 daje

               blurfl/blurfl.c

          natomiast  niepodanie  -p  w  ogóle,  daje po prostu blurfl.c.  Wynik tej operacji jest
          poszukiwany albo w katalogu bieżącym, albo w katalogu podanym przez opcję -d.

       --posix
          Postępuje bardziej zgodnie ze standardem POSIX:

            Dociekając nazw plików z nagłówków różnic  z  listy  (stary,  nowy,  indeks)  bierze
             pierwszy istniejący plik.

            Nie usuwa plików, które po załataniu stają się puste.

            Nie pyta o pobieranie plików z RCS, ClearCase czy SCCS.

            Wymaga, by w wierszu poleceń wszystkie opcje występowały przed nazwami plików.

            Nie tworzy kopii zapasowych przy wystąpieniu niezgodności.

       --quoting-style=wyraz
          Używa  stylu  wyraz  do  cytowania  nazw  wyjściowych.   Wyraz  powinien  być  jednym z
          poniższych:

          literal
                 Wypisuje nazwy bez zmian.

          shell  Cytuje nazwy dla powłoki jeśli zawierają  metaznaki  powłoki  lub  spowodowałyby
                 dwuznaczność wyniku.

          shell-always
                 Cytuje nazwy dla powłoki, nawet wtedy, gdy normalnie nie wymagałyby cytowania.

          c      Cytuje nazwy jak dla łańcuchów w języku C.

          escape Cytuje jak z c, z wyjątkiem tego, iż pomija otaczające znaki cudzysłowu.

          Wartość  domyślną  opcji  --quoting-style  można określić za pomocą zmiennej środowiska
          QUOTING_STYLE.  Jeśli nie jest ona ustawiona, to wartością domyślną jest shell.

       -r plik-odrz,  --reject-file=plik-odrz
          Odrzucone poprawki są umieszczane  w  zadanym  pliku-odrz,  a  nie  w  domyślnym  pliku
          odrzuceń .rej.

       -R,  --reverse
          Mówi, że łata ta została utworzona przy zamienionych miejscami starych i nowych plikach
          [tłum. zamiast `diff -c stary nowy' użyto  pomyłkowo  `diff  -c  nowy  stary'].   (Tak,
          obawiam  się  że  czasem  się to zdarza, natura ludzka jest jaka jest.)  Patch Spróbuje
          zamienić  każdy  fragment  przed  jego  zaaplikowaniem.  Odrzucenia  wyjdą  w  formacie
          zamienionym  (swapped).  Opcja -R nie działa ze skryptami różnicowymi eda gdyż jest tam
          zbyt mało danych do zrekonstruowania operacji odwrotnej.

          Jeśli pierwszy fragment łaty zawiedzie, patch odwraca ten fragment, sprawdzając czy nie
          może  być  tak  zaaplikowany.  Jeśli może, zostaniesz zapytany czy chcesz ustawić opcję
          -R.  Jeśli nie, łata będzie aplikowana dalej w sposób tradycyjny.   (Uwaga:  metoda  ta
          nie  może  wykryć  łaty  odwróconej  jeśli jest to różnica typu normal i jeśli pierwszą
          komendą jest doklejanie (append) (tj. powinno to być kasowanie  --  delete).  Jest  tak
          dlatego, że doklejanie zawsze działa, gdyż pusty kontekst pasuje wszędzie.  Szczęśliwym
          trafem, wiele łat raczej dodaje  lub  zmienia  linie  niż  je  kasuje,  więc  większość
          odwróconych  różnic  typu  normal  zaczyna  się  od  kasowania,  co  zawiedzie i wywoła
          heurystykę.)

       -s,  --silent,  --quiet
          Powoduje, że patch działa cicho, chyba że pojawi się błąd.

       -t,  --batch
          Podobne do -f, gdyż eliminuje pytania, lecz działa według innych założeń: pomija  łaty,
          których nagłówki nie zawierają nazw plików (tak samo jak -f), pomija łaty dla plików ze
          złymi wersjami Prereq: i przyjmuje, że łaty są odwrócone, jeśli na takie wyglądają.

       -T,  --set-time
          Ustawia czasy modyfikacji i ostatniego  dostępu  załatanych  plików  według  znaczników
          czasu  podanych  w  nagłówkach  różnic typu context, zakładając, że nagłówki te stosują
          czas lokalny.  Opcja ta jest  niezalecana,  gdyż  użycie  łat  korzystających  z  czasu
          lokalnego przez osoby z innych stref czasowych nie jest łatwe.  Ponadto znaczniki czasu
          lokalnego nie są jednoznaczne w przypadku, gdy zegar lokalny jest cofany  w  związku  z
          dostosowywaniem  do  czasu  letniego.   Zamiast  tej  opcji, powinno się tworzyć łaty z
          czasem uniwersalnym (UTC) i stosować opcję -Z lub --set-utc.

       -u,  --unified
          Wymusza interpretację łaty jako różnicy  typu  unified  context  (zunifikowana  różnica
          kontekstowa).

       -V metoda,  --version-control=metoda
          -V  metoda,  --version--control=metoda  Powoduje,  że metoda staje się metodą tworzenia
          nazw plików zapasowych. Rodzaje  robionych  kopii  zapasowych  można  również  podać  w
          zmiennej  środowiskowej  PATCH_VERSION_CONTROL  (lub, jeśli nie jest ustawiona, zmienną
          VERSION_CONTROL), która jest przesłaniana przez tę opcję.  Wybrana metoda nie ma wpływu
          na  to,  czy  kopie  zapasowe  będą  wykonywane, i w jakich przypadkach.  Określa tylko
          sposób tworzenia nazw plików zapasowych.  Wartość  metody  jest  podobna  jak  zmiennej
          `version-control'  GNU  Emacsa.   Patch  rozpoznaje  też ich bardziej opisowe synonimy.
          Poprawne wartości to (przyjmowane są rozróżnialne skróty):

          numbered  lub  t
             Tworzy zawsze numerowane kopie zapasowe.  Nazwą numerowanej kopii zapasowej pliku  F
             jest F.~N~ gdzie N to numer wersji.

          existing  lub  nil
             Tworzy  numerowane  kopie  zapasowe  plików,  które  już je mają, a zwykłe kopie dla
             pozostałych. Tak jest domyślnie.

          `never' lub `simple'
             Zawsze robi zwykłe kopie zapasowe.  Opcje -B lub --prefix, -Y lub  --basename-prefix
             i  -z lub --suffix określają nazwę pliku zwykłej kopii zapasowej.  Jeżeli nie podano
             żadnej z nich, to stosowany  jest  przyrostek  zwykłej  kopii  zapasowej.   Jest  to
             wartość  zmiennej  środowiska  SIMPLE_BACKUP_SUFFIX,  jeśli  jest ona ustawiona, lub
             .orig w przeciwnym razie.

          Przy kopiach numerowanych lub zwykłych, jeśli nazwa pliku  kopii  zapasowej  jest  zbyt
          długa,  to  zamiast  niej  używa  się  przyrostka  kopii  ~.   Jeżeli  nawet  dodanie ~
          spowodowałoby, że nazwa będzie za długa, to ~ zastępuje ostatni znak nazwy pliku.

       --verbose
          Wypisuje dodatkowe informacje o wykonywanej pracy.

       -x num,  --debug=num
          ustawia wewnętrzne flagi debuggowe. Ma to znaczenie tylko dla łataczy programu patch.

       -Y pref,  --basename-prefix=pref
          Przy tworzeniu nazwy zwykłej kopii poprzedza przedrostkiem pref podstawową część  nazwy
          pliku.    Na   przykład,   przy  -Y .del/  nazwą  pliku  zwykłej  kopii  zapasowej  dla
          src/patch/util.c jest src/patch/.del/util.c.

       -z suffix,  --suffix=suffix
          Powoduje, że suff jest interpretowane jako przyrostek nazw zwykłych  kopii  zapasowych.
          Na  przykład,  przy  -z -  nazwą  pliku  zwykłej  kopii kopii dla src/patch/util.c jest
          src/patch/util.c-.  Przyrostek kopii można też określić za pomocą  zmiennej  środowiska
          SIMPLE_BACKUP_SUFFIX, która jest przesłaniana przez tę opcję.

       -Z,  --set-utc
          Ustawia  czasy  modyfikacji  i  ostatniego  dostępu załatanych plików według znaczników
          czasu podanych w nagłówkach różnic typu context, zakładając,  że  nagłówki  te  stosują
          czas  uniwersalny  -  Coordinated  Universal  Time  (UTC,  znany  też  jako czas średni
          Greenwich GMT).  Zobacz też opcja -T lub --set-time.

          Opcje -Z lub --set-utc i -T lub --set-time normalnie  powstrzymują  się  od  ustawiania
          czasu pliku jeśli jego oryginalny czas nie pasuje do czasu podanego w nagłówku łaty lub
          jej zawartość nie pasuje dokładnie do łaty.  Jednak, jeśli podano opcję -f lub --force,
          to czas pliku jest ustawiany bez względu na niezgodności.

          Z  powodu  ograniczeń formatu wyjściowego stosowanego przez diff, opcje te nie potrafią
          aktualizować czasów plików, których zawartość się nie zmieniła.  Wykorzystując te opcje
          powinno  się  pamiętać  o usunięciu (np. za pomocą make clean) wszystkich plików, które
          zależą  od  załatanych,  by  późniejsze  wywołania  make  nie  zostały  zmylone  czasem
          załatanych plików.

       --help
          Wypisuje listę opcji i kończy działanie.

       -v,  --version
          Wypisuje wersję programu i kończy działanie.

ŚRODOWISKO

       PATCH_GET
          Określa,  czy  patch  powinien  domyślnie  pobierać brakujące lub przeznaczone tylko do
          odczytu pliki z RCS, ClearCase lub SCCS. Zobacz opis opcji -g lub --get.

       POSIXLY_CORRECT
          Jeśli jest ustawiona, patch  ściślej  stosuje  się  do  standardu  POSIX  w  zachowaniu
          domyślnym.  Zobacz opis opcji --posix.

       QUOTING_STYLE
          Domyślna wartość opcji --quoting-style.

       SIMPLE_BACKUP_SUFFIX
          Przyrostek stosowany do tworzenia nazw plików zwykłych kopii zapasowych .orig.

       TMPDIR, TMP, TEMP
          Katalog  do  przechowywania  plików  tymczasowych.  patch wykorzystuje pierwszą zmienną
          środowiska z tej listy, jaka jest ustawiona.  Jeśli żadna nie  jest,  wartość  domyślna
          zależy od systemu: normalnie na maszynach uniksowych jest to /tmp.

       VERSION_CONTROL lub PATCH_VERSION_CONTROL
          Wybiera metodę kontroli wersji kopii pliku; zobacz opcja -v lub --version-control.

PLIKI

       $TMPDIR/p∗
          pliki tymczasowe

       /dev/tty
          terminal sterujący; używany do uzyskania odpowiedzi na pytania zadawane użytkownikowi.

ZOBACZ TAKŻE

       diff(1) ed(1).

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

UWAGI DLA WYSYŁAJĄCYCH ŁATY

       Istnieje kilka rzeczy, o których należy pamiętać przy wysyłaniu łat.

       Twórz   łatę   według   sprawdzonego    schematu.     Dobrą    metodą    jest    polecenie
       diff -Naur stary nowy gdzie stary i nowy identyfikują stary i nowy katalog.  Nazwy stary i
       nowy nie powinny zawierać żadnych ukośników.  Nagłówki z  poleceń  diff  powinny  zawierać
       daty i czasy czasu uniwersalnego (UTC) z zastosowaniem tradycyjnego formatu uniksowego, by
       odbiorcy łaty mogli skorzystać z opcji -Z lub --set-utc.   Oto  przykładowe  polecenie,  z
       użyciem składni powłoki Bourne'a:

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

       Powiadom  odbiorców,  jak  zaaplikować  łatę,  wskazując, do którego katalogu przejść cd i
       jakich opcji patch użyć.  Zalecany jest łańcuch opcji -Np1.  Wypróbuj procedurę  stawiając
       się na miejscu odbiorcy i stosując łatę na kopię oryginalnych plików.

       Możesz oszczędzić ludziom wielu problemów, zachowując plik patchlevel.h Jest on łatany aby
       zwiększyć poziom łaty (patch level).  Umieść go jako pierwszą  różnicę  w  pliku  z  łatą,
       który  wysyłasz.   Jeśli  do łaty wstawisz linię Prereq:, to nie pozwoli ona na stosowanie
       łat poza kolejnością bez ostrzeżenia.

       Możesz utworzyć plik u odbiorcy wysyłając mu różnicę z porównania /dev/null lub pusty plik
       o dacie równej Epoce (1970-01-01 00:00:00 UTC) z plikiem, który chcesz stworzyć.  Zadziała
       to tylko jeśli plik taki jeszcze nie istnieje w katalogu docelowym.  I  odwrotnie,  możesz
       usunąć  plik  wysyłając różnicę kontekstową porównującą plik do usunięcia z pustym plikiem
       datowanym na Epokę.  Plik nie zostanie usunięty jeśli patch działa zgodnie z POSIX  a  nie
       podano  opcji  -E lub --remove-empty-files.  Prostą metodą generowania łat, które tworzą i
       usuwają pliki jest użycie opcji -N lub --new-file programu GNU  diff.   Jeśli  spodziewasz
       się, że odbiorca użyje opcji -pN, nie wysyłaj wyjścia wyglądającego tak:

            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

       bo  obie  nazwy  plików  mają  różną  liczbę  ukośników,  a  rozmaite  wersje patch różnie
       interpretują nazwy plików.  Unikniesz mylnej interpretacji, wysyłając zamiast  tego  takie
       wyjście:

            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

       Unikaj  wysyłania łat porównujących pliki o takich nazwach, jakie mają kopie zapasowe, jak
       np.  README.orig, gdyż może to zmylić patch, tak że będzie nakładał  łatę  na  plik  kopii
       zamiast  na  rzeczywisty  plik.   Zamiast tego powinieneś wysyłać łaty porównujące pliki o
       takich samych nazwach podstawowych,  położone  w  różnych  katalogach,  np.  old/README  i
       new/README.

       Uważaj by nie wysyłać łat odwrotnych, gdyż powoduje to, że ludzie zastanawiają się czy już
       załączyli łatę.

       Nie próbuj budować łat, które zmieniały by pliki pochodne (np. plik  configure,  w  którym
       jest linia configure: configure.in w swoim makefile), ponieważ odbiorca i tak powinien być
       w stanie je odtworzyć.  Jeśli musisz wysłać różnice plików pochodnych, utwórz je  używając
       czasu  uniwersalnego  UTC;   odbiorcy  powinni  zaaplikować  łątę  stosując  opcję  -Z lub
       --set-utc,  a  następnie  usunąć  wszystkie  niełatane  pliki,  które  zależą  od  właśnie
       załatanych (np. za pomocą make clean).

       Mimo  iż  można  umieścić  582  listingów  różnic  w jednym pliku, to lepiej wstawić grupy
       powiązanych łat do osobnych plików.

       Poza tym, upewnij się, że podałeś poprawnie  nazwy  plików,  zarówno  w  nagłówku  różnicy
       kontekstowej,  jak  i  w  linii  Index:.   Jeśli łatasz coś w podkatalogu, upewnij się, że
       powiadomiłeś użytkownika, by podał opcję -p.

DIAGNOSTYKA

       Zbyt wiele by tu wymieniać, lecz ogólnie wskazują, że patch nie mógł przetworzyć  pliku  z
       łatą.

       Jeśli  podano  opcję  --verbose,  komunikat  Hmm...  wskazuje,  że  w  pliku  z  łatą jest
       nieprzetworzony tekst i że patch próbuje domyślić się, czy znajduje  się  w  nim  łata,  a
       jeśli tak, to jakiego jest rodzaju.

       Patch  kończy  pracę  z  kodem  0  jeśli wszystkie kawałki zaaplikowano poprawnie, 1 jeśli
       jakieś nie mogły być zaaplikowane, a  2  w  przypadku  poważniejszych  kłopotów.   Podczas
       aplikowania  zbioru  łat  w pętli, umożliwia ci sprawdzenie tego kodu, tak by nie dołączać
       już reszty łat do częściowo połatanego pliku.

ZASTRZEŻENIA

       Różnice kontekstowe nie mogą  wiarygodnie  odwzorowywać  tworzenia  lub  usuwania  pustych
       plików,  pustych  katalogów  czy  plików  specjalnych,  jak  dowiązania  symboliczne.  Nie
       potrafią też reprezentować zmian w metadanych pliku, takich jak właściciel,  grupa,  prawa
       czy to, że jeden plik jest twardym dowiązaniem do drugiego.  Jeśli takie zmiany są również
       wymagane, łacie powinny towarzyszyć osobne instrukcje (np. w postaci skryptu powłoki).

       Patch nie potrafi stwierdzić, czy w skrypcie ed nie istnieją numery linii, a w  normalnych
       różnicach  może  wykryć  niewłaściwe  numery  tylko  gdy  odnajdzie  zmianę lub usunięcie.
       Różnica kontekstowa, używająca współczynnika `fuzz factor' 3 może mieć  podobne  problemy.
       Dopóki  nie zostanie dodany właściwy interaktywny interfejs użytkownika, powinieneś raczej
       w tych wypadkach robić różnice typu context.  Zobaczysz czy zmiany mają  sens.  Oczywiście
       kompilowanie  bez błędów jest całkiem dobrym wskazaniem, że łata zadziałała, lecz nie jest
       to zawsze prawda.

       Patch zwykle daje prawidłowe wyniki, nawet gdy musi dużo zgadywać. Jednak  rezultaty  mają
       gwarancję  prawidłowości tylko wtedy, gdy łaty aplikowane są do dokładnie tej samej wersji
       pliku, z której zostały wygenerowane.

KWESTIE ZGODNOŚCI

       Standard POSIX podaje zachowanie, które różni się od tradycyjnego zachowania  się  patcha.
       Powinieneś  pamiętać  o tych różnicach jeśli musisz współpracować z patch w wersji 2.1 lub
       wcześniejszymi, które nie są zgodne z POSIX.

         W tradycyjnym patchu argument opcji -p był opcjonalny, a gołe -p było  równoważne  -p0.
          Obecnie  opcja  -p  wymaga  argumentu,  a  -p 0  jest  teraz  równoważnikiem  -p0.  Dla
          zachowania maksymalnej zgodności, stosuj opcje typu -p0 i -p1.

          Ponadto, tradycyjny  patch  po  prostu  zlicza  ukośniki  przy  obcinaniu  przedrostków
          ścieżkowych;  patch  liczy obecnie składowe nazwy pliku.  To znaczy, ciąg sąsiadujących
          ukośników liczy się obecnie za jeden ukośnik.  Dla  zachowania  maksymalnej  zgodności,
          unikaj wysyłania łat zawierających // w nazwach plików.

         W  tradycyjnym  patchu, tworzenie kopii zapasowych było włączone domyślnie.  Zachowanie
          to jest teraz włączane opcją -b lub --backup.

          I odwrotnie, w POSIX-owym patch, kopie nigdy  nie  są  tworzone,  nawet  jeśli  wystąpi
          niedopasowanie    łaty.    W   GNU   patch,   zachowanie   to   jest   włączane   opcją
          --no-backup-if-mismatch lub przez  włączenie  zgodności  z  POSIX  opcją  --posix  albo
          ustawieniem zmiennej środowiska POSIXLY_CORRECT.

          Opcja -b suffix tradycyjnego patch jest równoważna opcjom -b -z suffix dla GNU patch.

         Tradycyjny patch stosuje skomplikowaną (i nie w pełni udokumentowaną) metodę domyślania
          się z nagłówka łaty nazwy pliku do załatania.  Metoda ta nie jest zgodna z POSIX  i  ma
          kilka  niepoprawnie  zakodowanych fragmentów [gotchas].  Obecny patch korzysta z innej,
          równie skomplikowanej (ale  lepiej  udokumentowanej)  metody,  która  jest  opcjonalnie
          zgodna  z  POSIX;  mamy  nadzieję, że ma mniej błędów. Obie te metody są ze sobą zgodne
          jeśli nazwy plików w nagłówku  różnicy  kontekstowej  i  w  linii  Index:  po  obcięciu
          przedrostka  są  identyczne.  Normalnie łata jest zgodna jeśli wszystkie nazwy plików w
          nagłówku zawierają tę samę liczbę ukośników.

         Gdy tradycyjny patch zadawał użytkownikowi pytanie, kierował je na standardowe  wyjście
          błędów  i  oczekiwał odpowiedzi z pierwszego pliku poniższej listy będącego terminalem:
          standardowe wyjście błędów,  standardowe  wyjście,  /dev/tty,  i  standardowe  wejście.
          Teraz  patch  wysyła  pytania  na  standardowe wyjście i pobiera odpowiedzi z /dev/tty.
          Zmieniono domyślne odpowiedzi na niektóre z pytań.  Dzięki temu patch nigdy nie wchodzi
          w nieskończoną pętlę przy stosowaniu domyślnych odpowiedzi.

         Tradycyjny  patch  kończył działanie z kodem równym liczbie błędnych fragmentów, albo z
          kodem 1 jeśli napotkano poważny problem.  Obecnie patch  kończy  działanie  z  kodem  1
          jeśli  nie  udało  się  zaaplikować  jakichś fragmentów, albo 2 jeśli napotkano poważny
          problem.

         Wysyłając instrukcje określające sposób skorzystania z łaty przez kogoś  pracującego  z
          GNU  patch,  tradycyjnym patchem, lub patch em zgodnym z POSIX ogranicz się do podanych
          niżej opcji.  W tym zestawieniu spacje są znaczące, a argumenty wymagane.

             -c
             -d kat
             -D symb
             -e
             -l
             -n
             -N
             -o plik-wyj
             -pnum
             -R
             -r plik-odrz

BŁĘDY

       Zgłoszenia błędów proszę wysyłać do <bug-gnu-utils@gnu.org>.

       Mógłby być sprytniejszy co do  częściowych  trafień,  nadmiernie  odbiegających  od  normy
       offsetów i zamienionego kodu, lecz wymagałoby to dodatkowego przebiegu.

       Jeśli  kod  został  powielony  (np.  #ifdef STARYKOD ... #else ... #endif), patch nie może
       załatać obu wersji, i jeśli w ogóle zadziała, prawdopodobnie załata niewłaściwą  i  powie,
       że udało mu się z obydwiema.

       Jeśli  aplikujesz  łatę, którą już zaaplikowałeś, patch pomyśli że jest to odwrotna łata i
       zaoferuje zdjęcie łaty.  Można to uważać za zaprojektowaną funkcję programu.

KOPIOWANIE

       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.

AUTORZY

       Larry  Wall  napisał  pierwotną  wersję patcha.  Paul Eggert usunął istniejące w programie
       arbitralne ograniczenia.  Dodał  obsługę  plików  binarnych,  ustawianie  czasów  pliku  i
       usuwanie  plików,  i uczynił go bardziej zgodnym z POSIX-em.  Swój wkład wnieśli też Wayne
       Davison, który dodał obsługę formatu unidiff, i David  MacKenzie,  który  dołożył  obsługę
       ustawień i kopii zapasowych.

INFORMACJE O TŁUMACZENIU

       Powyższe  tłumaczenie  pochodzi  z nieistniejącego już Projektu Tłumaczenia Manuali i może
       nie być aktualne. W  razie  zauważenia  różnic  między  powyższym  opisem  a  rzeczywistym
       zachowaniem  opisywanego  programu  lub  funkcji,  prosimy  o  zapoznanie się z oryginalną
       (angielską) wersją strony podręcznika za pomocą polecenia:

              man --locale=C 1 patch

       Prosimy o pomoc w aktualizacji stron man - więcej informacji  można  znaleźć  pod  adresem
       http://sourceforge.net/projects/manpages-pl/.