Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Unix-тің мәтіндік файлдарға өзгерістер енгізу құралы
Unix utility to apply changes to text files
Patch компьютерлік бағдарламасы – бұл Unix бағдарламасы, ол мәтіндік файлдарды жеке файлда (patch файлы) сақталған нұсқауларға сәйкес жаңартады. Patch файлы (немесе қысқаша, жаңырту) – мәтіндік файл, ол өзгерістердің тізімін қамтиды және бастапқы және жаңартылған файлдарды аргументтер ретінде пайдаланып diff бағдарламасын іске қосу арқылы жасалады. Файлдарды patch арқылы жаңартуды «patch қолдану» немесе жай ғана «жаңарту» деп атайды.
The computer tool patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file (also called a patch for short) is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments. Updating files with patch is often referred to as applying the patch or simply patching the files.
Тарих
Бастапқы жаңарту бағдарламасын Ларри Уолл жазды (кейіннен Perl бағдарламалау тілін жасаған) және 1985 жылдың мамырында mod.sources (кейіннен comp.sources.unix) тобына жариялады.
The original patch program was written by Larry Wall (who went on to create the Perl programming language) and posted to mod. sources (which later became comp. sources. unix) in May 1985.
patch XPG4 стандартына қосылды, ол кейіннен POSIX болды. Уоллдың коды OpenBSD, FreeBSD және schilytools жүйелеріндегі "patch" бағдарламаларының негізі болып табылады. The Open Group құрамына біріккен Open Software Foundation осыдан туындаған нұсқаны сақтап тұрған деген ақпарат бар. GNU жобасы/FSF Ларри Уолл нұсқасынан бөлінген patch бағдарламасын күтіп келеді. Мұрағат GNU diffutils мұрағатынан өзгеше, бірақ құжаттамасы ортақ басқарылады.
patch was added to XPG4, which later became POSIX. Wall's code remains the basis of "patch" programs provided in OpenBSD, FreeBSD, and schilytools. The Open Software Foundation, which merged into The Open Group, is said to have maintained a derived version. The GNU project/FSF maintains its patch, forked from the Larry Wall version. The repository is different from that of GNU diffutils, but the documentation is managed together.
Пайдалану контексі
Бағдарламашылар үшін бағдарламашы жасаған түзетулер көбінесе бастапқы кодты жаңа нұсқаға жаңарту үшін қолданылды. Осы себепті көптеген адамдар түзетулерді бастапқы кодпен байланыстырады, бірақ түзетулер кез келген мәтінге қолданылуы мүмкін. Түзетілген файлдар қажетсіз мәтінді жинақтамайды, кейбір адамдар сөздің ағылшын тіліндегі мағынасына сүйене отырып, олай ойлайды; түзету мәтінді қосумен қатар алып тастауға да қабілетті. Мұнда сипатталған түзетулер бинарлық түзетулермен шатастырылмауы керек, олар тұжырымдық тұрғыдан ұқсас болғанымен, бағдарлама құрамына кіретін бинарлық файлдарды жаңа нұсқаға жаңарту үшін таралды.
Developed by a programmer for other programmers, patch was frequently used for updating source code to a newer version. Because of this, many people came to associate patches with source code, whereas patches can in fact be applied to any text. Patched files do not accumulate any unneeded text, which is what some people perceive based on the English meaning of the word; patch is as capable of removing text as it is of adding it. Patches described here should not be confused with binary patches, which, although can be conceptually similar, are distributed to update binary files comprising the program to a new release.
Бағдарламалық жасақтаудағы жаңсақ жерлер
Жаңартуды қолдануға кіріс ретінде берілетін diff файлдары оқуға қолайлы мәтіндік файлдар болып табылады, яғни оларды пайдалану алдында адамдар оңай қарап шығуға немесе өзгертуге болады. "diff" бағдарламасынан өзге, diff файлдарын Subversion, CVS, RCS, Mercurial және Git сияқты басқа бағдарламалар да жасау мүмкін. Жапсырмалар көптеген нұсқаулықты басқару жүйелерінің, оның ішінде CVS-тің маңызды бөлігі болды.
The diff files that serve as input to patch are readable text files, which means that they can be easily reviewed or modified by humans before use. In addition to the "diff" program, diffs can also be produced by other programs, such as Subversion, CVS, RCS, Mercurial and Git. Patches have been the crucial component of many source control systems, including CVS.
Жоғары деңгейдегі айырмашылықтар
Қосымша жетілдірілген айырмашылықтар қолданылғанда, түзетулер орталық уақытта өзгертілген файлдарға да қолданылуы мүмкін, егер бұл түзетулерге кедергі келтірмесе. Бұл "контексттік айырмашылықтар" және "біріктірілген айырмашылықтар" (сондай-ақ "біртұтас айырмашылықтар" деп те аталады) арқылы іске асырылады, олар әр өзгерісті өзгертілген бөліктің алдында және кейін орналасқан мәтінмен – контекстпен қоршайды. Түзету, файлдың басындағы өзгерістер салдарынан орны ауысқан жағдайда да, айырмашылықтардағы жол нөмірін бастапқы нүкте ретінде пайдаланып, түзетілуі тиіс бөлікті анықтау үшін осы контексті қолдана алады. Осы қасиетінің арқасында контексттік және біріктірілген айырмашылықтар көптеген бағдарламалық жобаларға жіберу үшін артықшылықты түзету нысаны болып табылады. Аталған мүмкіндіктер diff және patch құралдарын ашық бастапқы кодты бағдарламалық жасақтамаға өзгерістер жіберу үшін ерекше танымал етеді. Сыртқы қолданушылар соңғы қолжетімді бастапқы кодты жүктеп алады, оған өзгерістер енгізеді және оларды diff түрінде әзірлеу тобына жібереді. Diff құралын пайдаланып, әзірлеу тобы түзетулерді қолдану алдында тиімді түрде қарап шыға алады және оларды сыртқы әзірлеушінің қолжетімділігінде болған нұсқадан гөрі жаңа код базасына қолдана алады.
When more advanced diffs are used, patches can be applied even to files that have been modified in the meantime, as long as those modifications do not interfere with the patch. This is achieved by using "context diffs" and "unified diffs" (also known as "unidiffs"), which surround each change with context, which is the text immediately before and after the changed part. Patch can then use this context to locate the region to be patched even if it has been displaced by changes earlier in the file, using the line numbers in the diffs as a starting point. Because of this property, context and unified diffs are the preferred form of patches for submission to many software projects. The above features make diff and patch especially popular for exchanging modifications to open source software. Outsiders can download the latest publicly available source code, make modifications to it, and send them, in diff form, to the development team. Using diffs, the development team has the ability to effectively review the patches before applying them, and can apply them to a newer code base than the one the outside developer had access to.
Жапсырма порттары
Бастапқыда Unix және Unix-қа ұқсас жүйелер үшін жазылған, patch сондай-ақ Windows және көптеген басқа платформаларға көшірілді. Patch-тың Windows порттарын GnuWin32 және UnxUtils ұсынады. Patch командасы ASCII-дің MSX DOS2 құралдарының MSX DOS 2 нұсқасының да бір бөлігі болып табылады.
Originally written for Unix and Unix like systems, patch has also been ported to Windows and many other platforms. Windows ports of patch are provided by GnuWin32 and UnxUtils. A patch command is also part of ASCII's MSX DOS2 Tools for MSX DOS version 2.