merge/diff3 implementation usign libsvn_diff

I require a merge/diff3 implementation for use on memory blocks using libsvn_diff (of the subversion project: [url removed, login to view]).

libsvn_diff already provides built-in functions for doing a merge/diff3 on files, using a built-in "handler" (called a diff_fns_t vtable stucture in subversion code). I require this functionality on blocks of memory, and I do not have enough knowlegde of the library's inner workings or of APR to implement this.

The work will be to create this diff_fns_t vtable "handler" for doing the merge/diff3 on memory blocks (as described below), so you should familiarize yourself with the code to see what's involved/needed.

The implementation will need to work the same way as the file functions do. You should be able to use the test cases in the project to verify proper function.

The code will be used in a commercial application, so it must be free of any retricting license or similar restrictions.

Basically something similar to:

svn_error_t *

mem_diff3(svn_diff_t **diff,

const char *original_data, int original_len,

const char *modified_data, int modified_len,

const char *latest_data, int latest_len,

apr_pool_t *pool);

svn_error_t *

mem_output_merge(char **output_data,

int *output_len,

svn_diff_t *diff,

const char *conflict_original,

const char *conflict_modified,

const char *conflict_latest,

const char *conflict_separator,

svn_boolean_t display_original_in_conflict,

svn_boolean_t display_resolved_conflicts,

apr_pool_t *pool);

that would use svn_diff_diff3() and svn_diff_output() subversion functions and behave like svn_diff_file_diff3 and svn_diff_file_output_merge() respectively but operate on data in memory and not on files - input and output data format would be the same (lines of text on input and merged output with conflicts marked as by svn_diff_file_output_merge).

Færdigheder: C programmering

Se mere: diff3 implementation, project handler, int i, free lines, data stucture, subversion, proper, merge data, int, inner, data merge, cases, implementation code, implementation project, memory file, merged, free format text, library free, data merge project, code blocks, blocks, handler application, data input test, function merge, merge project

Om arbejdsgiveren:
( 0 bedømmelser ) GTA, Canada

Projekt-ID: #27350

2 freelancere byder i gennemsnit $300 for dette job


Ready to start ;-) Regards, - Karl

$300 USD in 7 dage
(0 bedømmelser)

will give you best solutions

$300 USD in 20 dage
(0 bedømmelser)