[SR-Dev] [Serdev] [jan at iptel.org: Re: git repository online]
andrei at iptel.org
Wed Nov 19 20:25:28 CET 2008
> Here is some more information on the git repository:
> Synchronization with SER CVS
> The repository git.sip-router.org/ser is pulls commits from the SER CVS
> repository automatically. The synchronization works one-way only, changes
> commited to the SER CVS are automatically imported into the Git repository,
> but not vice versa. In other words if you want to commit something in the
> SER CVS repository then you have to do it manually, git won't help you here.
To push changes I've done in the git ser repo to ser cvs I use:
git log --pretty=oneline # to get the commit id I want to "export"
git cvsexportcommit -c -p -w ~/ser.cvs/ -v <commitid>
e.g.: git cvsexportcommit -c -p -w ~/ser.cvs/ -v <commitid> a9d929f558a6a620034fac8aa06c503b72c30fd8
in ~/ser.cvs I have an up-to-date checkout of ser from berlios cvs with
the following small change:
cd ~/ser.cvs; rm ser;
ln -s . ser
I need this because in the git repo ser is under the ser subdir, while
in cvs it's in the "root" dir (or at least this is the way I checkout
Another way to do it is to generate patches in git (e.g.
git format-patch <comitid>) and the apply it manually on cvs, but this
requires also a copy-paste for the commit message.
> Clone the repository:
> $ git clone git://git.sip-router.org/ser
> and display the list of branches in the cloned repository:
> $ git branch -a
> Several of the branches above are automatically updated from CVS, namely
> origin/cvs-head receives cvs commits to HEAD and origin/rel_2_0_0
> receives commits to the branch rel_2_0_0 in CVS, and so on.
> These branches will be updated with latest commits from the CVS repository
> every time you do:
> $ git pull
> Note that after the steps described above you have the whole CVS commit history
> of SER on your local machine, starting with day 1 until today, and including
> all branches from the CVS repository. This is convenient because you can
> work with the history offline and pretty much all common operations are
> blazingly fast because they only work with local files.
Note also that you can push changes only to branches starting with tmp/
, with your <your_username>/ or master (which is unused).
The cvs sync branches are read-only,
More information about the sr-dev