Wat is het RCS-bestandsformaat?
Een .rcs-bestand is een plat tekst-versiebeheerarchief geproduceerd door het Revision Control System, een van de oudste broncodebeheertools die nog steeds actief in gebruik zijn. Het slaat de volledige revisiegeschiedenis op van een enkel gecontroleerd bestand - meestal een broncodemodule - waardoor elke eerdere versie op verzoek kan worden gereconstrueerd.
Het archief is verdeeld in drie secties: een admin-header die de branch-structuur, toegangslijsten en symbolische tags declareert; een delta-boom met één knooppunt per revisie waarin datum, auteur, logbericht en branching-pointers worden vastgelegd; en een delta-tekstsectie die de head-revisie volledig opslaat en alle eerdere revisies als compacte reverse diffs. Wijzigingen tussen revisies worden weergegeven met hetzelfde regelgeoriënteerde diff-formaat dat bekend is van Unix-tooling. Het gehele bestand is 7-bits ASCII-tekst, leesbaar in elke editor.
Conventioneel wordt een RCS-archief opgeslagen met een ,v-achtervoegsel in een RCS/-submap - bijvoorbeeld main.c,v - hoewel de .rcs-extensie ook door sommige implementaties wordt gebruikt. RCS ondersteunt ook trefwoordvervanging, waarbij $Id$, $Author$, $Date$ en $Revision$ tags automatisch worden uitgebreid in uitgecheckte bronbestanden.
RCS werd in 1982 gecreëerd door Walter F. Tichy aan de Purdue University en later opgenomen in het GNU Project. Het is gestandaardiseerd in POSIX.2 (IEEE 1003.2). Hoewel Git, Subversion en CVS het voor de meeste projecten hebben vervangen, bevestigt GNU RCS 5.10.1 (uitgebracht in 2023) voortgezet actief onderhoud. RCS blijft in gebruik in legacy-codebases en build-pipelines voor embedded systemen waar een lichtgewicht changelog per bestand voldoende is.
Beveiliging & veiligheid
RISICO: LOWEen RCS-archief is platte ASCII-tekst die in elke editor kan worden gelezen - het bevat geen uitvoerbare inhoud. Het openen ervan is volledig veilig. De enige operationele waarschuwing is dat misvormde of corrupte RCS-bestanden de co/ci-tools in de war kunnen brengen; onderhoud altijd back-ups van het bestandssysteem voor RCS-archieven. Let op dat de .rcs-extensie ook wordt gebruikt door het volledig ongerelateerde Ren'Py save-formaat en Fryrender scène-formaat - controleer de bron voordat u een tool kiest.
Formaatdetails
in een notendop- Ren'Py RCS save-bestand - De Ren'Py visual-novel engine gebruikt .rcs als extensie voor savegames - een ongerelateerd binair formaat.
- Fryrender / RandomControl scène-bestand - RandomControl's Fryrender (3D-rendering) gebruikte historisch gezien .rcs voor scènedata - een ongerelateerd binair formaat.
Programma's die RCS-bestanden openen
Technische details
diepe specificaties| Codering | Platte tekst, 7-bits ASCII |
| Typische archiefgrootte | Ongeveer 1-10× de grootte van het gecontroleerde bestand (afhankelijk van het aantal revisies en het deltavolume) |
| Archiefstructuur | Drie secties - admin-header, delta-boom (één knooppunt per revisie), delta-tekstblokken |
| Delta-methode | Reverse diffs - head-revisie volledig opgeslagen; eerdere revisies als commando's voor het toevoegen/verwijderen van regels |
| Token eerste regel | `head` trefwoord gevolgd door het laatste revisienummer (bijv. `head 1.5;`) |
| Conventionele bestandsnaam | Gecontroleerde bestandsnaam + ",v" achtervoegsel in een RCS/ submap (bijv. foo.c,v) |
| Trefwoordvervanging | $Id$, $Author$, $Date$, $Revision$, $Log$ - modus gecontroleerd door het `expand` trefwoord in de admin-sectie |
| Standaard | POSIX.2 (IEEE 1003.2); formaat gedefinieerd in de rcsfile(5) man-pagina |
| Integriteit | Geen ingebouwd; vertrouwt op bestandssysteempermissies en toegangscontroles |
| Besturingssystemen | Linux, macOS, Unix/BSD; Windows via MSYS2, Cygwin of WSL |
| Uitgebracht | 1982 (original RCS by Walter F. Tichy, Purdue University); GNU RCS 5.x actively maintained |
| Laatste versie | GNU RCS 5.10.1 (released 2023) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.gnu.org |
RCS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over RCS-bestanden.