git/list[1] front-page[2] threads[3] people[4] search[5] about
 

GIT-CVS sync script

From
PIPanagiotis Issaris <takis@lumumba.uhasselt.be>
Date
Jun 28, 2005, 19:14 UTC
Message-ID
<20050628191445.GA27979@lumumba.uhasselt.be>
Hi,

I find the included script useful to easily track a CVS repository in GIT. You can both call it for the initial import and ofcourse for the subsequent resynchronisation with the parent CVS repository (that's what the script's about).

Would it be better to provide this as a patch against git-cvsimport-script?
It has been tested on the RTAI-Fusion repository.

With friendly regards, Takis

Signed-off-by: Panagiotis Issaris <takis@gna.org>

#!/usr/bin/env bash # # Keep a GIT repository in sync with a CVS repository. # # Copyright (c) Panagiotis Issaris, 2005. #

CVS2GIT_PATCHSETNR=.cvs2git_patchsetnr CVS2GIT_UPGRADESCRIPT=.cvs2git_updatescript PROJECT_GITDIR=`pwd` PROJECT_CVSDIR=$1 CVSPS_OPTIONS="--no-rlog"

usage () {
        echo -e "Usage: \n\t$0 /path/to/project/cvsdir"
        exit 1
}

if test $# -lt 1 ; then usage else if test ! -d $PROJECT_CVSDIR; then usage fi fi

cd $PROJECT_CVSDIR
if test ! -d $PROJECT_GITDIR/.git; then

TZ=UTC cvsps $CVSPS_OPTIONS -A > $PROJECT_GITDIR/.git-cvsps-result git-cvs2git --cvsroot=`cat CVS/Root` --module=`cat CVS/Repository` < $PROJECT_GITDIR/.git-cvsps-result > $PROJECT_GITDIR/.cvs2git_updatescript

else

if test -f $PROJECT_GITDIR/.cvs2git_patchsetnr; then PATCHSETNR=`cat $PROJECT_GITDIR/.cvs2git_patchsetnr`; else PATCHSETNR=`cvsps | grep "^PatchSet " | tail -n1 | cut -f2 -d' '` fi let PATCHSETNR=$PATCHSETNR+1

# Updating from patchset $PATCHSETNR... TZ=UTC cvsps $CVSPS_OPTIONS -x -s $PATCHSETNR- -A > $PROJECT_GITDIR/.git-cvsps-result if test ! -s $PROJECT_GITDIR/.git-cvsps-result; then echo "No new patchsets available" exit 2 fi git-cvs2git -u --cvsroot=`cat CVS/Root` --module=`cat CVS/Repository` < $PROJECT_GITDIR/.git-cvsps-result > $PROJECT_GITDIR/.cvs2git_updatescript

fi

# Storing last patchset number $PATCHSETNR PATCHSETNR=`grep "^PatchSet " $PROJECT_GITDIR/.git-cvsps-result | tail -n1 | cut -f2 -d' '` echo $PATCHSETNR > $PROJECT_GITDIR/.cvs2git_patchsetnr

# And finally, execute the generated script cd $PROJECT_GITDIR sh .cvs2git_updatescript

Next: Matthias Urlichs
Message 1 of 3 in “GIT-CVS sync script”
  1. Panagiotis IssarisJun 28, 2005
  2. Matthias UrlichsJun 28, 2005
  3. Linus TorvaldsJun 28, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.