From: Akim Demaille <demaille@gostai.com>
Date: Thu, 26 Mar 2009 22:14:45 +0000 (+0100)
Subject: doc: update README-hacking.
X-Git-Tag: v2.4.1a~66
X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/6469c4d72b031e3dccce7051db812bd03208bd85

doc: update README-hacking.

	* README-hacking: We now use git and git submodules.
	Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
---

diff --git a/ChangeLog b/ChangeLog
index 2713a500..c163347d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-03-26  Akim Demaille  <demaille@gostai.com>
+
+	doc: update README-hacking.
+	* README-hacking: We now use git and git submodules.
+	Reported by Ralf Wildenhues and Alexandre Duret-Lutz.
+
 2009-03-26  Akim Demaille  <demaille@gostai.com>
 
 	lalr1.cc: avoid GCC 4.3 warnings.
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
diff --git a/THANKS b/THANKS
index d7addddd..4c847f52 100644
--- a/THANKS
+++ b/THANKS
@@ -75,6 +75,7 @@ Piotr Gackiewicz          gacek@intertel.com.pl
 Quoc Peyrot               chojin@lrde.epita.fr
 R Blake                   blakers@mac.com
 Raja R Harinath           harinath@cs.umn.edu
+Ralf Wildenhues           Ralf.Wildenhues@gmx.de
 Richard Stallman          rms@gnu.org
 Robert Anisko             anisko_r@epita.fr
 Satya Kiran Popuri        satyakiran@gmail.com