source: trunk/UTIL/git_init.sh @ 3575

Last change on this file since 3575 was 3575, checked in by afalco, 17 hours ago

git-svn: added hooks on other operations such as merge and checkout, to synchronize git and svn more often (not just git push).

Unfortunately, "git pull" will still not call the hook if there are no changes on git remote master.
AF

  • Property svn:executable set to *
File size: 1.8 KB
Line 
1## Script to initialize the git repository and link it to the svn.
2## The synchronization requires two pushes
3## (1st push=svn dcommit, 2nd push=git push)
4## WARNING: we assume the svn and the git are up-to-date
5## https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Git-svn
6
7SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
8cd ${SCRIPT_DIR}/..
9
10echo "WARNING: this script will setup the git repository."
11echo "It will connect the git to the svn (git svn init) and"
12echo "install a hook to ensure the synchronization between the two."
13echo "The hook (UTIL/pre-push) will be called at each git push."
14# echo "or download it in the git-trunk/ folder (and link with git-svn)."
15
16# while true; do
17#     read -p "Do you wish to continue? [Y/n] " yn
18#     case $yn in
19#         [Yy]* ) break;;
20#         [Nn]* ) exit;;
21#         * ) break;;
22#     esac
23# done
24
25# URL=git@gitlab.in2p3.fr:la-communaut-des-mod-les-atmosph-riques-plan-taires/git-trunk.git
26# LOCAL_URL=`git remote get-url origin 2>/dev/null`
27# if [ "${LOCAL_URL}" !=  "${URL}" ];then
28#     git clone ${URL}
29#     cd git-trunk
30# fi
31
32### link svn to git as git-svn branch
33### (need git-svn to work)
34git svn init https://svn.lmd.jussieu.fr/Planeto/trunk
35
36git update-ref refs/remotes/git-svn refs/remotes/origin/master
37# git svn rebase # not used (we assume we're up-to-date)
38
39### install pre-push hook to ensure
40### users push only commits in sync with svn
41
42# save users hooks just in case
43echo "Saving old hooks in .git/hooks/save ..."
44mkdir -p .git/hooks
45if [ -d .git/hooks ];then
46    mkdir -p .git/hooks/save
47    mv .git/hooks/p* .git/hooks/save
48fi
49echo "Copying lmdz hooks in .git/hooks ..."
50cd .git/hooks
51for hook in ../../UTIL/hooks/*; do
52    file=$(basename $hook)
53    echo $file
54    ln -s $hook $file
55done
56
Note: See TracBrowser for help on using the repository browser.