Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Ревизияны басқару бағдарламалық жасақтамасы
Revision control software
Monotone – таратылған нұсқаны басқаруға арналған ашық кодты бағдарламалық құрал. Ол файлдарға енгізілген өзгерістерді қадағалайды, өзгерістерді жиынтықтарға біріктіреді және файлдарды қайта атау тарихын сақтайды. Жобаның басты назарында – өнімділіктен гөрі қауіпсіздік. Monotone үлестірілген жұмыс үшін жасалған, файлдардың нұсқаларын (SHA-1 қамтитын хэш арқылы) және пайдаланушы әрекеттерін (RSA криптографиялық қолтаңбалары арқылы) растау үшін криптографиялық құралдарды кеңінен пайдаланады.
Monotone is an open source software tool for distributed revision control. It tracks revisions to files, groups sets of revisions into changesets, and tracks history across renames. The focus of the project is on integrity over performance. Monotone is designed for distributed operation, and makes heavy use of cryptographic primitives to track file revisions (via the SHA 1 secure hash) and to authenticate user actions (via RSA cryptographic signatures).
Басты оқиғалар
Monotone 0.26 нұсқасы Monotone әзірлеушілері "roster" деп аталатын жаңа құрылымды қоса, ішкі деректер базасы құрылымына маңызды өзгерістер енгізді. 0.26 нұсқасымен жасалған Monotone деректер базалары ескі Monotone деректер базаларымен өзгерістер алмаса алмайды. Ескі деректер базаларын алдымен жаңа форматқа жаңарту қажет. Жаңа netsync протоколы Monotone-нің бұрынғы нұсқаларымен үйлесімсіз болып табылады.
Monotone version 0.26 introduced major changes to the internal database structures, including a new structure known by Monotone developers as a roster. Monotone databases created with version 0.26 can not exchange revisions with older Monotone databases. Older databases must first be upgraded to the new format. The new netsync protocol is incompatible with earlier versions of Monotone.
Дизайн
GNU Arch сияқты, бірақ Subversion-нан өзгеше, Monotone нұсқаны басқаруға таратылған тәсіл қолданады. Monotone, Git және Mercurial сияқты, сызықтық нөмірлеудің орнына, нақты файлдарды немесе файлдар тобын анықтау үшін SHA-1 хэштерін пайдаланады. Әрбір қатысушы өзгерту тарихын жеке SQLite дерекқорында сақтайды.
Like GNU arch, and unlike Subversion, Monotone takes a distributed approach to version control. Monotone uses SHA 1 hashes to identify specific files or groups of files, as with Git and Mercurial, in place of linear revision numbers. Each participant maintains their own revision history, stored in a local SQLite database.
Адалдық
0.27 нұсқасындағы күрделі оңтайландыруларға дейін, Monotone-ның оңтайландырудан гөрі дұрыстыққа баса назар аударуы жиі жаңа пайдаланушылардың алғашқы жағымсыз тәжірибесіне себеп болып келді. Жаңа пайдаланушының бірінші қадамы әдетте үлкен Monotone дерекқорын синхрондау (клондау) болып табылады, бұл үлкен дерекқорлар үшін, Monotone түзетулер желі арқылы жылжығанда кең ауқымды растау және тұтастығын тексеруден өтуіне байланысты, көбінесе сағаттарға созылуы мүмкін. Бастапқы (клондалған) дерекқоры толтырылғаннан кейін, келесі әрекеттер әдетте жылдамдатылады. 2010 жылғы мәліметтерге сәйкес, кейбір сирек қолданылатын функцияларды одан әрі оңтайландыруға әлі де мүмкіндік бар.
Prior to some heavy optimisation in revision 0.27, Monotone's emphasis on correctness over optimisation was often blamed for poor initial experiences. The first action of a new user is often to synchronize (clone) a large existing Monotone database, an action which often took hours for large databases, due to the extensive validation and integrity checking which Monotone performs when revisions are moved through the network. Once the initial (clone) database is populated, subsequent actions usually proceed more rapidly. as of 2010, there is still room for further optimisation on some rarer functions.
Жұмыс ағыны
Monotone ерекше түрде дивергенция/біріктіру жұмыс ағынын қолдауға баса назар береді, бұл мүмкіндіктің бір бөлігі ретінде әрқашан біріктіру алдында коммит жасауға рұқсат етеді.
Monotone is especially strong in its support for a diverge/merge workflow, which it achieves in part by always allowing commit before merge.
Желі құру
Монотон бастапқыда ағаштарды синхрондау үшін әртүрлі желілік протоколдарды қолдағанмен, қазір тек netsync деп аталатын арнайы протоколды ғана қолданады. Бұл протокол бұрынғыларына қарағанда сенімді әрі тиімді, сондай-ақ rsync және cvsup протоколдарымен ұқсас принциптерге негізделген. (Дегенмен, 0.27 нұсқасынан бастап netsync протоколын кез келген дерек ағыны арқылы пайдалану мүмкіндігі бар, оның ішінде ssh қосылымдары да.) Netsync-тің IANA тағайындаған дербес порты (4691) бар, ал оның ескі нұсқаларын трафик талдау үшін Wireshark плагині қолдайды. Жеке Monotone сервері қажет емес, себебі кез келген Monotone клиенті сервер қызметін атқара алады.
Although Monotone originally supported a variety of networking protocols for synchronizing trees, it now exclusively uses a custom protocol called netsync, which is more robust and efficient, and shares some conceptual ground with rsync and cvsup. (However, as of version 0.27, it is possible to use the netsync protocol over any stream, notably including ssh connections.) Netsync has its own IANA assigned port (4691) and older versions of it are supported by a Wireshark plug in for traffic analysis. There is no separate Monotone server because any Monotone client can act as a server.
Іске асыру
Монотон қазіргі заманғы C++ диалектісінде Boost кітапханасы, Botan криптографиялық кітапханасы және SQLite деректер базасы кітапханасы негізінде жүзеге асырылған. Монотон Lua бағдарламалау тілінде жазылған байланыс функциялары арқылы конфигурациялау мен кеңейтуді қолдайды. Монотонды құрастыру процесі BuildBot арқылы автоматтандырылған және кең ауқымды регрессиялық тесттерді қамтиды.
Monotone is implemented in modern dialect C++ on top of the Boost library, the Botan cryptography library, and the SQLite database library. Monotone supports customization and extension via hook functions written in the Lua programming language. The monotone build process is automated with BuildBot and includes extensive regression tests.