| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 | 
							- 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)
 
- 4 - How to release lwIP
 
- 1 Obtaining lwIP from the CVS repository
 
- ----------------------------------------
 
- To perform an anonymous CVS checkout of the main trunk (this is where
 
- bug fixes and incremental enhancements occur), do this:
 
- 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
 
- 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
 
- 3 Committers/developers CVS 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.
 
- To create a SSH2 key pair in UNIX-like environments, do this:
 
- 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.
 
- Now paste the id_dsa.pub contents into your Savannah account public key list. Wait
 
- 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
 
- If it tells you:
 
- Authenticating with public key "your_key_name"...
 
- Server refused to allocate pty
 
- 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:
 
- 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
 
- 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)
 
- 3 Merging from DEVEL branch to main trunk (stable)
 
- --------------------------------------------------
 
- 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 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.
 
- 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 all changes in DEVEL since our last merge to main:
 
- In the working copy of the main trunk:
 
- cvs update -P -jmerged_from_DEVEL_to_main -jDEVEL 
 
- (This will apply the changes between 'merged_from_DEVEL_to_main'
 
- and 'DEVEL' to your work set of files)
 
- 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).
 
- 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. 
 
- 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
 
- 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
 
- 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
 
- Upload these files using anonymous FTP:
 
- ncftp ftp://savannah.gnu.org/incoming/savannah/lwip
 
- ncftp>mput *0.6.3.*
 
- 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
 
- You will have to submit this via the user News interface, then approve
 
- this via the Administrator News interface.
 
 
  |