ARCV(1) User Commands ARCV(1)
NAME
Arcv - arcv is a rsync-based, easy-to-use revision control tool which
keeps intact users' files and directories
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
destroy
Put folder out of revision control and delete all related file
from repositiory
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
hook [FILE]
Create a release hook and lists the hook(s)
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 [RELEASE TAG:REVISION]
Create a new release tag
rel
Show the release log messages from most recent to the oldest
repo [INFONAME]
Display the specified information of the repository or all when
none specified
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
--fix
Fix SHA hashcode
--from =(REVISION | RELEASE_TAG)
Specify the most recent revision or release tag from which to
start the operation
--silent
Silent mode
--source =DIRECTORY
Source directory to checkout from the repository
--to =(REVISION | RELEASE_TAG)
Specify the oldest revision or release tag until which to apply
the operation
--verbose
Verbose mode
-F, --fmt =FILE PATTERNS
Specifies the output format
-X, --exclude =FILE PATTERNS
Prevent certain file patterns to be checked in
-f =FILENAME
Configure the arcv operational config filename (permament)
-l
Dry check-in, listing only new/deleted/changed files
-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.
destroy
Put folder out of revision control and delete all related file
from repositiory
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
hook [FILE]
Without arguments, lists the defined hook(s). Otherwise, cre‐
ates a release hook with the passed executable that will be run
whenever a release tag is created. It will ensure that hook as
the execution rights
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 [RELEASE TAG:REVISION]
When no argument is supplied, creates a new release by tagging
the head revision with the content of the VERSION.txt file.
Then it prompts the user for the next version and updates VER‐
SION.txt accordingly.
rel
Shows the release log messages from most recent to the oldest
repo [INFONAME]
Displays the specified information of the repository. Supported
values: releases latest-release-tag latest-release-rev ex‐
clude-file exclusions src-dir rev-dir rev-hashfilepath rev-hash‐
filename head-dir head-image-dir git-repo size
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
--fix
This option enables to explicitly fix the SHA fingerprint aka
hash code in case there's a mismatch between current source and
the stored finger whilst no change was actually detected. This
can be useful when the internal hash computation algorithm may
change or could get anyhow broken because of an untested envi‐
ronment or an internal bug. In any other case, this option has
no effect.
--from (REVISION | RELEASE_TAG)
Specifies the most recent revision or release tag from which to
start the operation. A negative number N designates the Nth re‐
vision behind the head. At the moment, this option is only rele‐
vant for the history 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.
--to (REVISION | RELEASE_TAG)
Specifies the oldest revision or release tag until which to ap‐
ply the operation. A negative number N designates the Nth revi‐
sion behind the head. At the moment, this option is only rele‐
vant for the history logs.
--verbose
Verbose mode
-F, --fmt FILE PATTERNS
Specifies the format of the output of a command. At the moment,
this option is only relevant for history logs and diffs. There
iss no effect if the format is not supported by the applied com‐
mand
-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.
-l
Dry check-in, listing only new/deleted/changed files
-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.2.1 September 2026 ARCV(1)