.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "KGB-CLIENT 1p" .TH KGB-CLIENT 1p "2019-01-03" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" kgb\-client \- relay commits to KGB servers .SH "SYNOPSIS" .IX Header "SYNOPSIS" .IP "\fBkgb-client\fR \-\-conf \fI/path/to/config\fR [\fIother-option\fR ...]" 4 .IX Item "kgb-client --conf /path/to/config [other-option ...]" .PD 0 .IP "\fBkgb-client\fR \-\-uri \fIhttp://some.server:port/service\fR \-\-password \fIpassword\fR \-\-repo\-id \fIrepository\fR \-\-repository \fIsvn|git|cvs\fR \-\-timeout \fItimeout-in-seconds\fR \-\-single\-line\-commits \fIoff|forced|auto\fR \-\-use\-irc\-notices \-\-web\-link \fItemplate\fR \-\-short\-url\-service \fIservice\fR \-\-status\-dir \fIdirectory\fR \-\-[no]\-use\-color \-\-message\-template \fItemplate\fR \-\-batch\-messages \-\-dry\-run" 4 .IX Item "kgb-client --uri http://some.server:port/service --password password --repo-id repository --repository svn|git|cvs --timeout timeout-in-seconds --single-line-commits off|forced|auto --use-irc-notices --web-link template --short-url-service service --status-dir directory --[no]-use-color --message-template template --batch-messages --dry-run" .IP "\fBkgb-client\fR \fIoption\fR... \fI/svn/repo\fR \fIrevision\fR" 4 .IX Item "kgb-client option... /svn/repo revision" .IP "\fBkgb-client\fR \fIoption\fR... \fIold-rev\fR \fInew-rev\fR \fIref-name\fR" 4 .IX Item "kgb-client option... old-rev new-rev ref-name" .ie n .IP "\fBkgb-client\fR \fIoption\fR... $CVSROOT ""%p""" 4 .el .IP "\fBkgb-client\fR \fIoption\fR... \f(CW$CVSROOT\fR ``%p''" 4 .IX Item "kgb-client option... $CVSROOT %p" .IP "\fBkgb-client\fR \fIoption\fR... \-\-fake" 4 .IX Item "kgb-client option... --fake" .IP "\fBkgb-client\fR \fIoption\fR... \-\-relay\-msg \fImessage\fR..." 4 .IX Item "kgb-client option... --relay-msg message..." .IP "\fBkgb-client\fR \-\-help" 4 .IX Item "kgb-client --help" .IP "\fBkgb-client\fR \-\-man" 4 .IX Item "kgb-client --man" .PD .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBkgb-client\fR is the client counterpart of \fBkgb\-bot\fR\|(1). It is intended to be used as a hook in your version control system, executed after the repository gets updated. It analyzes the commit(s) and then relays the information to the \&\s-1KGB\s0 server, which will show it on \s-1IRC.\s0 .SH "CONFIGURATION" .IX Header "CONFIGURATION" .IP "\fB\-\-conf\fR \fIconfiguration file\fR" 4 .IX Item "--conf configuration file" Specifies the path to kgb-client configuration file. .PP Configuration options (except \fB\-\-conf\fR, \fB\-\-fake\fR and \fB\-\-relay\-msg\fR) may be specified both in the configuration file and on the command line. Usually you want to have all the options in a configuration file, because having passwords on the command line is insecure. The configuration file also gives more control, for example it supports multiple servers and multiple ways of detection of branch and module names. .PP See \fBkgb\-client.conf\fR\|(5) for available configuration options. Unless noted otherwise, all the options in the configuration file can also be used on command line, prefixing them with two dashes. E.g. \f(CW\*(C`repo\-id\*(C'\fR becomes \&\f(CW\*(C`\-\-repo\-id\*(C'\fR. .PP Options given on the command line take precedence over configuration file. .SH "FAKE COMMIT MODE" .IX Header "FAKE COMMIT MODE" If invoked with the \fB\-\-fake\fR option, \fBkgb-client\fR will send a fake commit to the servers. This is useful for testing client-server communication independently from \s-1VCS\s0 setup. .SH "MESSAGE RELAY MODE" .IX Header "MESSAGE RELAY MODE" When the \fB\-\-relay\-msg\fR option is given, there is no repository to be inspected. Instead, the non-option command line arguments are passed verbatim to the bot to display on \s-1IRC.\s0 This can be used for real-time notification about other events like bug submissions etc. .SH "SUPPORTED VERSION CONTROL SYSTEMS" .IX Header "SUPPORTED VERSION CONTROL SYSTEMS" .SS "Subversion" .IX Subsection "Subversion" Installation requires calling \fBkgb-client\fR with two command line arguments, like this: .PP .Vb 1 \& /path/to/kgb\-client "$REPOS" "$REV" .Ve .IP "\fIpath to the subversion repository\fR" 4 .IX Item "path to the subversion repository" This is the physical path to the Subversion repository. Something like \fI/srv/svn/my\-repo\fR .IP "\fIrevision\fR" 4 .IX Item "revision" This is the revision number of the commit, that has triggered the hook. .PP Both these arguments are supplied to the standard Subversion post-commit hooks. .SS "Git" .IX Subsection "Git" \&\fBkgb-client\fR shall be installed as a \fBpost-receive\fR hook. Something along the following shall do: .PP .Vb 2 \& #!/bin/sh \& exec /path/to/kgb\-client \-\-conf /path/to.conf ... .Ve .PP By default, \fBkgb-client\fR will read the reflog information from standard input as any standard Git post-receive hook. See \fB\-\-git\-reflog\fR option if something else is wanted. .PP There are other ways to give kgb-client information about Git reflog, mostly useful when debugging on in unusual situations. See App::KGB::Client::Git. .PP The following settings can be configured via \fBgit\-config\fR\|(1): .IP "conf" 4 .IX Item "conf" .PD 0 .IP "web-link" 4 .IX Item "web-link" .PD .SS "\s-1CVS\s0" .IX Subsection "CVS" \&\fBkgb-client\fR shall be installed in the \fIloginfo\fR file in the \f(CW\*(C`CVSROOT\*(C'\fR module of the \s-1CVS\s0 repository. It shall be given two arguments \*(-- the repository root, and the directory in which the changes are being made. .PP For example: .PP .Vb 1 \& ALL /path/to/kgb\-client \-\-conf /path/to.conf ... "$CVSROOT" "%p" .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "\fBkgb\-client.conf\fR\|(5)" 4 .IX Item "kgb-client.conf" .PD 0 .IP "App::KGB::Client" 4 .IX Item "App::KGB::Client" .IP "App::KGB::Client::Subversion" 4 .IX Item "App::KGB::Client::Subversion" .IP "App::KGB::Client::Git" 4 .IX Item "App::KGB::Client::Git" .IP "App::KGB::Client::CVS" 4 .IX Item "App::KGB::Client::CVS"