So.. you've been trying out different branches of the cinelerra via the git repository, and you've decided you want to contribute?!! Awesome!
Now, on your home personal computer. If this is the first time that you are using git, then perform:
git clone ssh://USERNAME@git.pipapo.org/git/cinelerra/svn
For anonymous checkout use:
git clone git://git.pipapo.org/cinelerra/svn cinelerra-svn
this will make a directory called cinelerra-svn.
mkdir /mybuild/cinelerra/ cd /mybuild/cinelerra git clone git://git.pipapo.org/cinelerra/svn pipapo.org
now you have it checked out into /mybuild/cinelerra/pipapo.org
Now it is good to keep this directory clean. So to build I suggest:
cd pipapo.org ./autogen.sh
this will make the configure script and a number of files, (Makefile.in, and some others...).
Make a version of cinelerra that has debug symbols to use with gdb (and kdbg)
mkdir ../mydbg/ cd ../mydbg/ cat > cinconf.sh << EOF #!/bin/bash ../pipapo.org/configure CXXFLAGS='-O0 -g' CFLAGS='-O0 -g' --prefix=/usr --with-buildinfo=git/recompile cd ../pipapo.org/quicktime/ffmpeg/ make CFLAGS='-O3' cd ../../ EOF chmod +x cinconf.sh ./cinconf.sh make
The ffmpeg directory needs to be compiled with optimisation for some architectures to avoid compilation errors. Debug symbols are mostly desired for the cinelerra code anyhow, so this isn't a big issue.
Make a version of cinelerra that you use for real world activities:
mkdir ../forreal/
cd ../forreal/
cat > cinconf.sh << EOF
#!/bin/bash
GENOPTFLAGS=-O3 -pipe -fomit-frame-pointer -fprefetch-loop-arrays -funroll-loops -minline-all-stringops
THISCFLAGS=$GENOPTFLAGS -march=athlon-xp -mmmx -msse -mfpmath=sse,387 -ffast-math
../pipapo.org/configure --prefix=/usr --with-buildinfo=git/recompile \
--enable-x86 --enable-mmx --enable-freetype2 \
CFLAGS='$THISCFLAGS' CXXFLAGS='$THISCFLAGS -fno-check-new'
EOF
chmod +x cinconf.sh
./cinconf.sh
make
Now you have two directories that contain different builds of cinelerra that can be used with "sudo make install".. lets get onto editing the code!
To checkout the latest git, simply run:
git pull
First of all, you need to make a branch:
cd ../pipapo.org/
Add a branch and switch to it. When adding a branch, it will by default add the branch at the location in git that you are currently at.
git checkout -b BRANCH
To view the branch you are on. you can use the command "git branch". Once you have switched to the new branch, start making changes. I personally like to commit often, and break a desired objective into multiple steps, and make a commit for each step. To make a commit, its as simple as:
git commit -m 'INCREMENTTEXTDESCRIPTION' -- files..
Also, it is importaint to know what is going to be committed, by observing the output of "git status".
After having done a few commits, if you execute:
gitk --all
- you'll see a tree of your branches...
Now here's how to push.
You'll need to get an account on pipapo.org (ask cehteh on cinelerra's IRC channel, or maillist (his email address is ct@pipapo.org ). Once you have your account read Cinelerra/ServerSetup about how to setup your own repository.