示例#1
0
static git_diff_parsed *diff_parsed_alloc(void)
{
	git_diff_parsed *diff;

	if ((diff = git__calloc(1, sizeof(git_diff_parsed))) == NULL)
		return NULL;

	GIT_REFCOUNT_INC(diff);
	diff->base.type = GIT_DIFF_TYPE_PARSED;
	diff->base.strcomp = git__strcmp;
	diff->base.strncomp = git__strncmp;
	diff->base.pfxcomp = git__prefixcmp;
	diff->base.entrycomp = git_diff__entry_cmp;
	diff->base.patch_fn = git_patch_parsed_from_diff;
	diff->base.free_fn = diff_parsed_free;

	if (git_diff_init_options(&diff->base.opts, GIT_DIFF_OPTIONS_VERSION) < 0) {
		git__free(diff);
		return NULL;
	}

	diff->base.opts.flags &= ~GIT_DIFF_IGNORE_CASE;

	git_pool_init(&diff->base.pool, 1);

	if (git_vector_init(&diff->patches, 0, NULL) < 0 ||
		git_vector_init(&diff->base.deltas, 0, git_diff_delta__cmp) < 0) {
		git_diff_free(&diff->base);
		return NULL;
	}

	git_vector_set_cmp(&diff->base.deltas, git_diff_delta__cmp);

	return diff;
}
mrb_value
mrb_Git_DiffOptions_initialize(mrb_state* mrb, mrb_value self) {
  git_diff_options* native_object = (git_diff_options*)calloc(1, sizeof(git_diff_options));
  mruby_gift_git_diff_options_data_ptr(self, native_object);
  git_diff_init_options(native_object, GIT_DIFF_OPTIONS_VERSION);
  return self;
}
示例#3
0
文件: tree.c 项目: Angeldude/sonic-pi
void test_diff_tree__initialize(void)
{
	cl_git_pass(git_diff_init_options(&opts, GIT_DIFF_OPTIONS_VERSION));

	memset(&expect, 0, sizeof(expect));

	diff = NULL;
	a = NULL;
	b = NULL;
}
示例#4
0
void test_diff_blob__initialize(void)
{
	git_oid oid;

	g_repo = cl_git_sandbox_init("attr");

	cl_git_pass(git_diff_init_options(&opts, GIT_DIFF_OPTIONS_VERSION));
	opts.context_lines = 1;

	memset(&expected, 0, sizeof(expected));

	/* tests/resources/attr/root_test4.txt */
	cl_git_pass(git_oid_fromstrn(&oid, "a0f7217a", 8));
	cl_git_pass(git_blob_lookup_prefix(&d, g_repo, &oid, 8));

	/* alien.png */
	cl_git_pass(git_oid_fromstrn(&oid, "edf3dcee", 8));
	cl_git_pass(git_blob_lookup_prefix(&alien, g_repo, &oid, 8));
}
示例#5
0
DiffOptions::DiffOptions()
{
	git_diff_init_options(&diffopts_, GIT_DIFF_OPTIONS_VERSION);
	git_diff_find_init_options(&findopts_, GIT_DIFF_FIND_OPTIONS_VERSION);
}
示例#6
0
文件: diff.c 项目: jwes/luagi
int luagi_diff_init_options( lua_State *L, int idx, git_diff_options *opts )
{
   int ret = git_diff_init_options( opts, GIT_DIFF_OPTIONS_VERSION );
   if( lua_type( L, idx ) == LUA_TTABLE )
   {

      add_flag( opts->flags, L, idx,
               NORMAL,
               GIT_DIFF_NORMAL );
      add_flag( opts->flags, L, idx,
               REVERSE,
               GIT_DIFF_REVERSE );
      add_flag( opts->flags, L, idx,
               INCLUDE_IGNORED,
               GIT_DIFF_INCLUDE_IGNORED );
      add_flag( opts->flags, L, idx,
               RECURSE_IGNORED_DIRS,
               GIT_DIFF_RECURSE_IGNORED_DIRS );
      add_flag( opts->flags, L, idx,
               INCLUDE_UNTRACKED,
               GIT_DIFF_INCLUDE_UNTRACKED );
      add_flag( opts->flags, L, idx,
               RECURSE_UNTRACKED_DIRS,
               GIT_DIFF_RECURSE_UNTRACKED_DIRS );
      add_flag( opts->flags, L, idx,
               INCLUDE_UNMODIFIED,
               GIT_DIFF_INCLUDE_UNMODIFIED );
      add_flag( opts->flags, L, idx,
               INCLUDE_TYPECHANGE,
               GIT_DIFF_INCLUDE_TYPECHANGE );
      add_flag( opts->flags, L, idx,
               INCLUDE_TYPECHANGE_TREES,
               GIT_DIFF_INCLUDE_TYPECHANGE_TREES );
      add_flag( opts->flags, L, idx,
               IGNORE_FILEMODE,
               GIT_DIFF_IGNORE_FILEMODE );
      add_flag( opts->flags, L, idx,
               IGNORE_SUBMODULES,
               GIT_DIFF_IGNORE_SUBMODULES );
      add_flag( opts->flags, L, idx,
               IGNORE_CASE,
               GIT_DIFF_IGNORE_CASE );
      add_flag( opts->flags, L, idx,
               DISABLE_PATHSPEC_MATCH,
               GIT_DIFF_DISABLE_PATHSPEC_MATCH );
      add_flag( opts->flags, L, idx,
               SKIP_BINARY_CHECK,
               GIT_DIFF_SKIP_BINARY_CHECK );
      add_flag( opts->flags, L, idx,
               ENABLE_FAST_UNTRACKED_DIRS,
               GIT_DIFF_ENABLE_FAST_UNTRACKED_DIRS );
      add_flag( opts->flags, L, idx,
               UPDATE_INDEX,
               GIT_DIFF_UPDATE_INDEX );
      add_flag( opts->flags, L, idx,
               FORCE_TEXT,
               GIT_DIFF_FORCE_TEXT );
      add_flag( opts->flags, L, idx,
               FORCE_BINARY,
               GIT_DIFF_FORCE_BINARY );
      add_flag( opts->flags, L, idx,
               IGNORE_WHITESPACE,
               GIT_DIFF_IGNORE_WHITESPACE );
      add_flag( opts->flags, L, idx,
               IGNORE_WHITESPACE_CHANGE,
               GIT_DIFF_IGNORE_WHITESPACE_CHANGE );
      add_flag( opts->flags, L, idx,
               IGNORE_WHITESPACE_EOL,
               GIT_DIFF_IGNORE_WHITESPACE_EOL );
      add_flag( opts->flags, L, idx,
               SHOW_UNTRACKED_CONTENT,
               GIT_DIFF_SHOW_UNTRACKED_CONTENT );
      add_flag( opts->flags, L, idx,
               SHOW_UNMODIFIED,
               GIT_DIFF_SHOW_UNMODIFIED );
      add_flag( opts->flags, L, idx,
               PATIENCE,
               GIT_DIFF_PATIENCE );
      add_flag( opts->flags, L, idx,
               MINIMAL,
               GIT_DIFF_MINIMAL );
      add_flag( opts->flags, L, idx,
               SHOW_BINARY,
               GIT_DIFF_SHOW_BINARY );
   
      lua_getfield( L, idx, IGNORE_SUBMODULES_TYPE );
      if( lua_type( L, -1 ) == LUA_TSTRING )
         opts->ignore_submodules = luagi_sub_check_ignore( L, -1 );
   
      lua_getfield( L, idx, PATHSPEC );
      if( lua_type( L, -1 ) == LUA_TTABLE )
      {
         opts->pathspec = ltk_check_strarray( L, -1 );
      }

      //TODO notify_cb
   
      lua_getfield( L, idx, CONTEXT_LINES );
      int context_lines = luaL_optinteger(L, -1, -1 );
      if( context_lines >= 0 )
      {
         opts->context_lines = context_lines;
      }

      lua_getfield( L, idx, INTERHUNK_LINES );
      int ihunk = luaL_optinteger( L, -1, -1 );
      if( ihunk >= 0 )
      {
         opts->interhunk_lines = ihunk;
      }
   
      lua_getfield( L, idx, ID_ABBREV );
      int ida = luaL_optinteger( L, -1, -1 );
      if( ida >= 0 )
      {
         opts->id_abbrev = ida;
      }
   
      lua_getfield( L, idx, MAX_SIZE );
      git_off_t msize = luaL_optinteger( L, -1, -1 );
      if( msize >= 0 )
      {
         opts->max_size = msize;
      }

      lua_getfield( L, idx, OLD_PREFIX );
      opts->old_prefix = luaL_optstring( L, -1, NULL );
   
      lua_getfield( L, idx, NEW_PREFIX );
      opts->new_prefix = luaL_optstring( L, -1, NULL );
   } 
   return ret;
}