Difference between revisions of "Elphel on SourceForge"
(→How to contribute to Elphel CVS) |
(→How to contribute to Elphel CVS) |
||
Line 30: | Line 30: | ||
− | The goal is to overcome the need to | + | The goal is to overcome the need to freeze the official Elphel CVS at some times |
− | (to issue stable releases), without having to resolve unexpected third | + | (to issue stable releases), without having to resolve unexpected third party import |
related conflicts first. | related conflicts first. | ||
Line 42: | Line 42: | ||
possible, after validation. | possible, after validation. | ||
+ | |||
+ | |||
Line 65: | Line 67: | ||
cd elphel353-7.1-community && cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity udpate | cd elphel353-7.1-community && cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity udpate | ||
+ | |||
=='''Add files or directories to the repository:'''== | =='''Add files or directories to the repository:'''== | ||
+ | * 1 - add the new files to the CVS, remove old ones that are not replaced, if any (don't need to commit changes yet, but if you do - update first) | ||
+ | * 2 - edit src.list to add those new files, comment out the old unneeded ones with '#', files in the same level should go in alphabetical order. Run ./diff_srclist_cvs script in the top directory, make sure it comes out with empty output | ||
+ | * 3 - modify Makefile in your installation directory so it will install the new files (and do not install old ones if you removed them!) | ||
+ | * 4 - in the case you added the new subdirectory with it's own Makefile that needs to run during build - edit subdirs.list and add you directory. Usually the new directories are added the very end (if none other depend on them) | ||
+ | * 5 - currently there is no automatic way to verify that Makefile will not try to use non-existent (in src.list, CVS) files, so it would be nice if you run top make now, generate source archive and install it in the new directory, making sure 'make' is happy and was able to find everything it needed. If you got any problems at this stage and do not have immediate solution - just remove this directory from the subdirs.list until the issue is resolved. If you do this and if the ./diff_srclist_cvs output is empty - it is safe to commit changes to the CVS without breaking installation. | ||
+ | * 6 - update from the CVS first before making any commits. You can use "make update" command from the top directory | ||
+ | * 7 - commit all the changes made to the CVS (add/remove files, modified src.list, Makefile(s)), provide descriptive commit messag | ||
+ | |||
− | |||
− | |||
− | |||
cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity add <file> -m "description" | cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity add <file> -m "description" | ||
Line 98: | Line 106: | ||
− | '''Technical details (for Elphel | + | '''Technical details (for Elphel stuff) about repository setup and update:''' |
Revision as of 10:30, 23 January 2009
Contents
Releases description on Elphel's SourceForge project
The SourceForge official project - http://sourceforge.net/projects/elphel
Elphel NC353L 7.1 firmwares and sources releases
- image353-x.x.x.x.tar.gz are binary firmware images ready to flash into NC353L-based models.
- elphel353-x.x.x.x.tar.gz are firmware sources for particular release version.
Elphel rtp_receiver (Only sources are available)
- 5MPx support contain :
- common-1.2.16 a patched version of UCL Common Code Library used in both ElphelOgm & ElphelSrv
- ElphelOgm-1.0 the last version of ElphelOgm rtp receiver.
- Obsolete versions of ElphelSrv packages, please take the last one from upper level.
- ElphelSrv-0.6
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 freeze the official Elphel CVS at some times
(to issue stable releases), without having to resolve unexpected third party 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
Add files or directories to the repository:
- 1 - add the new files to the CVS, remove old ones that are not replaced, if any (don't need to commit changes yet, but if you do - update first)
- 2 - edit src.list to add those new files, comment out the old unneeded ones with '#', files in the same level should go in alphabetical order. Run ./diff_srclist_cvs script in the top directory, make sure it comes out with empty output
- 3 - modify Makefile in your installation directory so it will install the new files (and do not install old ones if you removed them!)
- 4 - in the case you added the new subdirectory with it's own Makefile that needs to run during build - edit subdirs.list and add you directory. Usually the new directories are added the very end (if none other depend on them)
- 5 - currently there is no automatic way to verify that Makefile will not try to use non-existent (in src.list, CVS) files, so it would be nice if you run top make now, generate source archive and install it in the new directory, making sure 'make' is happy and was able to find everything it needed. If you got any problems at this stage and do not have immediate solution - just remove this directory from the subdirs.list until the issue is resolved. If you do this and if the ./diff_srclist_cvs output is empty - it is safe to commit changes to the CVS without breaking installation.
- 6 - update from the CVS first before making any commits. You can use "make update" command from the top directory
- 7 - commit all the changes made to the CVS (add/remove files, modified src.list, Makefile(s)), provide descriptive commit messag
cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity add <file> -m "description"
Upload your local changes:
cd elphel353-7.1-community && cvs -z3 -d:ext:USER@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit -m "descritpion"
Related links:
checkout--Checkout sources for editing
update--Bring work tree in sync with repository
add--Adding removing and renaming files and directories
diff--Show differences between revisions
commit--Check files into the repository
Technical details (for Elphel stuff) about repository setup and update:
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.
The current directory name is not important and it is not necessary to rename
the directory using the name of the branch, but i did it to clarify (hope it does).
#!/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.1-community ELPHEL353_DIST ELPHEL353_7_1_CVS_$DATE cd ../.. rm tmp.cvs.$$ -rf
Related links:
Updating with the import command
Other possibility for updating the elphel-community cvs with the elphel cvs
# (Untested procedure) # For updating elphel-community, maybe we can also/must instead copy the community directory mkdir tmp.cvs.$$ cd tmp.cvs.$$ cvs -z3 -d:pserver:anonymous@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity co -P elphel353-7.1-community cd elphel353-7.1-community # then update from the official cvs with: if ! cvs -z3 -d:pserver:anonymous@elphel.cvs.sourceforge.net:/cvsroot/elphel update ; then # resolve conflicts manually exit /bin/sh fi # and commit changes cvs -z3 -d:ext:$USERNAME@elphelcommunity.cvs.sourceforge.net:/cvsroot/elphelcommunity commit cd ../.. rm tmp.cvs.$$ -rf
External links about CVS
CVS--Concurrent Versions System
CVS - Version Control for Source Code