Fossil

Fossil
Type distribueret versionskontrolsystem [d]
Udvikler Richard Hipp [d]
Skrevet i C [1] og SQL [2]
Operativ system på tværs af platforme
Første udgave 2006
nyeste version 2.12.1 (20. august 2020)
Læsbare filformater SQLite database filformat [d] og Fossil repository database [d]
Genererede filformater SQLite database filformat [d] og Fossil repository database [d]
Licens 2-klausul BSD-licens [3] [4]
Internet side fossil-scm.org
 Mediefiler på Wikimedia Commons

Fossil  er et distribueret versionskontrolsystem udviklet af Richard Hipp . Richard Hipp er også hovedudvikleren af ​​SQLite- databasen , som Fossil bruger som et opbevaringssted for al information.

Design

Al funktionalitet er implementeret i én eksekverbar fil (fossil eller fossil.exe). Filstørrelsen varierer fra to megabyte (Mac 10.x x86) til fire megabyte (Windows) for forskellige builds. Der kræves ingen installationsprocedure, bare kopier filen til en mappe på din computer, der er tilgængelig via PATH -variablen . Fossil kræver heller ikke nogen eksterne afhængigheder: Du SKAL IKKE CVS, gzip, diff, rsync, Python, Perl, Tcl, Java, apache, PostgreSQL, MySQL, SQLite, patch eller lignende applikationer for at bruge Fossil effektivt .

Et interessant træk ved Fossil er, at selvom det er et distribueret versionslagringssystem som GIT eller Mercurial , giver det også brugeren mulighed for at arbejde med et centraliseret lager som CVS eller SVN . Denne funktion er implementeret på grund af autosynkroniseringstilstanden : efter en vellykket gennemført commit af ændringer i det lokale lager ( commit ), sendes redigeringer automatisk ( push ) tilbage til serveren, hvorfra depotet blev klonet eller sidst synkroniseret. På samme måde, når du opdaterer ( opdater ) lokale filer, trækker Fossil først ( træk ) de seneste ændringer fra serveren til lokalt lager og opdaterer derefter brugerens filer. Autosync aktiveret som standard: ifølge forfatterne kører samarbejdende udvikling i denne tilstand mere gnidningsløst ved at undgå meningsløse forgrene/sammenlægninger og holde udviklere i den samme version af koden i stedet for deres egne inkompatible grene.

Fossil tjekker automatisk alle depoter for integritet og konsistens. Depotets pålidelighed er baseret på brugen af ​​SQLite3 DBMS som et informationslager, som er i stand til at sikre atomiciteten af ​​eksekverbare operationer.

Ud over funktionaliteten af ​​versionskontrolsystemet inkluderer dette projekt også funktionaliteten af ​​en fejlsporing , editor og arkiv af wiki-sider for mere bekvemt arbejde med projektet. En simpel HTTP-server er også implementeret i dette projekt. Faktisk udføres alt arbejde med depotet gennem HTTP-protokollen .

Fossil har en webgrænseflade, der kan konfigureres fleksibelt af brugeren. Alle grænsefladeindstillinger gemmes også i lagerfilen. Den indbyggede HTTP-server understøtter protokollen til at arbejde med eksterne CGI -applikationer , og takket være dette kan funktionaliteten af ​​den medfølgende grænseflade udvides betydeligt.

Fossil-webserveren gør det muligt at vise projektdokumentation - systemet vil vise filer fra den tilsvarende projektmappe i browseren under hensyntagen til redigeringens version. Fossil genkender hovedfiltyperne (.css, .gif, .htm, .html, .jpg, .jpeg, .png, .txt). Derudover håndteres særlige typer tekstfiler separat: .wiki (en variant af Wiki-markup ) og .md ( Markdown ). Redigering af dokumentationsfiler i selve systemet leveres ikke, dette kan betragtes som både en fordel og en ulempe, afhængigt af projektet.

