gpt4 book ai didi

python - Python 脚本中的 SVN Propset

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:40 25 4
gpt4 key购买 nike

我正在使用 python 脚本自动创建项目。我可以在 python 中创建存储库、 checkout 、提交和导入目录。

它似乎不会设置 svn:externals 属性。我可以从命令行设置它,但是当我尝试使用 subprocess.call 运行该命令时,它不起作用。

这是命令行(在 checkout 的项目目录中有效):

svn propset svn:externals "trunk/Source/Interactive/Flash.Externals https://server/svn/proj/" . 

这是脚本调用(在将存储库 checkout 到 gv.project_repo_dir 后运行):

# gv is a global variables object
odir = getcwd()
chdir(getcwd() + '/' + gv.project_repo_dir)
res = call(['svn', 'propset', 'svn:externals', \
'"'+ gv.interactive_subpath +'Flash.Externals '+ gv.mirror_project_repo_url +'"', \
'.'])
chdir(odir)

这是脚本运行时的错误:

svn: Error parsing svn:externals property on '.': '"trunk/Source/Interactive/Flash.Externals https://server/svn/proj/"'

我尝试过使用 shell=True 作为 call 的参数,但不使用;没有骰子。

有什么想法吗?

统计数据:

  • Python 2.7
  • Windows Server 2003
  • VisualSVN

最佳答案

我建议查看 pysvn 模块而不是通过命令行执行此操作:

http://pysvn.tigris.org/

但是如果你必须通过命令行来完成,你可以使用 os.system 调用而不是子进程吗?

os.system('svn propset svn:externals "trunk/Source/Interactive/Flash.Externals https://server/svn/proj/" . ')

应该“作为 shell”运行,您只是无法从中获得反馈 - 它将运行命令并等待命令完成。

那,或者你可以尝试分解命令(不能 100% 确定这在 Windows 中是否有效,但相当确定):

import shlex
commands = shlex.split('svn propset svn:externals "trunk/Source/Interactive/Flash.Externals https://server/svn/proj/" .')
subprocess.call(commands)

关于python - Python 脚本中的 SVN Propset,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11785476/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com