#
# incremental import using git
#
+# required git repo already imported by cvs2git
# requires synced CVS files
# commit IDs need to be updated after new full cvs2svn import
#
# ==== import ====
# sync (fetch) files into jra1mw.cvs
-#
+./cvssync.sh
# sync fetched CVS repo to one-module CVS repo
rsync --archive --verbose jra1mw.cvs/ jra1mw-cvssync.cvs/jra1mw/
# import!
-[ -d "jra1mw-cvssync.git/.git" ] || (echo "First run! Preparation steps and initial import must be done manually." && exit 1)
+[ -d "jra1mw-cvssync.git/.git" ] || (echo "First run! Initial cvs2svn import must be done manually (although 'git cvsimport' will import something too)." && exit 1)
unset CVSROOT
+echo "git cvsimport..."
git cvsimport -d `pwd`/jra1mw-cvssync.cvs -C jra1mw-cvssync.git -a -k -z30 -A authors.txt jra1mw
-# firsttime setup
-#echo "jra1mw git repo for sync from LCG CVS." > jra1mw-cvssync.git/.git/description
-#
-#git clone /var/lib/git/jra1mw.git jra1mw-transfer
-#cd jra1mw-transfer
-#git remote add cvssync ../jra1mw-cvssync.git
-#git fetch cvssync
-#for b in branch_RC31_3 branch_2_0 branch_2_1 branch_workflow; do
-# echo $b
-# git checkout -b $b cvssync/$b || break
-#done
-#cd -
+# firsttime setup for incremental sync
+if [ ! -d "jra1mw-transfer/.git" ]; then
+ echo "jra1mw git repo for sync from LCG CVS." > jra1mw-cvssync.git/.git/description
+
+ git clone /var/lib/git/jra1mw.git jra1mw-transfer
+ cd jra1mw-transfer
+ git remote add cvssync ../jra1mw-cvssync.git
+ git fetch cvssync
+ for b in branch_RC31_3 branch_2_0 branch_2_1 branch_workflow; do
+ echo $b
+ git checkout -b $b origin/$b || break
+ #zadat tag do skriptu!
+ git log -n 1 cvssync/$b
+ done
+ git checkout master
+ cd -
+fi
cd jra1mw-transfer
git fetch cvssync
-#git checkout branch_RC31_3
-#git cherry-pick `git log --format=%H 4316f8ac93d4cfa61b471676c2f81e70f62f1b69..cvssync/branch_RC31_3`
-#
-#git checkout branch_2_0
-#git cherry-pick `git log --format=%H 385a0a242b5e4666192f1198df92d7d451c79164..cvssync/branch_2_0`
-#
-git checkout branch_2_1
-git cherry-pick `git log --format=%H 46021c94148d9d688604bcdbec0344e946d70053..cvssync/branch_2_1`
-
-git checkout branch_workflow
-git cherry-pick `git log --format=%H a0a362418b99167f40d1328ea8a934b147372329..cvssync/branch_workflow`
+echo "\
+branch_RC31_3 4316f8ac93d4cfa61b471676c2f81e70f62f1b69
+branch_2_0 385a0a242b5e4666192f1198df92d7d451c79164
+branch_2_1 46021c94148d9d688604bcdbec0344e946d70053
+branch_workflow a0a362418b99167f40d1328ea8a934b147372329
+master 86d4a33945bc77fe59369840a54d9d8a7c9e3ef3" | while read branch start; do
+ echo "$start..cvssync/$branch"
+ git checkout $branch || break
+ c=`git log --format=%H $start..cvssync/$branch --`
+ [ -z "$c" ] || git cherry-pick $c
+done
-git checkout master
-git cherry-pick `git log --format=%H 493486149be0129dd115b64cf1d15933c1d09da7..cvssync/master`
+echo "Really push? (CTRL-C for quit)"
+read
+git push