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

       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

       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

       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.0                        August 2026                          ARCV(8)
