Perl SVN::客户端提交(带有注释/消息选项)
我正在尝试使用perlsvn::Client模块自动化一些svn任务 不幸的是,我找不到使用提交消息提交文件的选项。 目前我正在使用以下方法Perl SVN::客户端提交(带有注释/消息选项),perl,svn,Perl,Svn,我正在尝试使用perlsvn::Client模块自动化一些svn任务 不幸的是,我找不到使用提交消息提交文件的选项。 目前我正在使用以下方法 $client->commit($targets, $nonrecursive, $pool); 有人知道如何使用svn::Client在svn commit中添加注释/消息吗? perl是否有其他选项可以实现这一点 提前感谢。说您需要使用log\u msg回调 $client->commit($targets,$nonrecursive,$poo
$client->commit($targets, $nonrecursive, $pool);
有人知道如何使用svn::Client在svn commit中添加注释/消息吗?
perl是否有其他选项可以实现这一点
提前感谢。说您需要使用log\u msg
回调
$client->commit($targets,$nonrecursive,$pool)
提交目标引用的文件或目录。将使用log_msg回调获取提交的日志消息
以下是医生对log\u msg
的看法
$client->log\u msg(\&log\u msg)
设置客户端的日志消息回调
传递的代码引用的上下文。它总是返回
当前代码引用集
将调用此coderef指向的子例程以获取
任何将向repo提交修订的操作的日志消息
它接收4个参数。第一个参数是对
回调应在其中放置日志的标量值。如果你
要取消提交,可以将此标量设置为未定义。第二
值是指向可能保存该日志的任何临时文件的路径
消息,如果不存在这样的文件,则为undef(不过,如果log_msg为undef,
此值未定义)。日志消息必须是UTF8字符串,带有
低频线分离器。第三个参数是对数组的引用
svn\u客户端\u提交\u项3\t对象,可以是完全或仅
部分填写,具体取决于提交操作的类型。这个
第四个也是最后一个参数将是一个池
如果函数希望返回一个错误,它应该返回一个
svn\u error\t使用svn::error::create生成的对象。还有其他报税表吗
值将被解释为SVN\u无错误
根据这一点,可能最简单的方法就是在每次需要提交时调用它,然后安装一条新消息
$client->log_msg( sub {
my ( $msg_ref, $path, $array_of_commit_obj, $pool ) = @_;
# set the message, beware the scalar reference
$$msg_ref = "Initial commit\n\nFollowed by a wall of text...";
return; # undef should be treated like SVN_NO_ERROR
});
$client->commit($targets, $nonrecursive, $pool);
# possibly call log_msg again to reset it.
如果您希望这更简单,您可以安装同一个处理程序一次,但对消息使用一个(可能是全局或包)变量
our $commit_message;
$client->log_msg( sub {
my ( $msg_ref, $path, $array_of_commit_obj, $pool ) = @_;
# set the message, beware the scalar reference
$$msg_ref = $commit_message;
return; # undef should be treated like SVN_NO_ERROR
});
# ...
for my $targets ( @list_of_targets ) {
$commit_message = get_msg($targets); # or whatever
$client->commit($targets, $nonrecursive, $pool);
}
这样,您可以重用回调,但每次都会更改消息
请注意,我没有尝试过这个。我所做的只是阅读文档并进行一些疯狂的猜测