在同一个项目的SVN分支之间自动切换
问题描述:
开发人员在同一项目的不同SVN分支上工作时,如何设置环境路径,以便每次从一个分支切换到另一个分支时不需要设置路径?在同一个项目的SVN分支之间自动切换
我是一名Python开发人员,我发现自己在同一个项目的不同分支上工作,每当从一个分支切换到另一个分支时,导出每个PYTHONPATH都非常难看。
这就是如果你的IDE不会自动为你做(我正在使用vim)。
答
对于另一种选择,你可以使用一个符号链接,然后有你的环境变量指向它。像:
branch1/
branch2/
current -> branch1/
然后,如果你想在branch2上工作,只需指向'current'即可。你的环境变量将指向'当前'。
答
所以你的工作流程是保持单独的分支在不同的工作目录?这很好,这是一个非常合理的Subversion工作流程。
就我个人而言,我会更改您在源代码管理中的任何Python程序,以便在导入任何内容之前查找其自己的库并修改sys.path
;这样他们就可以工作,不管他们已经搬迁到哪里。
#!/usr/bin/env python
import os, sys
basedir = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, os.path.join(basedir, 'lib'))
如果你不这样做,你可以把一个包装可执行在你~/bin
也好,某处$PATH
,
#!/bin/bash
dir=$(pwd)
while [[ $dir !=/]]; do
if [[ -d "$dir/lib" ]]; then
export PYTHONPATH="$dir/lib${PYTHONPATH:+:$PYTHONPATH}"
break
fi
dir="${dir%/*}"
done
if (($# > 0)); then exec "[email protected]"; fi
简单地浏览了一lib
目录时,预先准备$PYTHONPATH
在运行任何你想要的之前。也许将其命名为“py
”。
$ cd dir1 # dir1/lib exists $ py ./my-program $ cd ../dir2 # dir2/lib exists $ py ./my-program
也可以有一个工作流程,你留在一个工作目录中,使用svn sw
来更改分支。由于您的路径永远不会改变,因此即使分支更改,设置PYTHONPATH
一次仍然有效。
(这是git,单调,汞等常见的工作流程)
看起来你正在做的事情非常错误......你是否正确使用“svn switch”命令? – Juliano 2009-05-28 17:44:54