不需要检出或工作副本的SVN提交

6

我正在编写一个perl脚本,需要每10分钟从我的硬盘提交一个新文件。

我想知道是否有可能在没有要提交的项目的工作副本的情况下执行提交操作?在执行提交操作之前,是否必须在我的硬盘上检出该项目的工作副本?

5个回答

11

如果这个目录下包含许多其他内容很多的文件,解决方法是进行浅层检出(shallow checkout)

svn checkout <url> <target> --depth empty
cd <target>
svn up <yourfile>

编辑你的文件...

svn commit <yourfile>
如果您使用较旧的Subversion版本,您可能会在此帖子中找到所需内容。

1
-1 但是可以使用 svn import。请参考 manojlds 的回答。 - Antonio Pérez
1
好的,我之前认为 svn import 只适用于新文件。不过我应该检查一下的。 - Antoine

9

@vishalkbhatt:如果这个回答解决了你的问题,你应该接受它。(通过点击答案投票计数器下面的钩子) - Antonio Pérez

2
因为您已经在使用Perl,所以您可以使用Subversion Perl绑定来满足您的需求。请查看CPan。这应该可以针对单个文件进行操作。请查看有关SVN模块的文档。可能还有其他示例,例如SVK(请查看源代码)。

我现在已经让svn导入工作了...唯一的问题是脚本应该在后台运行,而我不知道如何隐藏命令提示窗口,当脚本运行SVN导入命令并执行提交时会打开它...有什么想法吗? - vishalkbhatt
那么你是在Windows上工作。启动命令有参数吗?还是通过cmd/bat文件执行的? - khmarbaise
我已经用以下代码解决了问题:code use Win32::OLE; use Win32::GUI; $hw = Win32::GUI::GetPerlWindow(); Win32::GUI::Hide($hw); - vishalkbhatt

1

0

您可以使用Subversion远程API进行提交。这里是Java语言的示例,但是相同的API也适用于其他语言(如C、Perl等)。对于Perl绑定,示例中的SVNRepository类对应于SVN::Ra。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接