Subversion:定义位置别名

时间:2009-10-28 11:23:51

标签: svn

我在使用svnserve的BSD盒子上有一个Subversion存储库,我正在通过BSD客户端访问它:

svn co svn://my.domain.com/my/repo/dirs ...

这很好,但我总是使用相同的域访问,我经常要检查几个不同的目录,重新输入域是一个痛苦。 svnserve二进制文件作为守护程序和指定的根目录调用:

svnserve -d -r /svn/root

我想配置我的subversion客户端,所以我可以输入类似的内容:

svn co dir1/ dir2/subdir dir2/subdir2/

签入,签出以及域名永远不会更改的任何其他内容。有一个默认目录来检查文件也是很好的。我看过这本书却没找到任何东西。我可以通过shell来做到这一点,但它似乎是Subversion可能具备的功能。

我没有读好这本书还是不可能?

2 个答案:

答案 0 :(得分:2)

我一直在看这个问题,等待一个好的答案。不幸的是没人有。 (你试过superuser.com吗?)

无论如何,我昨晚想到的一个想法是你可以使用环境变量。那会转向

svn co svn://my.domain.com/my/repo/prj1

进入

svn co $MY_REPO/prj1

答案 1 :(得分:1)

Subversion URL可能很长,因为系统名称很长,目录结构可能很长。除了绝对必要的服务之外,Subversion命令行客户端提供的服务很少。与其他版本控制系统(如CVS)不同,编写Subversion以允许自定义客户端。编写Subversion的人多次声明他们宁愿不将 features 添加到命令行客户端,而是改进Subversion本身,并且你总是可以自由地使用另一个客户端,或者编写自己的客户端。

您可以使用环境变量来缩短URL,这就是我的工作。我使用bash,所以这是在.bash_profile;

export repo="http://svn.vegicorp.net/repo"

这允许我使用我的环境变量:

$ svn co $repo/trunk/project

完全合法。在Unix shell中,shell首先抓取命令行,插入变量和模式,然后将其传递给命令。

有一段时间,我还编写了自己的 svn shell脚本,它记忆了存储库和分支并缩短了长命令,例如差异:

$ mysvn branch foo
$ mysvn repo $repo
$ mysvn co project               # svn co $repo/branches/foo/project
$ mysvn bdiff trunk 4.1 project  # svn diff $repo/trunk/project $repo/branches/4.1/project

我不再使用它了(我已经习惯了Subversion并且不介意长打字),但这是你可以轻松做的事情。