cvs-inject(1)



NAME

   cvs-inject - inject a debian source package into a CVS repository

SYNOPSIS

   cvs-inject [options] <package>.dsc

DESCRIPTION

   This  manual page explains the Debian cvs-inject utility, which is used
   to inject or import Debian source packages into a  CVS  repository.  It
   handles  Debian-only packages (which do not have diff files) as well as
   normal packages from upstream sources converted to Debian use.

   The upstream sources are imported  to  the  vendor  branch  and  tagged
   upstream_version_<upstream  version>  with all dots translated to under
   scores. The debianized sources, if  different,  are  put  on  the  main
   branch,  and tagged debian_version_<upstream version>-<debian revision>
   with all dots translated to under scores.

   The sole argument is a debian source .dsc file, which is parsed to  get
   the  package  name  and version.  cvs-inject reads the same config file
   /etc/cvsdeb.conf as the the other cvs-* utilities do.  People  may  use
   of the dry-run option to inspect the steps this utility takes.

   Combined with the companion utilities cvs-buildpackage and cvs-upgrade,
   this provides an infrastructure to facilitate the use of CVS by  Debian
   maintainers. This allows one to keep separate CVS branches of a package
   for stable, unstable, and possibly  experimental  distributions,  along
   with the other benefits of a version control system.

   This  utility  can  be  used to generate a unified CVS source tree, for
   example, with

    find /var/spool/mirror/debian/hamm/hamm/source \
                  -type f -name \*.dsc | while read i;
        do
           j=$(dirname $i | sed -e s:source/::           \
                  -e s:/var/spool/mirror/debian/:: )
           cvs-inject -x$j $i
        done

   Which happily gobbled up the sources and created a CVS repository on my
   machine until the partition filled up.