Således er én Fossil-applikation nok til at danne et komplet system til at arbejde med projektet: et depot, en fejlsporing, en brugerdefineret hjemmeside til visning af depotet med download af aktuelle projektbilleder, dokumentation, wiki-sider med mulighed for præ-moderering, osv. Især og sitet fossil-scm.org og depotet for Fossil-projektet er lavet på det.

Brug

Oprettelse af et nyt projekt udføres med kommandoen init , som initialiserer et tomt lager:

fossil init <depot filnavn>

For at arbejde med et eksisterende projekt skal du oprette en lokal kopi af depotet med clone- kommandoen :

fossil klon <URL til eksisterende depot> <lager filnavn>

For eksempel opretter følgende linje en klon af SQLite-projektlageret:

fossil klon http://www.sqlite.org/src/ sqlite.fossil

Fossil understøtter import og eksport af GIT- depoter . For at importere data fra et eksisterende GIT -projekt kan du køre følgende kommandoer:

cd <git directory> git fast-export --all | fossil import --git <arkivfilnavn>

Efter at have oprettet eller klonet depotet, skal du placere filerne i projektets arbejdsmappe. For at gøre dette skal du oprette en mappe, gå til den og køre kommandoen åben :

fossil åben <lager filnavn>

Konfiguration af lokalt lager udføres via en webbrowser :

fossil ui <arkivfilnavn>

Lagringsfilnavnet kan udelades, når kommandoen udføres fra projekttræet. Som standard kræver Fossil ikke et login, hvis forbindelsen går gennem loopback-grænsefladen (127.0.0.1).

Brug kommandoerne for at tilføje nye filer eller fjerne gamle

fossil tilføje <filnavn>... fossil rm <filnavn>...

For automatisk at synkronisere filsystemet med depotet er der kommandoen addremove . Det fjerner manglende lokale filer fra depotet og tilføjer dem, der ikke er der endnu, men som er til stede i projekttræet, til depotet.

For at gemme redigeringer i depotet (inklusive efter tilføjelse , rm , addremove kommandoer ), skal du udføre kommandoen commit .

fossil begå

Efter indtastning af denne kommando, vil standardteksteditoren for operativsystemet automatisk blive lanceret for at oprette edit commit-kommentaren. Som standard efterfølges commit- kommandoen af ​​en push- kommando for at skubbe ændringerne til fjernlageret. Denne adfærd kan ændres med kommandoen:

fossil indstilling autosynkronisering fra

Hvis auto-synkronisering er deaktiveret, skal brugeren selv synkronisere sit lokale lager med det eksterne, for at andre udviklere kan se hans rettelser.

fossil push <URL til repository> fossil pull <URL til repository> fossil sync <URL til repository>

Push sender data til en ekstern server, pull trækker de seneste ændringer, synkroniserer push og pull .

Efter at ændringerne fra andre udviklere er blevet hentet fra serveren med pull -kommandoen , skal du kalde update -kommandoen og anvende ændringerne på projektfiltræet med update -kommandoen .

fossil opdatering VERSION

Hvor VERSION kan være navnet på en gren, et tag, en forkortelse for identifikatoren (artefakt) for en bestemt revision eller et tidsstempel. Hvis der ikke er angivet nogen version, anvendes de seneste ændringer.

Deling af ændringer med andre versionskontrolsystemer

Fossil Free Repository Hosting

De fossile depoter hostes frit af Chisel- webstedet  , vedligeholdt af Roy Keene. Fossile depoter hostes også af SourceForge [2]

Bøger

Noter

  1. 2.0 Programmeringssprog // Tilføjelse af funktioner til fossil
  2. Tanker om designet af det fossile DVCS
  3. https://fossil-scm.org/home/finfo?name=COPYRIGHT-BSD2.txt
  4. https://www.fossil-scm.org/fossil/doc/tip/COPYRIGHT-BSD2.txt

Links