2

我想编写一个 perl 脚本,通过它我可以从 SVN 存储库中签出/签入文件。
我检查了一些 Perl 模块,如,Alien::SVN等。SVN::CoreSVN::Client

但我真的找不到任何文件签出或签入的功能。

有人可以帮忙吗?

4

1 回答 1

4

SVN::Client可以检出和检入文件。

这是有关如何结帐的文档的摘录:

    $ctx->checkout($url, $path, $revision, $recursive, $pool);

使用 $path 作为新签出的工作副本的根目录,在 $revision 签出 $url 的工作副本。

$revision必须是数字、“HEAD”或日期。如果 $revision 不满足这些要求,$SVN::Error::CLIENT_BAD_REVISION则会提出。

返回实际从存储库中签出的修订值。

对于签到:

$ctx->commit($targets, $nonrecursive, $pool);

提交目标引用的文件或目录。将使用 log_msg 回调来获取提交的日志消息。

如果 $targets 不包含路径(零元素),则不执行任何操作并立即返回而不会出错。

使用以下任何操作在提交进行时调用通知回调:

$SVN::Wc::Notify::Action::commit_modified,
$SVN::Wc::Notify::Action::commit_added,
$SVN::Wc::Notify::Action::commit_deleted,
$SVN::Wc::Notify::Action::commit_replaced,
$SVN::Wc::Notify::Action::commit_postfix_txdelta.

用于$nonrecursive指示应忽略目录目标的子目录。

返回一个 svn_client_commit_info_t 对象。如果提交信息对象的修订成员是$SVN::Core::INVALID_REVNUM并且没有引发错误,则提交是空操作;什么都不需要提交。

于 2012-11-07T14:43:22.607 回答