diff --git a/doc/savannah.txt b/doc/savannah.txt index 409905b1..d7d19eb6 100644 --- a/doc/savannah.txt +++ b/doc/savannah.txt @@ -2,37 +2,34 @@ Daily Use Guide for using Savannah for lwIP Table of Contents: -1 - Obtaining lwIP from the CVS repository -2 - Committers/developers CVS access using SSH (to be written) -3 - Merging from DEVEL branch to main trunk (stable branch) +1 - Obtaining lwIP from the Git repository +2 - Committers/developers Git access using SSH +3 - Merging a development branch to master branch 4 - How to release lwIP -1 Obtaining lwIP from the CVS repository +1 Obtaining lwIP from the Git repository ---------------------------------------- -To perform an anonymous CVS checkout of the main trunk (this is where +To perform an anonymous Git clone of the master branch (this is where bug fixes and incremental enhancements occur), do this: + git clone git://git.savannah.nongnu.org/lwip.git -cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout lwip - Or, obtain a stable branch (updated with bug fixes only) as follows: -cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ - -r STABLE-0_7 -d lwip-0.7 lwip + git clone --branch DEVEL-1_4_1 git://git.savannah.nongnu.org/lwip.git Or, obtain a specific (fixed) release as follows: -cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ - -r STABLE-0_7_0 -d lwip-0.7.0 lwip + git clone --branch STABLE-1_4_1 git://git.savannah.nongnu.org/lwip.git -3 Committers/developers CVS access using SSH + +2 Committers/developers Git access using SSH -------------------------------------------- The Savannah server uses SSH (Secure Shell) protocol 2 authentication and encryption. -As such, CVS commits to the server occur through a SSH tunnel for project members. +As such, Git commits to the server occur through a SSH tunnel for project members. To create a SSH2 key pair in UNIX-like environments, do this: - -ssh-keygen -t dsa + ssh-keygen -t dsa Under Windows, a recommended SSH client is "PuTTY", freely available with good documentation and a graphic user interface. Use its key generator. @@ -41,95 +38,83 @@ Now paste the id_dsa.pub contents into your Savannah account public key list. Wa a while so that Savannah can update its configuration (This can take minutes). Try to login using SSH: - -ssh -v your_login@cvs.sv.gnu.org + ssh -v your_login@git.sv.gnu.org If it tells you: + Linux vcs.savannah.gnu.org 2.6.32-5-xen-686 #1 SMP Wed Jun 17 17:10:03 UTC 2015 i686 -Authenticating with public key "your_key_name"... -Server refused to allocate pty + Interactive shell login is not possible for security reasons. + VCS commands are allowed. + Last login: Tue May 15 23:10:12 2012 from 82.245.102.129 + You tried to execute: + Sorry, you are not allowed to execute that command. + Shared connection to git.sv.gnu.org closed. then you could login; Savannah refuses to give you a shell - which is OK, as we -are allowed to use SSH for CVS only. Now, you should be able to do this: +are allowed to use SSH for Git only. Now, you should be able to do this: + git clone your_login@git.sv.gnu.org:/srv/git/lwip.git -export CVS_RSH=ssh -cvs -z3 -d:ext:your_login@cvs.sv.gnu.org:/sources/lwip co lwip - -after which you can edit your local files with bug fixes or new features and -commit them. Make sure you know what you are doing when using CVS to make +After which you can edit your local files with bug fixes or new features and +commit them. Make sure you know what you are doing when using Git to make changes on the repository. If in doubt, ask on the lwip-members mailing list. (If SSH asks about authenticity of the host, you can check the key - fingerprint against http://savannah.nongnu.org/cvs/?group=lwip) +fingerprint against https://savannah.nongnu.org/git/?group=lwip -3 Merging from DEVEL branch to main trunk (stable) --------------------------------------------------- +3 - Merging a development branch to master branch +------------------------------------------------- -Merging is a delicate process in CVS and requires the -following disciplined steps in order to prevent conflicts -in the future. Conflicts can be hard to solve! +Merging is a straightforward process in Git. How to merge all changes in a +development branch since our last merge from main: -Merging from branch A to branch B requires that the A branch -has a tag indicating the previous merger. This tag is called -'merged_from_A_to_B'. After merging, the tag is moved in the -A branch to remember this merger for future merge actions. +Checkout the master branch: + git checkout master -IMPORTANT: AFTER COMMITTING A SUCCESFUL MERGE IN THE -REPOSITORY, THE TAG MUST BE SET ON THE SOURCE BRANCH OF THE -MERGE ACTION (REPLACING EXISTING TAGS WITH THE SAME NAME). +Merge the development branch to master: + git merge your-development-branch -Merge all changes in DEVEL since our last merge to main: +Resolve any conflict. -In the working copy of the main trunk: -cvs update -P -jmerged_from_DEVEL_to_main -jDEVEL +Commit the merge result. + git commit -a -(This will apply the changes between 'merged_from_DEVEL_to_main' -and 'DEVEL' to your work set of files) +Push your commits: + git push -We can now commit the merge result. -cvs commit -R -m "Merged from DEVEL to main." - -If this worked out OK, we now move the tag in the DEVEL branch -to this merge point, so we can use this point for future merges: - -cvs rtag -F -r DEVEL merged_from_DEVEL_to_main lwip 4 How to release lwIP --------------------- -First, checkout a clean copy of the branch to be released. Tag this set with -tag name "STABLE-0_6_3". (I use release number 0.6.3 throughout this example). +First, tag the release using Git: (I use release number 1.4.1 throughout +this example). + git tag -a STABLE-1_4_1 -Login CVS using pserver authentication, then export a clean copy of the -tagged tree. Export is similar to a checkout, except that the CVS metadata -is not created locally. +Share the tag reference by pushing it to remote: + git push origin STABLE-1_4_1 -export CVS_RSH=ssh -cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ - -r STABLE-0_6_3 -d lwip-0.6.3 lwip +Prepare the release: + cp -r lwip lwip-1.4.1 + rm -rf lwip-1.4.1/.git lwip-1.4.1/.gitattributes -Archive this directory using tar, gzip'd, bzip2'd and zip'd. - -tar czvf lwip-0.6.3.tar.gz lwip-0.6.3 -tar cjvf lwip-0.6.3.tar.bz2 lwip-0.6.3 -zip -r lwip-0.6.3.zip lwip-0.6.3 +Archive the current directory using tar, gzip'd, bzip2'd and zip'd. + tar czvf lwip-1.4.1.tar.gz lwip-1.4.1 + tar cjvf lwip-1.4.1.tar.bz2 lwip-1.4.1 + zip -r lwip-1.4.1.zip lwip-1.4.1 Now, sign the archives with a detached GPG binary signature as follows: - -gpg -b lwip-0.6.3.tar.gz -gpg -b lwip-0.6.3.tar.bz2 -gpg -b lwip-0.6.3.zip + gpg -b lwip-1.4.1.tar.gz + gpg -b lwip-1.4.1.tar.bz2 + gpg -b lwip-1.4.1.zip Upload these files using anonymous FTP: -ncftp ftp://savannah.gnu.org/incoming/savannah/lwip - -ncftp>mput *0.6.3.* + ncftp ftp://savannah.gnu.org/incoming/savannah/lwip + ncftp> mput *1.4.1.* Additionally, you may post a news item on Savannah, like this: -A new 0.6.3 release is now available here: -http://savannah.nongnu.org/files/?group=lwip&highlight=0.6.3 +A new 1.4.1 release is now available here: +http://savannah.nongnu.org/files/?group=lwip&highlight=1.4.1 You will have to submit this via the user News interface, then approve -this via the Administrator News interface. \ No newline at end of file +this via the Administrator News interface.