Difference between revisions of "Elphel on SourceForge"

From ElphelWiki
Jump to: navigation, search
(How to contribute to Elphel CVS)
(External links about CVS)
Line 136: Line 136:
  
 
[http://alexandria.wiki.sourceforge.net/File+Release+System+-+Offering+Files+for+Download  File Release System - Offering Files for Download]
 
[http://alexandria.wiki.sourceforge.net/File+Release+System+-+Offering+Files+for+Download  File Release System - Offering Files for Download]
 +
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_13.html#SEC107  Tracking third-party sources]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_13.html#SEC108  Importing for the first time]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_13.html#SEC109  Updating with the import command]
 +
 +
[http://cvs-nserver.sourceforge.net/doc/stable/html_chapter/cvs_7.html#SEC69  Adding removing and renaming files and directories]

Revision as of 18:43, 15 August 2008

Releases description on Elphel's SourceForge project

Elphel on SourceForge CVS tree description

Actual "stable" tree for NC353L

First of all "stable" have "" because it's CVS, developers may upload code temporary breaking it's compilation or usability.

Under development tree

How to contribute to Elphel CVS

A dedicated sourceforge project has been started, "elphel-community",

for which anyone can obtain CVS access through sourceforge.


The goal is to overcome the need to froze the official Elphel CVS at some times

(to issue stable releases), without having to resolve unexpected third-parties import

related conflicts first.


Changes in the main elphel cvs branch will be incorporated in the community cvs branch,

and changes in the community version will be imported into the official cvs as much as

possible, after validation.


Because Sourceforge users have only limited Sourceforge CVS access, it is

not possible to recover cleanly from wrong CVS commands that create new directories.

You need to be sure twice before importing files or comitting changes, to avoid

blocking the cvs waiting for a sourceforge admin action.


TIP: You can always(?) check what's going to be made, running your cvs command with -d:pserver:...

instead of -d:ext:... so that write permission is rejected at the end of the command execution.


Checkout this branch:

cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity co -P elphel353-7.1-community


Update your local version:

cd elphel353-7.1-community && cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity udpate


Upload your changes:

cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit -m "descritpion"

Technical details:


The elphel-community cvs is copied from the elphel cvs with the following script

(assuming there is no more than one copy per day, else add the time in $DATE)


Note: Maybe the same script can be used to update the elphel-community CVS,

and the same procedure with the offical CVS, but it is untested.

Maybe it is not necessary to rename the directory using the name of the branch,

but i did not dare to test without it yet.


#!/bin/sh -e

DATE=`date +%Y%m%d`

USERNAME=$1
[ -z "$USERNAME" ] && USERNAME=$USER

rm tmp.cvs.* -rf 2>/dev/null || true
mkdir tmp.cvs.$$
cd tmp.cvs.$$

cvs -z3 -d:pserver:anonymous@elphel.cvs.sourceforge.net:/cvsroot/elphel co -P elphel353-7.1
mv elphel353-7.1 elphel353-7.1-community
cd elphel353-7.1-community

cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity import -m "Import of  elphel353-7.1-cvs-$DATE" elphel353-7.10-community ELPHEL353_DIST ELPHEL353_7_1_CVS_$DATE

cd ../..
rm tmp.cvs.$$ -rf



# (Untested procedure)
# For updating elphel-community, maybe we can also/must instead copy the community directory

mkdir tmp.cvs.$$
cd tmp.cvs.$$
cp -a ../elphel353-7.1-community  elphel353-7.1
cd elphel353-7.1
 
# then update from the official cvs with:
if ! cvs -z3 -d:pserver:anonymous@elphel.cvs.sourceforge.net:/cvsroot/elphel update ; then

# resolve conflicts with the shell in case of conflicts
   exit   
   /bin/sh

fi

# and rename the directory to '-community' before commiting change

cd ..
mv elphel353-7.1 elphel353-7.1-community
cd elphel353-7.1-community

cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit

cd ../..
rm tmp.cvs.$$

External links about CVS

CVS - Version Control for Source Code

Recommended User Software Configuration

File Release System - Offering Files for Download


Tracking third-party sources

Importing for the first time

Updating with the import command

Adding removing and renaming files and directories