mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-04 05:13:50 +00:00
move NAME and REUC extensions to sys/
This commit is contained in:
parent
0462fba538
commit
75d1c8c664
@ -84,19 +84,6 @@ typedef struct git_index_entry {
|
|||||||
char *path;
|
char *path;
|
||||||
} git_index_entry;
|
} git_index_entry;
|
||||||
|
|
||||||
typedef struct git_index_name_entry {
|
|
||||||
char *ancestor;
|
|
||||||
char *ours;
|
|
||||||
char *theirs;
|
|
||||||
} git_index_name_entry;
|
|
||||||
|
|
||||||
/** Representation of a resolve undo entry in the index. */
|
|
||||||
typedef struct git_index_reuc_entry {
|
|
||||||
unsigned int mode[3];
|
|
||||||
git_oid oid[3];
|
|
||||||
char *path;
|
|
||||||
} git_index_reuc_entry;
|
|
||||||
|
|
||||||
/** Capabilities of system that affect index actions. */
|
/** Capabilities of system that affect index actions. */
|
||||||
enum {
|
enum {
|
||||||
GIT_INDEXCAP_IGNORE_CASE = 1,
|
GIT_INDEXCAP_IGNORE_CASE = 1,
|
||||||
@ -484,149 +471,6 @@ GIT_EXTERN(int) git_index_has_conflicts(const git_index *index);
|
|||||||
|
|
||||||
/**@}*/
|
/**@}*/
|
||||||
|
|
||||||
/** @name Conflict Name entry functions
|
|
||||||
*
|
|
||||||
* These functions work on rename conflict entries.
|
|
||||||
*/
|
|
||||||
/**@{*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the count of filename conflict entries currently in the index.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @return integer of count of current filename conflict entries
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(unsigned int) git_index_name_entrycount(git_index *index);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a filename conflict entry from the index.
|
|
||||||
*
|
|
||||||
* The returned entry is read-only and should not be modified
|
|
||||||
* or freed by the caller.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @param n the position of the entry
|
|
||||||
* @return a pointer to the filename conflict entry; NULL if out of bounds
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(const git_index_name_entry *) git_index_name_get_byindex(
|
|
||||||
git_index *index, size_t n);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Record the filenames involved in a rename conflict.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @param ancestor the path of the file as it existed in the ancestor
|
|
||||||
* @param ours the path of the file as it existed in our tree
|
|
||||||
* @param theirs the path of the file as it existed in their tree
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(int) git_index_name_add(git_index *index,
|
|
||||||
const char *ancestor, const char *ours, const char *theirs);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove all filename conflict entries.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @return 0 or an error code
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(void) git_index_name_clear(git_index *index);
|
|
||||||
/**@}*/
|
|
||||||
|
|
||||||
/** @name Resolve Undo (REUC) index entry manipulation.
|
|
||||||
*
|
|
||||||
* These functions work on the Resolve Undo index extension and contains
|
|
||||||
* data about the original files that led to a merge conflict.
|
|
||||||
*/
|
|
||||||
/**@{*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the count of resolve undo entries currently in the index.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @return integer of count of current resolve undo entries
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(unsigned int) git_index_reuc_entrycount(git_index *index);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Finds the resolve undo entry that points to the given path in the Git
|
|
||||||
* index.
|
|
||||||
*
|
|
||||||
* @param at_pos the address to which the position of the reuc entry is written (optional)
|
|
||||||
* @param index an existing index object
|
|
||||||
* @param path path to search
|
|
||||||
* @return 0 if found, < 0 otherwise (GIT_ENOTFOUND)
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(int) git_index_reuc_find(size_t *at_pos, git_index *index, const char *path);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a resolve undo entry from the index.
|
|
||||||
*
|
|
||||||
* The returned entry is read-only and should not be modified
|
|
||||||
* or freed by the caller.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @param path path to search
|
|
||||||
* @return the resolve undo entry; NULL if not found
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(const git_index_reuc_entry *) git_index_reuc_get_bypath(git_index *index, const char *path);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get a resolve undo entry from the index.
|
|
||||||
*
|
|
||||||
* The returned entry is read-only and should not be modified
|
|
||||||
* or freed by the caller.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @param n the position of the entry
|
|
||||||
* @return a pointer to the resolve undo entry; NULL if out of bounds
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(const git_index_reuc_entry *) git_index_reuc_get_byindex(git_index *index, size_t n);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a resolve undo entry for a file based on the given parameters.
|
|
||||||
*
|
|
||||||
* The resolve undo entry contains the OIDs of files that were involved
|
|
||||||
* in a merge conflict after the conflict has been resolved. This allows
|
|
||||||
* conflicts to be re-resolved later.
|
|
||||||
*
|
|
||||||
* If there exists a resolve undo entry for the given path in the index,
|
|
||||||
* it will be removed.
|
|
||||||
*
|
|
||||||
* This method will fail in bare index instances.
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @param path filename to add
|
|
||||||
* @param ancestor_mode mode of the ancestor file
|
|
||||||
* @param ancestor_id oid of the ancestor file
|
|
||||||
* @param our_mode mode of our file
|
|
||||||
* @param our_id oid of our file
|
|
||||||
* @param their_mode mode of their file
|
|
||||||
* @param their_id oid of their file
|
|
||||||
* @return 0 or an error code
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(int) git_index_reuc_add(git_index *index, const char *path,
|
|
||||||
int ancestor_mode, const git_oid *ancestor_id,
|
|
||||||
int our_mode, const git_oid *our_id,
|
|
||||||
int their_mode, const git_oid *their_id);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove an resolve undo entry from the index
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @param n position of the resolve undo entry to remove
|
|
||||||
* @return 0 or an error code
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(int) git_index_reuc_remove(git_index *index, size_t n);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove all resolve undo entries from the index
|
|
||||||
*
|
|
||||||
* @param index an existing index object
|
|
||||||
* @return 0 or an error code
|
|
||||||
*/
|
|
||||||
GIT_EXTERN(void) git_index_reuc_clear(git_index *index);
|
|
||||||
|
|
||||||
/**@}*/
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
GIT_END_DECL
|
GIT_END_DECL
|
||||||
#endif
|
#endif
|
||||||
|
180
include/git2/sys/index.h
Normal file
180
include/git2/sys/index.h
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) the libgit2 contributors. All rights reserved.
|
||||||
|
*
|
||||||
|
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
||||||
|
* a Linking Exception. For full terms see the included COPYING file.
|
||||||
|
*/
|
||||||
|
#ifndef INCLUDE_sys_git_index_h__
|
||||||
|
#define INCLUDE_sys_git_index_h__
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file git2/sys/index.h
|
||||||
|
* @brief Low-level Git index manipulation routines
|
||||||
|
* @defgroup git_backend Git custom backend APIs
|
||||||
|
* @ingroup Git
|
||||||
|
* @{
|
||||||
|
*/
|
||||||
|
GIT_BEGIN_DECL
|
||||||
|
|
||||||
|
/** Representation of a rename conflict entry in the index. */
|
||||||
|
typedef struct git_index_name_entry {
|
||||||
|
char *ancestor;
|
||||||
|
char *ours;
|
||||||
|
char *theirs;
|
||||||
|
} git_index_name_entry;
|
||||||
|
|
||||||
|
/** Representation of a resolve undo entry in the index. */
|
||||||
|
typedef struct git_index_reuc_entry {
|
||||||
|
unsigned int mode[3];
|
||||||
|
git_oid oid[3];
|
||||||
|
char *path;
|
||||||
|
} git_index_reuc_entry;
|
||||||
|
|
||||||
|
/** @name Conflict Name entry functions
|
||||||
|
*
|
||||||
|
* These functions work on rename conflict entries.
|
||||||
|
*/
|
||||||
|
/**@{*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the count of filename conflict entries currently in the index.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @return integer of count of current filename conflict entries
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(unsigned int) git_index_name_entrycount(git_index *index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a filename conflict entry from the index.
|
||||||
|
*
|
||||||
|
* The returned entry is read-only and should not be modified
|
||||||
|
* or freed by the caller.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @param n the position of the entry
|
||||||
|
* @return a pointer to the filename conflict entry; NULL if out of bounds
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(const git_index_name_entry *) git_index_name_get_byindex(
|
||||||
|
git_index *index, size_t n);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Record the filenames involved in a rename conflict.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @param ancestor the path of the file as it existed in the ancestor
|
||||||
|
* @param ours the path of the file as it existed in our tree
|
||||||
|
* @param theirs the path of the file as it existed in their tree
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(int) git_index_name_add(git_index *index,
|
||||||
|
const char *ancestor, const char *ours, const char *theirs);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove all filename conflict entries.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @return 0 or an error code
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(void) git_index_name_clear(git_index *index);
|
||||||
|
|
||||||
|
/**@}*/
|
||||||
|
|
||||||
|
/** @name Resolve Undo (REUC) index entry manipulation.
|
||||||
|
*
|
||||||
|
* These functions work on the Resolve Undo index extension and contains
|
||||||
|
* data about the original files that led to a merge conflict.
|
||||||
|
*/
|
||||||
|
/**@{*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the count of resolve undo entries currently in the index.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @return integer of count of current resolve undo entries
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(unsigned int) git_index_reuc_entrycount(git_index *index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds the resolve undo entry that points to the given path in the Git
|
||||||
|
* index.
|
||||||
|
*
|
||||||
|
* @param at_pos the address to which the position of the reuc entry is written (optional)
|
||||||
|
* @param index an existing index object
|
||||||
|
* @param path path to search
|
||||||
|
* @return 0 if found, < 0 otherwise (GIT_ENOTFOUND)
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(int) git_index_reuc_find(size_t *at_pos, git_index *index, const char *path);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a resolve undo entry from the index.
|
||||||
|
*
|
||||||
|
* The returned entry is read-only and should not be modified
|
||||||
|
* or freed by the caller.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @param path path to search
|
||||||
|
* @return the resolve undo entry; NULL if not found
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(const git_index_reuc_entry *) git_index_reuc_get_bypath(git_index *index, const char *path);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a resolve undo entry from the index.
|
||||||
|
*
|
||||||
|
* The returned entry is read-only and should not be modified
|
||||||
|
* or freed by the caller.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @param n the position of the entry
|
||||||
|
* @return a pointer to the resolve undo entry; NULL if out of bounds
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(const git_index_reuc_entry *) git_index_reuc_get_byindex(git_index *index, size_t n);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a resolve undo entry for a file based on the given parameters.
|
||||||
|
*
|
||||||
|
* The resolve undo entry contains the OIDs of files that were involved
|
||||||
|
* in a merge conflict after the conflict has been resolved. This allows
|
||||||
|
* conflicts to be re-resolved later.
|
||||||
|
*
|
||||||
|
* If there exists a resolve undo entry for the given path in the index,
|
||||||
|
* it will be removed.
|
||||||
|
*
|
||||||
|
* This method will fail in bare index instances.
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @param path filename to add
|
||||||
|
* @param ancestor_mode mode of the ancestor file
|
||||||
|
* @param ancestor_id oid of the ancestor file
|
||||||
|
* @param our_mode mode of our file
|
||||||
|
* @param our_id oid of our file
|
||||||
|
* @param their_mode mode of their file
|
||||||
|
* @param their_id oid of their file
|
||||||
|
* @return 0 or an error code
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(int) git_index_reuc_add(git_index *index, const char *path,
|
||||||
|
int ancestor_mode, const git_oid *ancestor_id,
|
||||||
|
int our_mode, const git_oid *our_id,
|
||||||
|
int their_mode, const git_oid *their_id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove an resolve undo entry from the index
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @param n position of the resolve undo entry to remove
|
||||||
|
* @return 0 or an error code
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(int) git_index_reuc_remove(git_index *index, size_t n);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove all resolve undo entries from the index
|
||||||
|
*
|
||||||
|
* @param index an existing index object
|
||||||
|
* @return 0 or an error code
|
||||||
|
*/
|
||||||
|
GIT_EXTERN(void) git_index_reuc_clear(git_index *index);
|
||||||
|
|
||||||
|
/**@}*/
|
||||||
|
|
||||||
|
/** @} */
|
||||||
|
GIT_END_DECL
|
||||||
|
#endif
|
||||||
|
|
@ -19,6 +19,7 @@
|
|||||||
#include "git2/oid.h"
|
#include "git2/oid.h"
|
||||||
#include "git2/blob.h"
|
#include "git2/blob.h"
|
||||||
#include "git2/config.h"
|
#include "git2/config.h"
|
||||||
|
#include "git2/sys/index.h"
|
||||||
|
|
||||||
#define entry_size(type,len) ((offsetof(type, path) + (len) + 8) & ~7)
|
#define entry_size(type,len) ((offsetof(type, path) + (len) + 8) & ~7)
|
||||||
#define short_entry_size(len) entry_size(struct entry_short, len)
|
#define short_entry_size(len) entry_size(struct entry_short, len)
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "git2/signature.h"
|
#include "git2/signature.h"
|
||||||
#include "git2/config.h"
|
#include "git2/config.h"
|
||||||
#include "git2/tree.h"
|
#include "git2/tree.h"
|
||||||
|
#include "git2/sys/index.h"
|
||||||
|
|
||||||
#define GIT_MERGE_INDEX_ENTRY_EXISTS(X) ((X).mode != 0)
|
#define GIT_MERGE_INDEX_ENTRY_EXISTS(X) ((X).mode != 0)
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "clar_libgit2.h"
|
#include "clar_libgit2.h"
|
||||||
#include "index.h"
|
#include "index.h"
|
||||||
|
#include "git2/sys/index.h"
|
||||||
#include "git2/repository.h"
|
#include "git2/repository.h"
|
||||||
#include "../reset/reset_helpers.h"
|
#include "../reset/reset_helpers.h"
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "clar_libgit2.h"
|
#include "clar_libgit2.h"
|
||||||
#include "index.h"
|
#include "index.h"
|
||||||
|
#include "git2/sys/index.h"
|
||||||
#include "git2/repository.h"
|
#include "git2/repository.h"
|
||||||
#include "../reset/reset_helpers.h"
|
#include "../reset/reset_helpers.h"
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include "merge_helpers.h"
|
#include "merge_helpers.h"
|
||||||
#include "merge.h"
|
#include "merge.h"
|
||||||
#include "git2/merge.h"
|
#include "git2/merge.h"
|
||||||
|
#include "git2/sys/index.h"
|
||||||
|
|
||||||
int merge_trees_from_branches(
|
int merge_trees_from_branches(
|
||||||
git_index **index, git_repository *repo,
|
git_index **index, git_repository *repo,
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#include "../merge_helpers.h"
|
#include "../merge_helpers.h"
|
||||||
#include "refs.h"
|
#include "refs.h"
|
||||||
#include "fileops.h"
|
#include "fileops.h"
|
||||||
|
#include "git2/sys/index.h"
|
||||||
|
|
||||||
static git_repository *repo;
|
static git_repository *repo;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user