lab 76 - using svn with gcode projects
NAME
This is not a typical lab, instead are some suggestions to work with svn repos (the ones provided by gcode); like inferno-lab or the rest of Inferno related projects at gcode.
NOTES
To work with svn the easiest way is to install subversion under the host os and write a wrapper to have the svn command available under Inferno, like:
cat > $home/dis/sh/svn << EOF #!/dis/sh load std wdir=`{hp `{pwd}} if {~ $emuhost Nt}{ os -d $wdir svn $* | tr -d ' ' }{ os -d $wdir svn $* } EOFThe svn script relies in hp, to convert the Inferno paths to host paths, so here is hp:
cat > $home/dis/sh/hp << EOF #!/dis/sh.dis # convert a inferno path to valid host path for os(1) load std if {no $*}{ echo 'usage: hpAfter giving them executable permission# to get host path' } if {~ $emuhost Nt}{ fn slashpath () { sed 's|\\|\\\\|g'; } # put two where there's one emuroot=`{echo $emuroot | slashpath | slashpath} for p in $* { cleanname -d `{pwd} $p | sed -n ' /^\/n\// {s|/n/(.)/|\1:\\\\|p; q;} s|^|'^$emuroot^'|p;' } }{ # host letters subst # hls="{ns | sed -n '/#U.+/ s|^bind -. ''#U(.*)'' (.*)|s\|\2\|\1/\|p|p'} for p in $* { cleanname -d `{pwd} $p | sed -n ' /^\/n\// {s|/n/local/|/|p; '^$hls^'; q;} s|^|'^$emuroot^'|p;' } } EOF
% chmod u+x $home/dis/sh/svn % chmod u+x $home/dis/sh/hpand binding with bind(1) $home/dis/sh to /dis,
% bind -b $home/dis/sh /disthis line can be added to your profile, to have them available when sh starts. After this commands under $home/dis/sh can be executed as any other sh(1) shell command available under /dis. To make an example now one can checkout inferno-lab running:
% svn checkout http://inferno-lab.googlecode.com/svn/trunk/ inferno-labAnd the same for the rest of svn commands, to check the status, diffs and commits. Good luck
Comments