Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 自动在同一项目的SVN分支之间切换_Linux_Svn_Environment Variables - Fatal编程技术网

Linux 自动在同一项目的SVN分支之间切换

Linux 自动在同一项目的SVN分支之间切换,linux,svn,environment-variables,Linux,Svn,Environment Variables,在处理同一项目的不同SVN分支时,开发人员如何设置他们的环境路径,这样他们就不需要在每次从一个分支切换到另一个分支时设置他们的路径 我是一名Python开发人员,我发现自己在同一个项目的不同分支上工作,当我从一个分支切换到另一个分支时,每次导出PYTHONPATH都非常难看 也就是说,如果您的IDE没有自动为您执行此操作(我使用的是vim)。那么您的工作流程是在单独的工作目录中保留单独的分支?这很好,这是一个非常合理的工作流程,使用Subversion 就我个人而言,我会更改源代码管理中的任何P

在处理同一项目的不同SVN分支时,开发人员如何设置他们的环境路径,这样他们就不需要在每次从一个分支切换到另一个分支时设置他们的路径

我是一名Python开发人员,我发现自己在同一个项目的不同分支上工作,当我从一个分支切换到另一个分支时,每次导出PYTHONPATH都非常难看


也就是说,如果您的IDE没有自动为您执行此操作(我使用的是vim)。

那么您的工作流程是在单独的工作目录中保留单独的分支?这很好,这是一个非常合理的工作流程,使用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 "$@"; fi
它只需查找一个
lib
目录,在运行任何您想要的内容之前,将其前置到
$PYTHONPATH
。也许把它命名为“
py

$cd dir1#dir1/lib存在 $py./my程序 $cd../dir2#dir2/lib存在 $py./my程序 您还可以在一个工作目录中使用工作流来更改分支。由于您的路径永远不会更改,因此设置一次
PYTHONPATH
,即使分支发生更改,也会保持有效


(这是在、单调、hg等中常见的工作流)

对于另一个选项,您可以使用符号链接,然后让环境变量指向它。比如:

branch1/
branch2/
current -> branch1/

然后,如果你想在branch2上工作,只需将“current”指向它。您的环境变量将指向“当前”。

看起来您做错了什么。。。您是否正确使用“svn switch”命令?您是否询问在切换工作副本时如何更改环境变量?我知道如何切换环境变量。。。我在问是否可以自动完成,以防我忘了做。
branch1/
branch2/
current -> branch1/