Mercurial > hg > soundsoftware-site
comparison extra/soundsoftware/update-external-repo.sh @ 433:7fd72f22a42b bug_168
Ensure we always use the same version of hg
author | Chris Cannam |
---|---|
date | Mon, 06 Jun 2011 10:56:57 +0100 |
parents | d3af621ba9d4 |
children | 4eb486dbf730 |
comparison
equal
deleted
inserted
replaced
431:d3af621ba9d4 | 433:7fd72f22a42b |
---|---|
1 #!/bin/sh | 1 #!/bin/sh |
2 | 2 |
3 mirrordir="/var/mirror" | 3 mirrordir="/var/mirror" |
4 logfile="/var/www/test-cannam/log/update-external-repo.log" | 4 hg="/usr/local/bin/hg" |
5 | 5 |
6 project="$1" | 6 project="$1" |
7 local_repo="$2" | 7 local_repo="$2" |
8 remote_repo="$3" | 8 remote_repo="$3" |
9 | 9 |
64 | 64 |
65 # Repo mirror exists: update it | 65 # Repo mirror exists: update it |
66 echo "$$: Mirror for project $project exists at $project_repo_mirror, updating" 1>&2 | 66 echo "$$: Mirror for project $project exists at $project_repo_mirror, updating" 1>&2 |
67 | 67 |
68 if [ -d "$project_repo_mirror/.hg" ]; then | 68 if [ -d "$project_repo_mirror/.hg" ]; then |
69 hg --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" && success=true | 69 "$hg" --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" && success=true |
70 elif [ -d "$project_repo_mirror/.git" ]; then | 70 elif [ -d "$project_repo_mirror/.git" ]; then |
71 ( cd "$project_repo_mirror" && git pull "$remote_repo" master ) && success=true | 71 ( cd "$project_repo_mirror" && git pull "$remote_repo" master ) && success=true |
72 else | 72 else |
73 echo "$$: ERROR: Repo mirror dir $project_repo_mirror exists but is not an Hg or git repo" 1>&2 | 73 echo "$$: ERROR: Repo mirror dir $project_repo_mirror exists but is not an Hg or git repo" 1>&2 |
74 fi | 74 fi |
79 echo "$$: Mirror for project $project does not yet exist at $project_repo_mirror, trying to convert or clone" 1>&2 | 79 echo "$$: Mirror for project $project does not yet exist at $project_repo_mirror, trying to convert or clone" 1>&2 |
80 | 80 |
81 case "$remote_repo" in | 81 case "$remote_repo" in |
82 *git*) | 82 *git*) |
83 git clone "$remote_repo" "$project_repo_mirror" || | 83 git clone "$remote_repo" "$project_repo_mirror" || |
84 hg --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" | 84 "$hg" --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" |
85 ;; | 85 ;; |
86 *) | 86 *) |
87 hg --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" || | 87 "$hg" --config extensions.convert= convert --datesort "$remote_repo" "$project_repo_mirror" || |
88 git clone "$remote_repo" "$project_repo_mirror" || | 88 git clone "$remote_repo" "$project_repo_mirror" || |
89 hg clone "$remote_repo" "$project_repo_mirror" | 89 "$hg" clone "$remote_repo" "$project_repo_mirror" |
90 ;; | 90 ;; |
91 esac && success=true | 91 esac && success=true |
92 | 92 |
93 fi | 93 fi |
94 | 94 |
96 | 96 |
97 if [ -n "$success" ]; then | 97 if [ -n "$success" ]; then |
98 echo "$$: Update successful, pulling into local repo at $local_repo" | 98 echo "$$: Update successful, pulling into local repo at $local_repo" |
99 if [ -d "$project_repo_mirror/.git" ]; then | 99 if [ -d "$project_repo_mirror/.git" ]; then |
100 if [ ! -d "$local_repo" ]; then | 100 if [ ! -d "$local_repo" ]; then |
101 hg init "$local_repo" | 101 "$hg" init "$local_repo" |
102 fi | 102 fi |
103 ( cd "$local_repo" && hg --config extensions.hgext.git= pull "$project_repo_mirror" ) | 103 ( cd "$local_repo" && "$hg" --config extensions.hggit= pull "$project_repo_mirror" ) |
104 else | 104 else |
105 ( cd "$local_repo" && hg pull "$project_repo_mirror" ) | 105 ( cd "$local_repo" && "$hg" pull "$project_repo_mirror" ) |
106 fi | 106 fi |
107 fi | 107 fi |