documentation: savannah: updated for Git

This commit is contained in:
Sylvain Rochet 2015-09-22 21:52:44 +02:00
parent 2f40d19193
commit e588dfdbce

View File

@ -2,37 +2,34 @@ Daily Use Guide for using Savannah for lwIP
Table of Contents: Table of Contents:
1 - Obtaining lwIP from the CVS repository 1 - Obtaining lwIP from the Git repository
2 - Committers/developers CVS access using SSH (to be written) 2 - Committers/developers Git access using SSH
3 - Merging from DEVEL branch to main trunk (stable branch) 3 - Merging a development branch to master branch
4 - How to release lwIP 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: 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: Or, obtain a stable branch (updated with bug fixes only) as follows:
cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ git clone --branch DEVEL-1_4_1 git://git.savannah.nongnu.org/lwip.git
-r STABLE-0_7 -d lwip-0.7 lwip
Or, obtain a specific (fixed) release as follows: Or, obtain a specific (fixed) release as follows:
cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ git clone --branch STABLE-1_4_1 git://git.savannah.nongnu.org/lwip.git
-r STABLE-0_7_0 -d lwip-0.7.0 lwip
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. 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: 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 Under Windows, a recommended SSH client is "PuTTY", freely available with good
documentation and a graphic user interface. Use its key generator. 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). a while so that Savannah can update its configuration (This can take minutes).
Try to login using SSH: Try to login using SSH:
ssh -v your_login@git.sv.gnu.org
ssh -v your_login@cvs.sv.gnu.org
If it tells you: 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"... Interactive shell login is not possible for security reasons.
Server refused to allocate pty 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 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 After which you can edit your local files with bug fixes or new features and
cvs -z3 -d:ext:your_login@cvs.sv.gnu.org:/sources/lwip co lwip commit them. Make sure you know what you are doing when using Git 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 CVS to make
changes on the repository. If in doubt, ask on the lwip-members mailing list. 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 (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 Merging is a straightforward process in Git. How to merge all changes in a
following disciplined steps in order to prevent conflicts development branch since our last merge from main:
in the future. Conflicts can be hard to solve!
Merging from branch A to branch B requires that the A branch Checkout the master branch:
has a tag indicating the previous merger. This tag is called git checkout master
'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 Merge the development branch to master:
REPOSITORY, THE TAG MUST BE SET ON THE SOURCE BRANCH OF THE git merge your-development-branch
MERGE ACTION (REPLACING EXISTING TAGS WITH THE SAME NAME).
Merge all changes in DEVEL since our last merge to main: Resolve any conflict.
In the working copy of the main trunk: Commit the merge result.
cvs update -P -jmerged_from_DEVEL_to_main -jDEVEL git commit -a
(This will apply the changes between 'merged_from_DEVEL_to_main' Push your commits:
and 'DEVEL' to your work set of files) 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 4 How to release lwIP
--------------------- ---------------------
First, checkout a clean copy of the branch to be released. Tag this set with First, tag the release using Git: (I use release number 1.4.1 throughout
tag name "STABLE-0_6_3". (I use release number 0.6.3 throughout this example). this example).
git tag -a STABLE-1_4_1
Login CVS using pserver authentication, then export a clean copy of the Share the tag reference by pushing it to remote:
tagged tree. Export is similar to a checkout, except that the CVS metadata git push origin STABLE-1_4_1
is not created locally.
export CVS_RSH=ssh Prepare the release:
cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/lwip checkout \ cp -r lwip lwip-1.4.1
-r STABLE-0_6_3 -d lwip-0.6.3 lwip rm -rf lwip-1.4.1/.git lwip-1.4.1/.gitattributes
Archive this directory using tar, gzip'd, bzip2'd and zip'd. 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 czvf lwip-0.6.3.tar.gz lwip-0.6.3 tar cjvf lwip-1.4.1.tar.bz2 lwip-1.4.1
tar cjvf lwip-0.6.3.tar.bz2 lwip-0.6.3 zip -r lwip-1.4.1.zip lwip-1.4.1
zip -r lwip-0.6.3.zip lwip-0.6.3
Now, sign the archives with a detached GPG binary signature as follows: Now, sign the archives with a detached GPG binary signature as follows:
gpg -b lwip-1.4.1.tar.gz
gpg -b lwip-0.6.3.tar.gz gpg -b lwip-1.4.1.tar.bz2
gpg -b lwip-0.6.3.tar.bz2 gpg -b lwip-1.4.1.zip
gpg -b lwip-0.6.3.zip
Upload these files using anonymous FTP: Upload these files using anonymous FTP:
ncftp ftp://savannah.gnu.org/incoming/savannah/lwip ncftp ftp://savannah.gnu.org/incoming/savannah/lwip
ncftp> mput *1.4.1.*
ncftp>mput *0.6.3.*
Additionally, you may post a news item on Savannah, like this: Additionally, you may post a news item on Savannah, like this:
A new 0.6.3 release is now available here: A new 1.4.1 release is now available here:
http://savannah.nongnu.org/files/?group=lwip&highlight=0.6.3 http://savannah.nongnu.org/files/?group=lwip&highlight=1.4.1
You will have to submit this via the user News interface, then approve You will have to submit this via the user News interface, then approve
this via the Administrator News interface. this via the Administrator News interface.