ARCV(8) System Administration Utilities ARCV(8)
NAME
Arcv - arcv is a lightweight, easy-to-use revision control system which
keeps untouched the user's original source files and folders
SYNOPSIS
arcv [OPTIONS] [COMMAND]
COMMAND:
branch BRANCH_FOLDER[:REVISION | RELEASE TAG]
Branch off a revision
check
Tell whether there are uncommitted modifications
co [REVISION | RELEASE TAG | FILENAME[:REVISION]]
Either update current source folder with head revision (no argu‐
ments) or checkout resp. the revision, release tag, file from
head revision to the specified output folder
diff [(REVISION | head | current)[vs(REVISION | RELEASE TAG)]]
Make a diff with the specified revision using system diff tool
export [DIRECTORY]
Export to a remote Git repo
git [(REVISION | head | current)[vs(REVISION | RELEASE TAG)]]
Make a diff with the specified revision using git
hash [DIRECTORY]
Display the hash signature for the head revision or the speci‐
fied folder
list
List the existing source folders stored in the repository
log [FILENAME]
Show the revision log messages from most recent to the oldest,
for the whole source or only the specified file.
meld [(REVISION | head | current)[vs(REVISION | RELEASE TAG)]]
Make a diff with the specified revision using meld tool
pub
Creates a new release by tagging the head revision with the con‐
tent of the VERSION.txt file.
repo INFO NAME
Display the specified information of the repository
rev
Display the head revision number
tarball [REVISION | head]
Create a tarball for the current source folder or the specified
revision
OPTIONS:
--debug
Activate debug logs
--silent
Silent mode
--source =DIRECTORY
Source directory to checkout from the repository
--verbose
Verbose mode
-X, --exclude =FILE PATTERNS
Prevent certain file patterns to be checked in
-f =FILENAME
Configure the arcv operational config filename (permament)
-m, --message =STRING
Commit log message
-n
Assume 'No' when prompted for confirmation
-o, --output =DIRECTORY
Output folder for checkouts or tarball exports
-y
Assume 'Yes' when prompted for confirmation
DESCRIPTION
arcv is a lightweight, safe, easy-to-use&learn revision control system
which leaves the user's original source file tree intact and ensures
revisions integrity.
Unless some traditional well-known revision control systems, 'arcv'
fully respects the user's source folder integrity and does not 'pol‐
lute' it with any additional files to achieve revision control. The re‐
vision control data are centralized in a dedicated folder, the reposi‐
tory, which can be either a local directory or a mountpoint to a direc‐
tory located on an external system.
'arcv' only relies on standard system tools and there's no additional
command set overlay needed to learn and use, e.g., for adding or remov‐
ing files. For instance, to exclude and remove a file from the revision
control, it is enough to remove the file from the system and commit the
new revision. To add a new file, this file just needs to be present be‐
fore commit.
The architecture of 'arcv' is readable and open, which enables users to
keep full control of the revisions and easily apply common corrective
actions without pain. E.g. if the user only recognizes somewhen after‐
wards that a log message was incomplete or incorrect, it can simply
modify the CHANGE_LOG file containing the message, without needing to
execute multiple operations and the tooling skills coming along.
Overall, the above few mentioned features enable 'arcv' to be of an ex‐
treme simplicity of use at the reach of anybody, even non-developers.
It enables an instant step-in and a drastic reduction of the learning
curve and daily time overhead generally required to manage revision
control.
AUDIENCE
arcv can be used by developers for the following purposes:
- Individual developers or single person-lead projects
- Early development stages of projects, prototyping
- Individual, well-targeted, independent development lines or
branches, which can be easily integrated into the main branch or
another revision control system without polluting or unnecessar‐
ily complexifying his historical record.
It can also be used as general-purpose incremental backup tool.
PLATFORMS
Arcv is a bash script primarly developed and tested under
Ubuntu. Because it features only minimalistic dependencies, it
is deemed to run on most Linux systems and Cygwin-enhanced Win‐
dows systems.
DOCUMENTATION
Please refer to the online page https://slashetc.fr/en/develop‐
ertoolsforlinux/arcv/arcv__documentation.html to access the full
documentation:
- Command usage with full examples
- Architecture insight
- Other pratical information
SYSTEM DEPENDENCIES
Arcv automatically handles dependencies toward external system
packages, i.e. it attempts to install all required system pack‐
ages, e.g. meld or tar, when necessary.
COMMAND DETAILS
branch BRANCH_FOLDER[:REVISION | RELEASE TAG]
Branch off a revision.
check
Tells whether there are uncommitted modifications. Return 0 when
so, 1 otherwise.
co [REVISION | RELEASE TAG | FILENAME[:REVISION]]
When used without argument, checks out all files of the head re‐
vision. Any file of the current source may get overwritten or
removed. Otherwise, checks out the specified revision, release
tag or file from head revision to the specified output folder.
diff [(REVISION | head | current)[vs(REVISION | RELEASE TAG)]]
Makes a diff with the specified revision using the system diff
tool. When no revision number is supplied, the head revision is
considered by default. Returns 0 when no difference is de‐
tected, 1 otherwise.
export [DIRECTORY]
When used without argument, exports the head revision to the re‐
mote Git repo. When the path to a folder is supplied as argu‐
ment, exports the content of that folder to the remote Git repo.
This latter usage is suitable e.g. to export the clean release
version of the source file tree, built at another location. The
URL of the remote Git repo shall be given in GITHUB.txt
git [(REVISION | head | current)[vs(REVISION | RELEASE TAG)]]
Makes a diff with the specified revision using git. When no re‐
vision number is supplied, the head revision is considered by
default.
hash [DIRECTORY]
Displays the hash signature of the head revision when no argu‐
ment is supplied. Otherwise, computes the hash signature for
the passed directory path
list
Lists the existing source folders stored in the repository
log [FILENAME]
Without argument, shows the global commit history of the source
folder. Otherwise, shows the commit history for the specified
file. The global history is always shown from most recent to
the oldest in batches of 5. The file-specific history is shown
from most recent to the oldest as a terminal menu, from which
the changes can be checked against head revision
meld [(REVISION | head | current)[vs(REVISION | RELEASE TAG)]]
Makes a diff with the specified revision using meld tool. When
no revision number is supplied, the head revision is considered
by default.
pub
Creates a new release by tagging the head revision with the con‐
tent of the VERSION.txt file. Then it prompts the user for the
next version and updates VERSION.txt accordingly.
repo INFO NAME
Displays the specified information of the repository. Supported
values:
git-repo: show the path to the git folder
rev
Displays the head revision number
tarball [REVISION | head]
Creates a tarball for the current source folder or the specified
revision. When used without argument, creates a tarball for the
current source folder, i.e. the current working directory. When
a revision number is supplied as argument, creates a tarball for
the specified revision. In both cases, the current working di‐
rectory must be the root of the versioned folder.
OPTIONS DETAILS
--debug
Activate debug logs
--silent
Silent mode. Hides messages which are usually displayed even
when verbose mode is not active.
--source DIRECTORY
Source directory to checkout from the repository. The source
folder to checkout can be specified with this option instead of
resolving the source folder from the current working directory.
--verbose
Verbose mode
-X, --exclude FILE PATTERNS
Prevent certain file patterns to be checked in. The file pat‐
terns must be supplied as a coma-separated list of file patterns
-f FILENAME
Arcv operational configuration filename, if different of the de‐
fault one coming along with the app, modified or not.
-m, --message STRING
Log message
-n
Assume 'No' answer for any confirmation request
-o, --output DIRECTORY
Output folder for checkouts or tarball exports
-y
Assume 'Yes' answer for any confirmation request
EXAMPLES
Please check the online cheatsheet https://slashetc.fr/en/devel‐
opertoolsforlinux/arcv/arcv__cheatsheet.html
AUTHOR
Written by Michel MEHL
REPORTING BUGS
Report bugs to <michel.mehl@slashetc.fr>
COPYRIGHT
Copyright © 2024-2026 Michel Mehl. All rights reserved. Tous droits
réservés (France).
License terms written down in file LICENSE.txt Les termes de la licence
sont détaillés dans le fichier LICENSE.txt
Arcv 1.0.1 July 2026 ARCV(8)