annotate .shell.d/50.vcs_functions.sh @ 363:51aaf8bcd6ec

vcs_functions: fix vcs_current_branch to use hg templating This takes it from 4 hg invocations to 1, and skips a bunch of pipelines.
author Augie Fackler <raf@durin42.com>
date Fri, 11 Sep 2015 09:53:34 -0400
parents 901e85174513
children 354d05616d65
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
1 ## vcs_functions
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
2 # This file contains a handful of functions that relate to using some version
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
3 # control tool or other.
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
4
133
5b0b8ad2cb2c vcs_functions: some versions of the shell don't like - in function names.
Augie Fackler <durin42@gmail.com>
parents: 129
diff changeset
5 function ezsvnsync() {
169
040ac89ffe1e ez-svn-sync: add usage help
Augie Fackler <durin42@gmail.com>
parents: 167
diff changeset
6 if [ x"$1" = "x" ] ; then
040ac89ffe1e ez-svn-sync: add usage help
Augie Fackler <durin42@gmail.com>
parents: 167
diff changeset
7 echo 'usage: ez-svn-sync repo url'
040ac89ffe1e ez-svn-sync: add usage help
Augie Fackler <durin42@gmail.com>
parents: 167
diff changeset
8 return 0
040ac89ffe1e ez-svn-sync: add usage help
Augie Fackler <durin42@gmail.com>
parents: 167
diff changeset
9 fi
63
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
10 local repo
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
11 repo=$1
169
040ac89ffe1e ez-svn-sync: add usage help
Augie Fackler <durin42@gmail.com>
parents: 167
diff changeset
12 local url
63
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
13 url=$2
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
14 svnadmin create $repo
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
15 echo '#!/bin/sh' >> $repo/hooks/pre-revprop-change
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
16 echo 'exit 0' >> $repo/hooks/pre-revprop-change
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
17 chmod +x $repo/hooks/pre-revprop-change
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
18 svnsync init file://`pwd`/$repo $url
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
19 svnsync sync file://`pwd`/$repo
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
20 }
133
5b0b8ad2cb2c vcs_functions: some versions of the shell don't like - in function names.
Augie Fackler <durin42@gmail.com>
parents: 129
diff changeset
21 alias ez-svn-sync=ezsvnsync
63
1b4067cc97ca Add a function to svnsync easier. Done this too many times because of hgsubversion.
Augie Fackler <durin42@gmail.com>
parents: 62
diff changeset
22
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
23 # Function to grab the url of an svn wc
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
24 function svnurlof() {
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
25 local url
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
26 url=`svn info $1 2> /dev/null | grep '^URL: ' | sed 's/URL: //'`
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
27 if [ x"$url" = "x" ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
28 url=`git svn info $1 2> /dev/null | grep '^URL: ' | sed 's/URL: //'`
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
29 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
30 if [ x"$url" = "x" ] ; then
46
8946e6ae2747 Stopgap hg-svn-mkbranch command to save me typing until the feature goes into hgsubversion itself.
Augie Fackler <durin42@gmail.com>
parents: 39
diff changeset
31 local dir
8946e6ae2747 Stopgap hg-svn-mkbranch command to save me typing until the feature goes into hgsubversion itself.
Augie Fackler <durin42@gmail.com>
parents: 39
diff changeset
32 dir=$1
8946e6ae2747 Stopgap hg-svn-mkbranch command to save me typing until the feature goes into hgsubversion itself.
Augie Fackler <durin42@gmail.com>
parents: 39
diff changeset
33 if [ x"$dir" = "x" ] ; then
8946e6ae2747 Stopgap hg-svn-mkbranch command to save me typing until the feature goes into hgsubversion itself.
Augie Fackler <durin42@gmail.com>
parents: 39
diff changeset
34 dir="."
8946e6ae2747 Stopgap hg-svn-mkbranch command to save me typing until the feature goes into hgsubversion itself.
Augie Fackler <durin42@gmail.com>
parents: 39
diff changeset
35 fi
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
36 url=`hg -R $dir svn info 2> /dev/null | grep '^URL: ' | sed 's/URL: //'`
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
37 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
38 if [ x"$url" = "x" ] ; then
167
f485c32913cd vcs functions: refer to hgsubversion by the real name
Augie Fackler <durin42@gmail.com>
parents: 156
diff changeset
39 echo -n 'No repo found (tried svn, git-svn, hgsubversion)'
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
40 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
41 echo $url
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
42 }
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
43
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
44 # Function to clean locks out of svn wcs
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
45 function clean_svn_source_trees() {
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
46 for aa in */ ; do
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
47 pushd $aa > /dev/null
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
48 if [ -e .svn ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
49 echo $aa 'is an svn checkout, cleaning' && svn cleanup
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
50 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
51 popd > /dev/null
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
52 done
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
53 }
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
54
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
55 # Function to update source trees of known VCS tools in the working dir.
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
56 # "known" means ones I'm forced to use on a regular basis
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
57 function update_source_trees() {
184
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
58 if ! ls -l | egrep ^d > /dev/null ; then
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
59 ls -l | egrep ^d
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
60 return
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
61 fi
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
62 local hgpath
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
63 for aa in */ ; do
31
a5691a22c92b Fix a bug in update_source_trees where it could eat any existing dirstack
Augie Fackler <durin42@gmail.com>
parents: 16
diff changeset
64 pushd $aa > /dev/null || continue
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
65 if [ -e .svn ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
66 echo $aa 'is an svn checkout, updating'
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
67 svn up
115
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
68 elif [ -e README.txt ] \
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
69 && [ -e format ] \
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
70 && grep "This is a Subversion repository; use the 'svnadmin' tool to examine" README.txt > /dev/null \
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
71 && svn pl --revprop -r 0 file://$(pwd) | fgrep svn:sync-from-url > /dev/null\
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
72 ; then
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
73 echo "$aa looks like an svnsync clone, syncing"
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
74 svnsync sync file://$(pwd)
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
75 elif [ -e .git/svn ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
76 echo $aa 'is a git-svn checkout, updating'
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
77 git svn fetch
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
78 elif [ -e .git ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
79 echo $aa 'is a git checkout, updating'
233
da06f9fd5016 update-source-trees: git fetch all remotes instead of doing git pull origin master
Augie Fackler <durin42@gmail.com>
parents: 210
diff changeset
80 for remote in $(git remote) ; do
da06f9fd5016 update-source-trees: git fetch all remotes instead of doing git pull origin master
Augie Fackler <durin42@gmail.com>
parents: 210
diff changeset
81 git fetch $remote
da06f9fd5016 update-source-trees: git fetch all remotes instead of doing git pull origin master
Augie Fackler <durin42@gmail.com>
parents: 210
diff changeset
82 done
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
83 elif [ -e .hg ] ; then
184
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
84 echo $aa 'is an hg checkout, updating'
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
85 for hgpath in $(HGRCPATH=/dev/null hg paths | sed 's/.* = //g' | sort | uniq ) ; do
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
86 hg pull --update $hgpath
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
87 done
35
7e9269048856 Fix update_source_trees to also pull versioned mq if it exists.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
88 if [ -e .hg/patches/.hg ] ; then
7e9269048856 Fix update_source_trees to also pull versioned mq if it exists.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
89 echo $aa 'has an mq, updating that too...'
7e9269048856 Fix update_source_trees to also pull versioned mq if it exists.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
90 hg -R .hg/patches pull -u
7e9269048856 Fix update_source_trees to also pull versioned mq if it exists.
Augie Fackler <durin42@gmail.com>
parents: 31
diff changeset
91 fi
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
92 elif [ -e _MTN ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
93 echo $aa "is an mtn co, updating" && mtn pull && mtn up
184
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
94 else
efa2bfc73d2d update-source-trees: recurse to find all VCS working copies
Augie Fackler <durin42@gmail.com>
parents: 169
diff changeset
95 update_source_trees
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
96 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
97 popd > /dev/null
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
98 done
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
99 }
115
5f00625aa1ed Add support for svnsync to update_source_trees, alias update_source_trees to update-source-trees
Augie Fackler <durin42@gmail.com>
parents: 83
diff changeset
100 alias update-source-trees=update_source_trees
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
101
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
102 function vcs_current_branch() {
10
b4bfce76123f Reorder these checks. With my home being in hg, it was winning over any other
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
103 git branch 2> /dev/null > /dev/null
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
104 if [ $? = 0 ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
105 git branch --verbose | grep '^*' | sed 's/* //;s/ /:/;s/ .*//;s/:/ /'
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
106 return 0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
107 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
108 # when wc-ng comes out, we'll probably do the following
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
109 # svn info 2> /dev/null > /dev/null
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
110 if [ -e .svn ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
111 local d=`svn info | grep URL | sed 's/.*://'`
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
112 local br=`echo $d | awk '{
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
113 if ( index($1, "trunk") ) {
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
114 print "trunk"
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
115 } else {
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
116 x = index($1, "branches") ;
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
117 if ( x != 0 ) {
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
118 sub(".*/branches/", "");
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
119 sub("/.*", "");
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
120 print $0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
121 }
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
122 }
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
123 }'`
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
124 local rev=`svn info | grep Revision | sed 's/.*: /r/'`
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
125 echo $br $rev
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
126 return 0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
127 fi
363
51aaf8bcd6ec vcs_functions: fix vcs_current_branch to use hg templating
Augie Fackler <raf@durin42.com>
parents: 298
diff changeset
128 hginfo=$(hg log -r . -T'{if(activebookmark,"{activebookmark}","{branch}")} {shortest(node)}')
10
b4bfce76123f Reorder these checks. With my home being in hg, it was winning over any other
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
129 if [ $? = 0 ] ; then
363
51aaf8bcd6ec vcs_functions: fix vcs_current_branch to use hg templating
Augie Fackler <raf@durin42.com>
parents: 298
diff changeset
130 echo "$hginfo"
10
b4bfce76123f Reorder these checks. With my home being in hg, it was winning over any other
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
131 return 0
b4bfce76123f Reorder these checks. With my home being in hg, it was winning over any other
Augie Fackler <durin42@gmail.com>
parents: 0
diff changeset
132 fi
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
133 return 1
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
134 }
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
135
283
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
136 function find_dvcs_root() {
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
137 local hgroot=`hg root 2> /dev/null`
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
138 local gitroot=$(git rev-parse --show-toplevel 2> /dev/null)
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
139 local hglen=$(expr length $hgroot)
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
140 local gitlen=$(expr length $gitroot)
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
141 if [ $hglen -ge $gitlen ] ; then
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
142 if [ -n "$hgroot" ] ; then
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
143 echo $hgroot
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
144 return 0
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
145 fi
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
146 else
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
147 if [ -n "$gitroot" ] ; then
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
148 echo $gitroot
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
149 return 0
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
150 fi
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
151 fi
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
152 return 1
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
153 }
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
154
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
155 # change to the root dir of the current wc
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
156 function wcroot() {
283
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
157 local dvcsroot=$(find_dvcs_root)
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
158 if [ -n $dvcsroot ] ; then
533bde18976e find_dvcs_root: new function to find dvcs root dir more safely
Augie Fackler <durin42@gmail.com>
parents: 262
diff changeset
159 cd $dvcsroot
0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
160 return 0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
161 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
162 if [ -e .svn ] ; then
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
163 while [ -e ../.svn ] ; do
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
164 cd ..
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
165 done
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
166 return 0
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
167 fi
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
168 echo No working copy found'!'
c30d68fbd368 Initial import from svn.
Augie Fackler <durin42@gmail.com>
parents:
diff changeset
169 }