Monotónní (software) - Monotone (software) - Wikipedia
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto problémech na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
![]() | |
Vývojáři | Monotónní tým |
---|---|
První vydání | 6. dubna 2003 |
Stabilní uvolnění | 1.1[1] / 4. května 2014 |
Úložiště | ![]() |
Napsáno | C ++ |
Operační systém | Unix, Linux, BSD, Mac OS X, Okna |
K dispozici v | Angličtina, italština, švédština, portugalština, němčina, španělština |
Typ | Kontrola revizí |
Licence | GNU General Public License |
webová stránka | www![]() |
Monotónní je otevřený zdroj software nástroj pro distribuovaná kontrola revizí.
Monotónní sleduje revize souborů, seskupuje sady revizí do sad změn a sleduje historii napříč přejmenováními. Projekt se zaměřuje na integritu nad výkonem.[2] Monotónní je určen pro distribuovaný provoz a velmi jej využívá kryptografické primitivy sledovat revize souborů (přes SHA-1 bezpečný hash ) a k autentizaci akcí uživatelů (přes RSA kryptografické podpisy ).
Dějiny
Milníky
Monotónní verze 0.26 představila zásadní změny interních databázových struktur, včetně nové struktury známé vývojáři Monotone jako a seznam.[3] Monotónní databáze vytvořené ve verzi 0.26 si nemohou vyměňovat revize se staršími monotónními databázemi. Starší databáze musí být nejprve upgradovány na nový formát. Nový protokol netsync je nekompatibilní se staršími verzemi Monotone.
Jako inspirace Git
V dubnu 2005 se společnost Monotone stala předmětem zvýšeného zájmu o FOSS společenství po Linus Torvalds zmínil to jako možnou náhradu za BitKeeper v Linux vývojový proces. V příspěvku na webu Seznam adresářů jádra Linuxu, Torvalds chválil Monotónní a disparaged Subversion (a potažmo všechny systémy pro správu verzí klient-server):[4]
Neobtěžujte se mi říkat o podvracení. Pokud musíte, začněte číst na „monotónním“. To se jeví jako nejschopnější alternativa, ale vývojáře tolik neotravujte, aby nedělali žádnou práci. Už si jsou vědomi mých problémů;)
— [4]
Místo přijetí Monotónie se Torvalds rozhodl napsat svůj vlastní SCM Systém, Git. Gitův design využívá některé nápady z Monotone, ale tyto dva projekty nesdílejí žádný základní zdrojový kód. Git se mnohem více zaměřuje na vysoký výkon, inspirovaný zdlouhavou historií a náročnými distribuovanými režimy spolupráce, které používají Torvalds a další autoři linuxového jádra. Torvalds později komentoval design a výkon Monotone:
Pokud chcete VCS napsaný v C ++, zahrajte si hru Monotone. Opravdu. Používají „skutečnou databázi“. Používají „pěkné objektově orientované knihovny“. Používají „pěkné abstrakce v C ++“. Upřímně řečeno, v důsledku všech těchto designových rozhodnutí, která znějí tak lákavě pro některé lidi z CS, je konečným výsledkem hrozný a neudržitelný nepořádek.
— [5]
Klíčový problém diskutován[6] bylo, zda by nahrazení BitKeeperu mělo podporovat sběr třešní, přičemž správce stromu může schválit podmnožinu oprav a odmítat ostatní na individuálním základě. Torvalds tvrdil, že tento přístup „vede k nesprávné dynamice a psychologii v systému“ přesunutím zátěže na proti proudu správci spíše než nutit po proudu správci, aby se více snažili udržovat své stromy bez odpadků. Dále tvrdil, že Monotone má správnou averzi k averzi sběru třešní jako funkce, ale pak ji nedokázal dostat dostatečně daleko tím, že neumožňoval dostatečně snadné „vyhodit“ nečisté pracovní stromy poté, co je splněn jejich účel.[7] Torvalds také poznamenal jeho vnímání, že Monotone v té době nedosáhl úrovně výkonu požadované projektem tak velkým, jako je vývoj linuxového jádra.
Design
Jako GNU arch a na rozdíl od Podvracení „Monotone zaujímá distribuovaný přístup k řízení verzí. Monotónní použití SHA-1 hash pro identifikaci konkrétních souborů nebo skupin souborů, jako u Git a Mercurial, místo čísel lineárních revizí. Každý účastník udržuje svou vlastní historii revizí uloženou v místním SQLite databáze.
Integrita
Před nějakou těžkou optimalizací v revizi 0.27 byl důraz Monotone na správnost nad optimalizací často obviňován ze špatných počátečních zkušeností. První akcí nového uživatele je často synchronizace (klonování) velké existující monotónní databáze, což je akce, která u velkých databází často trvala hodiny, kvůli rozsáhlému ověřování a kontrole integrity, které Monotone provádí při přesunu revizí po síti. Jakmile je počáteční (klonovaná) databáze naplněna, následné akce obvykle pokračují rychleji. Od července 2010[Aktualizace], u některých vzácnějších funkcí stále existuje prostor pro další optimalizaci.[Citace je zapotřebí ]
Pracovní postup
Monotone je obzvláště silný ve své podpoře pracovního postupu diverge / merge, kterého dosahuje zčásti tím, že vždy umožňuje potvrzení před sloučením.[8]
Síťování
Ačkoli Monotone původně podporoval různé síťové protokoly pro synchronizaci stromů, nyní používá výhradně vlastní protokol s názvem síťová synchronizace, který je robustnější a efektivnější a sdílí některé koncepční základy s rsync a cvsup. (Od verze 0.27 je však možné použít protokol netsync přes jakýkoli stream, zejména včetně připojení ssh.) Netsync má svůj vlastní IANA -přiřazený port (4691) a jeho starší verze podporuje a Wireshark zásuvný modul pro analýzu provozu. Neexistuje žádný samostatný monotónní server, protože jakýkoli monotónní klient může fungovat jako server.
Další funkce
Mezi další funkce Monotone patří:
- Dobrá podpora pro internacionalizace a lokalizace
- Přenosný design, implementovaný v C ++
- Klíčovým designovým cílem je vysoká integrita
- Monotónní lze importovat CVS projekty.
- Podepisování revizí pomocí RSA certifikáty
- Snadno se učí díky podobné sadě příkazů CVS
- Velmi dobré při větvení (jak divergence uvnitř větve, tak pojmenovaných větví) a slučování
- Dobrá dokumentace
- Velmi nízká údržba
- Kompletní a komplexní Perl knihovna, která vám umožní úplně ovládat Monotónní z Perl skriptu (mtn-browse to využívá)
Nevýhody
Od ledna 2008[Aktualizace], možné nevýhody Monotone zahrnují:
- Potenciální uživatelé se nemohou odhlásit (nebo odevzdat) zpoza proxy serveru (velmi časté v podnikových prostředích) kvůli protokolu bez protokolu HTTP.
- Problémy s výkonem u určitých operací (nejnápadnější počáteční tah)
Implementace
Monotónní je implementován v moderním dialektu C ++ nad Zvyšte knihovnu, Botan kryptografická knihovna a SQLite databázová knihovna. Monotone podporuje přizpůsobení a rozšíření prostřednictvím háčkové funkce napsáno v Programovací jazyk Lua. Proces monotónního sestavení je automatizován pomocí BuildBot a zahrnuje rozsáhlé regresní testy.
Viz také
Reference
- ^ "ZPRÁVY". 4. května 2014. Citováno 16. července 2019.
- ^ „Bylo zkontrolováno 7 systémů řízení verzí“. 18. září 2008. Citováno 2010-11-01.
- ^ Co jsou seznamy
- ^ A b Linus Torvalds (6. dubna 2005). "LKML: Linus Torvalds: sága SCM jádra". LKML.
- ^ Linus Torvalds (2007-09-06). „Re: [RFC] Convert builin-mailinfo.c to use The Better String Library“. GMANE. Archivovány od originál dne 06.02.2016.
- ^ David Woodhouse (7. 4. 2005). „LKML: David Woodhouse: Kernel SCM sága“. Citováno 2017-02-23.
- ^ Linus Torvalds (7. dubna 2005). "LKML: Linus Torvalds: Re: Kernel SCM sága". LKML.
- ^ „Nakládání s vidličkou - monotónní dokumentace“. Citováno 2010-11-21.