Mercurial > gnulib
changeset 12977:a8f8215a262d
gnulib-tool.texi: mention possibility of git submodule
* doc/gnulib-tool.texi (VCS Issues): Add details about using git
submodules.
* doc/.gitignore: Ignore another generated file.
Signed-off-by: Eric Blake <eblake@redhat.com>
author | Eric Blake <eblake@redhat.com> |
---|---|
date | Mon, 08 Mar 2010 14:26:11 -0700 |
parents | 85ed9679cfa7 |
children | b7726f620298 |
files | ChangeLog doc/.gitignore doc/gnulib-tool.texi |
diffstat | 3 files changed, 42 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Mon Mar 08 09:21:57 2010 -0800 +++ b/ChangeLog Mon Mar 08 14:26:11 2010 -0700 @@ -1,3 +1,10 @@ +2010-03-08 Eric Blake <eblake@redhat.com> + + gnulib-tool.texi: mention possibility of git submodule + * doc/gnulib-tool.texi (VCS Issues): Add details about using git + submodules. + * doc/.gitignore: Ignore another generated file. + 2010-03-08 Karl Berry <karl@gnu.org> * doc/gnulib-tool.texi (VCS Issues): Mention third option
--- a/doc/.gitignore Mon Mar 08 09:21:57 2010 -0800 +++ b/doc/.gitignore Mon Mar 08 14:26:11 2010 -0700 @@ -14,4 +14,5 @@ gnulib.info-2 gnulib.info-3 gnulib.html +gnulib.pdf updated-stamp
--- a/doc/gnulib-tool.texi Mon Mar 08 09:21:57 2010 -0800 +++ b/doc/gnulib-tool.texi Mon Mar 08 14:26:11 2010 -0700 @@ -578,7 +578,7 @@ are added into the VCS. The only file that must be added to the VCS is @file{gnulib-cache.m4} in the M4 macros directory. Also, the script for restoring files not in the VCS, customarily called -@file{autogen.sh} or @file{bootstrap.sh}, will typically contain the +@file{autogen.sh} or @file{bootstrap}, will typically contain the statement for restoring the omitted files: @smallexample @@ -590,6 +590,39 @@ Also it does not report in the ChangeLogs the files that it had to add because they were missing. +Gnulib includes the file @file{build-aux/bootstrap} to aid a developer +in using this setup. Furthermore, in projects that use git for +version control, it is possible to use a git submodule containing the +precise commit of the gnulib repository, so that each developer +running @file{bootstrap} will get the same version of all +gnulib-provided files. The location of the submodule can be chosen to +fit the package's needs; here's how to initially create the submodule +in the directory @file{.gnulib}: + +@smallexample +$ dir=.gnulib +$ git submodule add -- git://git.sv.gnu.org/gnulib.git $dir +$ git config alias.syncsub "submodule foreach git pull origin master" +@end smallexample + +@noindent +Thereafter, @file{bootstrap} can run this command to update the +submodule to the recorded checkout level: + +@smallexample +git submodule update --init $dir +@end smallexample + +@noindent +and a developer can use this sequence to update to a newer version of +gnulib: + +@smallexample +$ git syncsub +$ git add $dir +$ ./bootstrap +@end smallexample + @item Some projects take a ``middle road'': they do commit Gnulib source files as in the first approach, but they do not commit other derived