/* ====================================================================
* Copyright (c) 2003-2006, Martin Hauner
* http://subcommander.tigris.org
*
* Subcommander is licensed as described in the file doc/COPYING, which
* you should have received as part of this distribution.
* ====================================================================
*/
#ifndef _SVN_VISUALDIFF_H
#define _SVN_VISUALDIFF_H
// util
#include "util/String.h"
// apr
struct apr_pool_t;
// svn
struct svn_error_t;
struct svn_client_ctx_t;
struct svn_opt_revision_t;
namespace svn
{
/**
* prepare and run visual diffs
*/
class VisualDiff
{
public:
VisualDiff( svn_client_ctx_t* context, const sc::String& diffCmd,
apr_pool_t* pool );
~VisualDiff();
svn_error_t* run( const char* path1, const svn_opt_revision_t* revision1,
const char* path2, const svn_opt_revision_t* revision2 );
svn_error_t* run( const char* path, const svn_opt_revision_t* revision1,
const svn_opt_revision_t* revision2, const svn_opt_revision_t* peg );
private:
svn_error_t* diffWcWc( const char* path1, const svn_opt_revision_t* revision1,
const char* path2, const svn_opt_revision_t* revision2 );
svn_error_t* diffRpRp( const char* path1, const svn_opt_revision_t* revision1,
const char* path2, const svn_opt_revision_t* revision2, const
svn_opt_revision_t* peg );
svn_error_t* diffRpWc( const char* path1, const svn_opt_revision_t* revision1,
const char* path2, const svn_opt_revision_t* revision2, const
svn_opt_revision_t* peg, bool rpwc );
svn_error_t* run( const char* path1, const char* label1, const char* path2,
const char* label2 );
private:
apr_pool_t* _pool;
svn_client_ctx_t* _context;
sc::String _diffCmd;
sc::String _removePath1;
sc::String _removePath2;
};
} // namespace
#endif // _SVN_VISUALDIFF_H
syntax highlighted by Code2HTML, v. 0.9.1