CAVEATS

   Please note that the current behaviour of cvs-inject is to ignore files
   that match the default list of file name patterns to be  ignored  (this
   is  built  into  cvs);  and  that  any .cvsignore files in the upstream
   sources shall be honoured. This should be  fine  as  long  as  upstream
   sources  do  not  include  files that match cvs ignore patterns and yet
   should be in the  sources.  The  current  list  of  ignored  file  name
   patterns is:
          RCS  SCCS  CVS  CVS.adm  RCSLOG  cvslog.*  tags TAGS .make.state
          .nse_depinfo *~ #* .#* ,* _$* *$ *.old *.bak *.BAK *.orig  *.rej
          .del-* *.a *.olb *.o *.obj *.so *.exe *.Z *.elc *.ln core

   If  you  wish  to modify this behaviour, there are ways to do this (you
   should see CVS documentation).

   o)     The  per-repository  list  in  `$CVSROOT/CVSROOT/cvsignore'   is
          appended to the list, if that file exists.

   o)     The  per-user  list  in  `.cvsignore'  in your home directory is
          appended to the list, if it exists.

   o)     Any entries in the environment variable $CVSIGNORE  is  appended
          to the list.

   In  any  of  the  places  listed above, a single exclamation mark (`!')
   clears the ignore list.  This can be used if you want to store any file
   which  normally  is  ignored by CVS. Also, any .cvsignore file found in
   the source directory is also honoured. If you wish to specify your  own
   list  on  the  command  line,  you  may  use  the  environment variable
   CVSDEB_IMPORTSUBSTMODE (for example, CVSDEB_IMPORTSUBSTMODE="! -I  blah
   -ko -d ).

OPTIONS

   -h                  Print out a usage message.

   -m                  If  present,  this  option  directs this program to
                       include the latest debian changelog, if  any,  into
                       the  commit message. This overrides the environment
                       variable CVSDEB_USE_CHANGELOG

   -M<module>          The name of the CVS module. This argument overrides
                       the    settings   in   the   environment   variable
                       CVSDEB_MODULE.  There is  no  corresponding  config
                       file variable.

   -F                  There  are  two  things  CVS  may choke on symbolic
                       links and CVS directories in the source tree. Also,
                       there are times when one may not want to honour the
                       upstream .cvsignore files. Without this option, the
                       cvs-inject   program   shall  exit  with  an  error
                       message.  This  option  causes  cvs-inject  to  ask
                       whether  you want to delete the offending files. If
                       you answer y, it removes them and  continues;  else
                       it shall exit with an error message.  This argument
                       overrides the settings in the environment  variable
                       CVSDEB_FORCECLEAN,  which  in  turn  overrides  the
                       setting in the configuration file, conf_forceclean.

   -T<tag>             The CVS tag to use for  exporting  sources,  rather
                       than   constructing  one  from  the  version.  This
                       assumes you know what you are doing.

   -U<tag>             The CVS tag to use for  the  upstream  tag,  rather
                       than  constructing  one  from the upstream version.
                       This assumes you know what you are doing.

   -x<prefix>          The name of the default CVS prefix (that  is,  this
                       is   appended  to  CVSROOT  when  looking  for  the
                       repository).  This argument overrides the  settings
                       in the environment variable CVSDEB_PREFIX, which in
                       turn overrides the  setting  in  the  configuration
                       file, conf_prefix.

   -R<root directory>  Root  of  the original sources archive. If the cvs-
                       buildpackage  work  directory  is   set   anywhere,
                       (command   line,  configuration  file,  environment
                       variable), the root  directory  value  is  ignored,
                       since  we  only  need  the  root  directory  to set
                       defaults for  the  work  directory.  This  argument
                       overrides  the settings in the environment variable
                       CVSDEB_ROOTDIR, and the configuration file variable
                       conf_rootdir.     Please   note   that   the   cvs-
                       buildpackage work directory referred to here is the
                       scratch directory where this program works, not the
                       directory that the human uses  to  work  in.   This
                       should  probably not be a sub dir of CVSROOT, since
                       cvs shall refuse to export packages there, and  the
                       script shall fail.

   -W<work directory>  The full path name for the cvs-buildpackage working
                       directory.  Setting  this  variable  overrides  the
                       settings  for  the  root  directory.  This argument
                       also overrides  the  settings  in  the  environment
                       variable  CVSDEB_WORKDIR,  and in the configuration
                       file variable conf_workdir..  Please note that  the
                       cvs-buildpackage work directory referred to here is
                       the scratch directory where this program works, not
                       the  directory  that the human uses to work in, and
                       needs to be the full (absolute)  path  name.   This
                       should  probably not be a sub dir of CVSROOT, since
                       cvs shall refuse to export packages there, and  the
                       script     shall     fail.     The    default    is
                       /usr/local/src/Packages/

   -d<number>          Turn on debugging output. This  lists  the  version
                       numbers,   the   cvs-buildpackage   work  and  root
                       directories, as well as the CVS tag used to  export
                       the  sources. This over-rides the DEBUG variable in
                       the configuration file.

   -ctp                Include package_ at the start of the CVS tag.  This
                       overrides   the   CVSDEB_PACKAGEINTAG   environment
                       variable and the conf_forcetag  configuration  file
                       option.  The default is not to include the prefix.

   -n                  The no exec (or dry-run) option, causing cvs-inject
                       to print  out  all  actions  that  would  be  taken
                       without actually executing them..

   -v                  Make the utility more verbose.

   CVSDEB_IMPORTSUBSTMODE
                       You  are  also  allowed  to  specify an environment
                       variable,  CVSDEB_IMPORTSUBSTMODE,  that  overrides
                       the  default  substitution  option of -ko.  This is
                       useful when you want to import a package that has a
                       bunch  of  binary  files  in  the source tree (like
                       emacs or rscheme).

FILES

   Apart from the runtime options, cvs-inject  also  looks  for  site-wide
   defaults  in  the  file /etc/cvsdeb.conf.  After that, it looks for and
   reads ~/.cvsdeb.conf The default configuration allows  there  to  be  a
   site  wide  override  for  the  root  or  the  cvs-buildpackage working
   directories on the site, but the cvsdeb.conf files are actually  Bourne
   shell  snippets,  and  any  legal  shell  directives may be included in
   there.  Note: Caution is urged with this file, since  you  can  totally
   change the way that the script behaves by suitable editing this file.

SEE ALSO

   cvs-buildpackage(1), cvs-upgrade(1), cvsdeb.conf(5), cvs(1).

AUTHOR

   This  manual  page  was written Manoj Srivastava <srivasta@debian.org>,
   for the Debian GNU/Linux system.




Free and Open Source Software


Free Software Video

Useful Programs

Free Online Courses

Open Opportunity

Open Business