2

我有一个以前驻留在 Linux 服务器上的 SVN 预提交挂钩。我现在正试图将事情转移到 Windows (Server 2003) 服务器上。

这个钩子是用 Python 编写的,它在 Linux 上运行良好,它的#!/usr/bin/env python行在顶部。但是,Windows 不能以这种方式工作,并且需要挂钩是批处理文件(或其他格式,但仍然不是 Python)。

重要的是参数被传递给脚本,退出代码被返回给调用进程(SVN 服务器),以便它知道是否允许提交。我对文件语法几乎一无所知.bat,但我认为这样的事情可以解决问题:

C:\Python26\python.exe pre-commit.py %1 %2

我是否认为这是包装 Python 脚本的最简单方法?它会自动返回脚本的退出代码吗?

4

1 回答 1

2

回答我自己的问题:这几乎可行。通过ERRORLEVEL变量检测退出代码,但由于环境为空,必须完整指定脚本的路径。谢天谢地,第一个参数包含存储库的位置,所以它只是:

C:\Python26\python.exe %1\hooks\pre-commit.py %1 %2
于 2011-02-15T04:49:25.087 回答