我想编写一个 perl 脚本,通过它我可以从 SVN 存储库中签出/签入文件。
我检查了一些 Perl 模块,如,Alien::SVN
等。SVN::Core
SVN::Client
但我真的找不到任何文件签出或签入的功能。
有人可以帮忙吗?
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
并且没有引发错误,则提交是空操作;什么都不需要提交。