How to commit code to the books using pull requests
This guide is written for contributors who will probably only commit to the repository a few times a year. If you find yourself committing more often, you should see github-commit-code-using-push.
A nice result of using pull requests is that all changes will be peer-reviewed before being committed. Also, we sometimes call this method the Fork and Pull method.git clone https://github.com/<your-github-username>/acl2 cd acl2
git remote add upstream https://github.com/acl2/acl2
The following commands will update your local repository to match the latest contents of the ACL2 Community github repository (on the web).
git fetch --all git merge remotes/upstream/master
git fetch --all git merge remotes/upstream/master
(time nice make LISP=<your_lisp>) >& make.log
git add file1 file2 ...Also, consider adding some high-level information about your changes to the Community Books' release notes — i.e., the appropriate release-notes-books XDOC topic in
(time nice make -j 8 regression-fresh) >& make-regression.logNote that the
fgrep -a '**' make-regression.log
(time nice make -j 8 regression) >& make-regression-finish-1.log
Update again as in (B) above:
git fetch --all git merge remotes/upstream/master
The merge may fail if there have been remote updates, that is updates in the repository on the web. In that case, commit your changes locally and then try the merge again. You might want to use the
-F option instead of-m ; see the next section for more on those options.git commit -a -m '<some message, with descriptive first line>' git merge remotes/upstream/masterIf the second command (the
git merge ) prompts you for a message, the empty message should suffice as a reasonable default (in emacs — if vi tries to come up, just type:q and<RETURN> .
You can now go on to the next step (Contribute Your Changes). But ideally: If the output indicates that anything has changed, then go back to ``Change and Test'' above. Of course, you can skip the build if no ACL2 sources have changed, and you can skip making book changes if you are still happy with your changes.
The following commands will update your github repository on the web. The
git commit -a -m '<some message, with descriptive first line>' git pushYou now need to create a pull request, where you request that changes from your github repository be accepted into the Community ACL2 repository. To achieve this: