Arcv

Arcv

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)