summaryrefslogtreecommitdiff
path: root/README-hacking
diff options
context:
space:
mode:
authorAkim Demaille <demaille@gostai.com>2009-03-26 23:14:45 +0100
committerAkim Demaille <demaille@gostai.com>2009-03-27 07:27:07 +0100
commit81535bfa352e0a289a6b5448b37b53afb8542d79 (patch)
treede8944b15d23401af0a5413e9de8b1bd842dfc2d /README-hacking
parent56f772e95e0268d7dc4695450e8f65c22be9fbc2 (diff)
downloadbison-81535bfa352e0a289a6b5448b37b53afb8542d79.tar.gz
doc: update README-hacking.
* README-hacking: We now use git and git submodules. Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
Diffstat (limited to 'README-hacking')
-rw-r--r--README-hacking62
1 files changed, 55 insertions, 7 deletions
diff --git a/README-hacking b/README-hacking
index 1116a6c0..a63cabbd 100644
--- a/README-hacking
+++ b/README-hacking
@@ -39,31 +39,79 @@ Obviously, if you are reading these notes, you did manage to check out
this package from the repository. For the record, you will find all the
relevant information on:
- http://savannah.gnu.org/cvs/?group_id=56
+ http://savannah.gnu.org/git/?group=bison
+
+Bison uses Git submodules: subscriptions to other Git repositories.
+In particular it uses gnulib, the GNU portability library. To ask Git
+to perform the first checkout of the submodules, run
+
+ $ git submodule update --init
+
+Git submodule support is weak before versions 1.6 and later, you
+should probably upgrade Git if your version is older.
The next step is to get other files needed to build, which are
extracted from other source packages:
- $ ./bootstrap
+ $ ./bootstrap
And there you are! Just
- $ ./configure
- $ make
- $ make check
+ $ ./configure
+ $ make
+ $ make check
At this point, there should be no difference between your local copy,
and the master copy:
- $ cvs diff
+ $ git diff
should output no difference.
Enjoy!
+* Updating
+
+The use of submodules make things somewhat different because git does
+not support recursive operations: submodules must be taken care of
+explicitly by the user.
+
+** Updating Bison
+
+If you pull a newer version of a branch, say via `git pull', you might
+import requests for updated submodules. A simple `git diff' will
+reveal if the current version of the submodule (i.e., the actual
+contents of the gnulib directory) and the current request from the
+subscriber (i.e., the reference of the version of gnulib that the
+Bison reporitory requests) differ. To upgrade the submodules (i.e.,
+to check out the version that is actually requested by the subscriber,
+run `git submodule update'.
+
+ $ git pull
+ $ git submodule update
+
+** Updating a submodule
+To update a submodule, say gnulib, do as follows:
+
+Get the most recent version of the master branch from git.
+
+ $ cd gnulib
+ $ git fetch
+ $ git checkout -b master --track origin/master
+
+Make sure Bison can live with that version of gnulib.
+
+ $ cd ..
+ $ ./bootstrap
+ $ make distcheck
+
+Register your changes.
+
+ $ git checkin ...
+
-----
-Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009 Free Software
Foundation, Inc.
This program is free software: you can redistribute it and/or modify