Mercurial > dotfiles
comparison .shell.d/50.vcs_functions.sh @ 184:efa2bfc73d2d
update-source-trees: recurse to find all VCS working copies
| author | Augie Fackler <durin42@gmail.com> |
|---|---|
| date | Tue, 26 Jan 2010 11:48:39 -0600 |
| parents | 040ac89ffe1e |
| children | e1a49db5c6ff |
comparison
equal
deleted
inserted
replaced
| 183:fe810e9731f0 | 184:efa2bfc73d2d |
|---|---|
| 123 } | 123 } |
| 124 | 124 |
| 125 # Function to update source trees of known VCS tools in the working dir. | 125 # Function to update source trees of known VCS tools in the working dir. |
| 126 # "known" means ones I'm forced to use on a regular basis | 126 # "known" means ones I'm forced to use on a regular basis |
| 127 function update_source_trees() { | 127 function update_source_trees() { |
| 128 if ! ls -l | egrep ^d > /dev/null ; then | |
| 129 ls -l | egrep ^d | |
| 130 return | |
| 131 fi | |
| 132 local hgpath | |
| 128 for aa in */ ; do | 133 for aa in */ ; do |
| 129 pushd $aa > /dev/null || continue | 134 pushd $aa > /dev/null || continue |
| 130 if [ -e .svn ] ; then | 135 if [ -e .svn ] ; then |
| 131 echo $aa 'is an svn checkout, updating' | 136 echo $aa 'is an svn checkout, updating' |
| 132 svn up | 137 svn up |
| 138 echo "$aa looks like an svnsync clone, syncing" | 143 echo "$aa looks like an svnsync clone, syncing" |
| 139 svnsync sync file://$(pwd) | 144 svnsync sync file://$(pwd) |
| 140 elif [ -e .git/svn ] ; then | 145 elif [ -e .git/svn ] ; then |
| 141 echo $aa 'is a git-svn checkout, updating' | 146 echo $aa 'is a git-svn checkout, updating' |
| 142 git svn fetch | 147 git svn fetch |
| 143 git repack | |
| 144 git gc | |
| 145 elif [ -e .git ] ; then | 148 elif [ -e .git ] ; then |
| 146 echo $aa 'is a git checkout, updating' | 149 echo $aa 'is a git checkout, updating' |
| 147 git pull origin master | 150 git pull origin master |
| 148 git repack | |
| 149 git gc | |
| 150 elif [ -e .hg ] ; then | 151 elif [ -e .hg ] ; then |
| 151 echo $aa 'is an hg checkout, updating' && hg pull && hg up | 152 echo $aa 'is an hg checkout, updating' |
| 153 for hgpath in $(HGRCPATH=/dev/null hg paths | sed 's/.* = //g' | sort | uniq ) ; do | |
| 154 hg pull --update $hgpath | |
| 155 done | |
| 152 if [ -e .hg/patches/.hg ] ; then | 156 if [ -e .hg/patches/.hg ] ; then |
| 153 echo $aa 'has an mq, updating that too...' | 157 echo $aa 'has an mq, updating that too...' |
| 154 hg -R .hg/patches pull -u | 158 hg -R .hg/patches pull -u |
| 155 fi | 159 fi |
| 156 elif [ -e _MTN ] ; then | 160 elif [ -e _MTN ] ; then |
| 157 echo $aa "is an mtn co, updating" && mtn pull && mtn up | 161 echo $aa "is an mtn co, updating" && mtn pull && mtn up |
| 162 else | |
| 163 update_source_trees | |
| 158 fi | 164 fi |
| 159 popd > /dev/null | 165 popd > /dev/null |
| 160 done | 166 done |
| 161 } | 167 } |
| 162 alias update-source-trees=update_source_trees | 168 alias update-source-trees=update_source_trees |
