libsvn - svn_client_checkout()

时间:2014-04-24 11:14:14

标签: c++ svn visual-c++

我正在努力做一个简单的结帐。我已经得到了我认为可行的代码,我可以编译它。

#include "stdafx.h"
#include "svn_pools.h"
#include "svn_client.h"


int _tmain(int argc, _TCHAR* argv[])
{
    svn_error_t *err;
    apr_pool_t *pool;
    svn_client_ctx_t *ctx;

    apr_initialize();
    pool = svn_pool_create( NULL );

    if ( err = svn_client_create_context( &ctx, pool ) )
    {
        svn_pool_destroy( pool );
            return 0;
    }

    err = svn_client_checkout( NULL, "http://tortoisesvn.googlecode.com/svn/trunk/src/ResText", "C:\\sve", NULL, true, ctx, pool );
    svn_pool_destroy( pool );
    return 0;
}

但是在运行时有错误的功能svn_client_checkout()。读取0x00000000时访问冲突。我发现我忘了初始化我的一个变量。但是什么,在哪里?

1 个答案:

答案 0 :(得分:0)

似乎第4个参数const svn_opt_revision_t *peg_revision不是可选的,因此NULL不会这样做。

初始化它,例如这样应该有效:

svn_opt_revision_t rev = {svn_opt_revision_head, 0};
svn_client_checkout(..., "C:\\sve", &rev, true, ...);

有关您可以设置和使用它的方法的详细信息,请参阅documentation for svn_opt_revision_t