[SR-Dev] [Serdev] [jan at iptel.org: Re: git repository online]

Andrei Pelinescu-Onciul 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
 it).


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
> 
>    origin/HEAD
>    origin/MAIN
>    origin/Maintainer
>    origin/andrei_cvs-head
>    origin/cancel_fix
>    origin/cvs-head
>    origin/janakj
>    origin/jj/cvshead
>    origin/jj/doxygen
>    origin/master
>    origin/rel_0_8_11
>    origin/rel_0_8_12
>    origin/rel_0_8_14
>    origin/rel_0_9_0
>    origin/rel_2_0_0
>    origin/rel_janakj
>    origin/start
>    origin/testing_0_8_12
>    origin/vendor
> 
> 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,

Andrei

[...]



More information about the sr-dev mailing list