mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-04 15:20:50 +00:00
Make git_oid_cmp public and add git_oid__cmp
This commit is contained in:
parent
aa8f010120
commit
b7f167da29
@ -154,19 +154,7 @@ GIT_EXTERN(int) git_oid_compare(const git_oid *oid_a, const git_oid *oid_b);
|
|||||||
* @param b second oid structure.
|
* @param b second oid structure.
|
||||||
* @return <0, 0, >0 if a < b, a == b, a > b.
|
* @return <0, 0, >0 if a < b, a == b, a > b.
|
||||||
*/
|
*/
|
||||||
GIT_INLINE(int) git_oid_cmp(const git_oid *a, const git_oid *b)
|
GIT_EXTERN(int) git_oid_cmp(const git_oid *a, const git_oid *b);
|
||||||
{
|
|
||||||
const unsigned char *sha1 = a->id;
|
|
||||||
const unsigned char *sha2 = b->id;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < GIT_OID_RAWSZ; i++, sha1++, sha2++) {
|
|
||||||
if (*sha1 != *sha2)
|
|
||||||
return *sha1 - *sha2;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare two oid structures for equality
|
* Compare two oid structures for equality
|
||||||
|
@ -312,7 +312,7 @@ static int load_attr_blob_from_index(
|
|||||||
|
|
||||||
entry = git_index_get_byindex(index, pos);
|
entry = git_index_get_byindex(index, pos);
|
||||||
|
|
||||||
if (old_oid && git_oid_cmp(old_oid, &entry->oid) == 0)
|
if (old_oid && git_oid__cmp(old_oid, &entry->oid) == 0)
|
||||||
return GIT_ENOTFOUND;
|
return GIT_ENOTFOUND;
|
||||||
|
|
||||||
if ((error = git_blob_lookup(blob, repo, &entry->oid)) < 0)
|
if ((error = git_blob_lookup(blob, repo, &entry->oid)) < 0)
|
||||||
|
@ -138,7 +138,7 @@ static bool checkout_is_workdir_modified(
|
|||||||
if (!sm_oid)
|
if (!sm_oid)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return (git_oid_cmp(&baseitem->oid, sm_oid) != 0);
|
return (git_oid__cmp(&baseitem->oid, sm_oid) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Look at the cache to decide if the workdir is modified. If not,
|
/* Look at the cache to decide if the workdir is modified. If not,
|
||||||
@ -149,7 +149,7 @@ static bool checkout_is_workdir_modified(
|
|||||||
if (wditem->mtime.seconds == ie->mtime.seconds &&
|
if (wditem->mtime.seconds == ie->mtime.seconds &&
|
||||||
wditem->mtime.nanoseconds == ie->mtime.nanoseconds &&
|
wditem->mtime.nanoseconds == ie->mtime.nanoseconds &&
|
||||||
wditem->file_size == ie->file_size)
|
wditem->file_size == ie->file_size)
|
||||||
return (git_oid_cmp(&baseitem->oid, &ie->oid) != 0);
|
return (git_oid__cmp(&baseitem->oid, &ie->oid) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* depending on where base is coming from, we may or may not know
|
/* depending on where base is coming from, we may or may not know
|
||||||
@ -163,7 +163,7 @@ static bool checkout_is_workdir_modified(
|
|||||||
wditem->file_size, &oid) < 0)
|
wditem->file_size, &oid) < 0)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
return (git_oid_cmp(&baseitem->oid, &oid) != 0);
|
return (git_oid__cmp(&baseitem->oid, &oid) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define CHECKOUT_ACTION_IF(FLAG,YES,NO) \
|
#define CHECKOUT_ACTION_IF(FLAG,YES,NO) \
|
||||||
|
@ -132,7 +132,7 @@ static int reference_matches_remote_head(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (git_oid_cmp(&head_info->remote_head_oid, &oid) == 0) {
|
if (git_oid__cmp(&head_info->remote_head_oid, &oid) == 0) {
|
||||||
/* Determine the local reference name from the remote tracking one */
|
/* Determine the local reference name from the remote tracking one */
|
||||||
if (git_refspec_transform_l(
|
if (git_refspec_transform_l(
|
||||||
&head_info->branchname,
|
&head_info->branchname,
|
||||||
|
10
src/diff.c
10
src/diff.c
@ -196,21 +196,21 @@ static git_diff_delta *diff_delta__last_for_item(
|
|||||||
switch (delta->status) {
|
switch (delta->status) {
|
||||||
case GIT_DELTA_UNMODIFIED:
|
case GIT_DELTA_UNMODIFIED:
|
||||||
case GIT_DELTA_DELETED:
|
case GIT_DELTA_DELETED:
|
||||||
if (git_oid_cmp(&delta->old_file.oid, &item->oid) == 0)
|
if (git_oid__cmp(&delta->old_file.oid, &item->oid) == 0)
|
||||||
return delta;
|
return delta;
|
||||||
break;
|
break;
|
||||||
case GIT_DELTA_ADDED:
|
case GIT_DELTA_ADDED:
|
||||||
if (git_oid_cmp(&delta->new_file.oid, &item->oid) == 0)
|
if (git_oid__cmp(&delta->new_file.oid, &item->oid) == 0)
|
||||||
return delta;
|
return delta;
|
||||||
break;
|
break;
|
||||||
case GIT_DELTA_UNTRACKED:
|
case GIT_DELTA_UNTRACKED:
|
||||||
if (diff->strcomp(delta->new_file.path, item->path) == 0 &&
|
if (diff->strcomp(delta->new_file.path, item->path) == 0 &&
|
||||||
git_oid_cmp(&delta->new_file.oid, &item->oid) == 0)
|
git_oid__cmp(&delta->new_file.oid, &item->oid) == 0)
|
||||||
return delta;
|
return delta;
|
||||||
break;
|
break;
|
||||||
case GIT_DELTA_MODIFIED:
|
case GIT_DELTA_MODIFIED:
|
||||||
if (git_oid_cmp(&delta->old_file.oid, &item->oid) == 0 ||
|
if (git_oid__cmp(&delta->old_file.oid, &item->oid) == 0 ||
|
||||||
git_oid_cmp(&delta->new_file.oid, &item->oid) == 0)
|
git_oid__cmp(&delta->new_file.oid, &item->oid) == 0)
|
||||||
return delta;
|
return delta;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -660,7 +660,7 @@ static int diff_patch_load(
|
|||||||
*/
|
*/
|
||||||
if (check_if_unmodified &&
|
if (check_if_unmodified &&
|
||||||
delta->old_file.mode == delta->new_file.mode &&
|
delta->old_file.mode == delta->new_file.mode &&
|
||||||
!git_oid_cmp(&delta->old_file.oid, &delta->new_file.oid))
|
!git_oid__cmp(&delta->old_file.oid, &delta->new_file.oid))
|
||||||
{
|
{
|
||||||
delta->status = GIT_DELTA_UNMODIFIED;
|
delta->status = GIT_DELTA_UNMODIFIED;
|
||||||
|
|
||||||
@ -1388,7 +1388,7 @@ static int diff_single_apply(diff_single_data *data)
|
|||||||
(has_old ? GIT_DELTA_MODIFIED : GIT_DELTA_ADDED) :
|
(has_old ? GIT_DELTA_MODIFIED : GIT_DELTA_ADDED) :
|
||||||
(has_old ? GIT_DELTA_DELETED : GIT_DELTA_UNTRACKED);
|
(has_old ? GIT_DELTA_DELETED : GIT_DELTA_UNTRACKED);
|
||||||
|
|
||||||
if (git_oid_cmp(&delta->new_file.oid, &delta->old_file.oid) == 0)
|
if (git_oid__cmp(&delta->new_file.oid, &delta->old_file.oid) == 0)
|
||||||
delta->status = GIT_DELTA_UNMODIFIED;
|
delta->status = GIT_DELTA_UNMODIFIED;
|
||||||
|
|
||||||
if ((error = diff_delta_is_binary_by_content(
|
if ((error = diff_delta_is_binary_by_content(
|
||||||
|
@ -429,7 +429,7 @@ static int similarity_measure(
|
|||||||
if (GIT_MODE_TYPE(a_file->mode) != GIT_MODE_TYPE(b_file->mode))
|
if (GIT_MODE_TYPE(a_file->mode) != GIT_MODE_TYPE(b_file->mode))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (git_oid_cmp(&a_file->oid, &b_file->oid) == 0)
|
if (git_oid__cmp(&a_file->oid, &b_file->oid) == 0)
|
||||||
return 100;
|
return 100;
|
||||||
|
|
||||||
/* update signature cache if needed */
|
/* update signature cache if needed */
|
||||||
|
@ -1411,7 +1411,7 @@ static int parse_index(git_index *index, const char *buffer, size_t buffer_size)
|
|||||||
/* 160-bit SHA-1 over the content of the index file before this checksum. */
|
/* 160-bit SHA-1 over the content of the index file before this checksum. */
|
||||||
git_oid_fromraw(&checksum_expected, (const unsigned char *)buffer);
|
git_oid_fromraw(&checksum_expected, (const unsigned char *)buffer);
|
||||||
|
|
||||||
if (git_oid_cmp(&checksum_calculated, &checksum_expected) != 0)
|
if (git_oid__cmp(&checksum_calculated, &checksum_expected) != 0)
|
||||||
return index_error_invalid("calculated checksum does not match expected");
|
return index_error_invalid("calculated checksum does not match expected");
|
||||||
|
|
||||||
#undef seek_forward
|
#undef seek_forward
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
#include "git2/indexer.h"
|
#include "git2/indexer.h"
|
||||||
#include "git2/object.h"
|
#include "git2/object.h"
|
||||||
#include "git2/oid.h"
|
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "pack.h"
|
#include "pack.h"
|
||||||
@ -17,6 +16,7 @@
|
|||||||
#include "posix.h"
|
#include "posix.h"
|
||||||
#include "pack.h"
|
#include "pack.h"
|
||||||
#include "filebuf.h"
|
#include "filebuf.h"
|
||||||
|
#include "oid.h"
|
||||||
#include "oidmap.h"
|
#include "oidmap.h"
|
||||||
|
|
||||||
#define UINT31_MAX (0x7FFFFFFF)
|
#define UINT31_MAX (0x7FFFFFFF)
|
||||||
@ -103,7 +103,7 @@ static int objects_cmp(const void *a, const void *b)
|
|||||||
const struct entry *entrya = a;
|
const struct entry *entrya = a;
|
||||||
const struct entry *entryb = b;
|
const struct entry *entryb = b;
|
||||||
|
|
||||||
return git_oid_cmp(&entrya->oid, &entryb->oid);
|
return git_oid__cmp(&entrya->oid, &entryb->oid);
|
||||||
}
|
}
|
||||||
|
|
||||||
int git_indexer_stream_new(
|
int git_indexer_stream_new(
|
||||||
|
@ -764,7 +764,7 @@ attempt_lookup:
|
|||||||
git__free(data);
|
git__free(data);
|
||||||
data = raw.data;
|
data = raw.data;
|
||||||
|
|
||||||
if (found && git_oid_cmp(&full_oid, &found_full_oid))
|
if (found && git_oid__cmp(&full_oid, &found_full_oid))
|
||||||
return git_odb__error_ambiguous("multiple matches for prefix");
|
return git_odb__error_ambiguous("multiple matches for prefix");
|
||||||
|
|
||||||
found_full_oid = full_oid;
|
found_full_oid = full_oid;
|
||||||
|
@ -166,9 +166,9 @@ void git_oid_cpy(git_oid *out, const git_oid *src)
|
|||||||
memcpy(out->id, src->id, sizeof(out->id));
|
memcpy(out->id, src->id, sizeof(out->id));
|
||||||
}
|
}
|
||||||
|
|
||||||
int git_oid_compare(const git_oid *oid_a, const git_oid *oid_b)
|
int git_oid_cmp(const git_oid *a, const git_oid *b)
|
||||||
{
|
{
|
||||||
return git_oid_cmp(oid_a, oid_b);
|
return git_oid__cmp(a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
int git_oid_ncmp(const git_oid *oid_a, const git_oid *oid_b, size_t len)
|
int git_oid_ncmp(const git_oid *oid_a, const git_oid *oid_b, size_t len)
|
||||||
|
@ -12,8 +12,8 @@
|
|||||||
#include "sha1_lookup.h"
|
#include "sha1_lookup.h"
|
||||||
#include "mwindow.h"
|
#include "mwindow.h"
|
||||||
#include "fileops.h"
|
#include "fileops.h"
|
||||||
|
#include "oid.h"
|
||||||
|
|
||||||
#include "git2/oid.h"
|
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
|
|
||||||
static int packfile_open(struct git_pack_file *p);
|
static int packfile_open(struct git_pack_file *p);
|
||||||
@ -875,7 +875,7 @@ static int packfile_open(struct git_pack_file *p)
|
|||||||
|
|
||||||
idx_sha1 = ((unsigned char *)p->index_map.data) + p->index_map.len - 40;
|
idx_sha1 = ((unsigned char *)p->index_map.data) + p->index_map.len - 40;
|
||||||
|
|
||||||
if (git_oid_cmp(&sha1, (git_oid *)idx_sha1) == 0)
|
if (git_oid__cmp(&sha1, (git_oid *)idx_sha1) == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
@ -1139,7 +1139,7 @@ int git_pack_entry_find(
|
|||||||
if (len == GIT_OID_HEXSZ && p->num_bad_objects) {
|
if (len == GIT_OID_HEXSZ && p->num_bad_objects) {
|
||||||
unsigned i;
|
unsigned i;
|
||||||
for (i = 0; i < p->num_bad_objects; i++)
|
for (i = 0; i < p->num_bad_objects; i++)
|
||||||
if (git_oid_cmp(short_oid, &p->bad_object_sha1[i]) == 0)
|
if (git_oid__cmp(short_oid, &p->bad_object_sha1[i]) == 0)
|
||||||
return packfile_error("bad object found in packfile");
|
return packfile_error("bad object found in packfile");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -376,7 +376,7 @@ static int queue_differences(
|
|||||||
const git_tree_entry *d_entry = git_tree_entry_byindex(delta, j);
|
const git_tree_entry *d_entry = git_tree_entry_byindex(delta, j);
|
||||||
int cmp = 0;
|
int cmp = 0;
|
||||||
|
|
||||||
if (!git_oid_cmp(&b_entry->oid, &d_entry->oid))
|
if (!git_oid__cmp(&b_entry->oid, &d_entry->oid))
|
||||||
goto loop;
|
goto loop;
|
||||||
|
|
||||||
cmp = strcmp(b_entry->filename, d_entry->filename);
|
cmp = strcmp(b_entry->filename, d_entry->filename);
|
||||||
|
@ -831,7 +831,7 @@ int git_reference_cmp(git_reference *ref1, git_reference *ref2)
|
|||||||
if (type1 == GIT_REF_SYMBOLIC)
|
if (type1 == GIT_REF_SYMBOLIC)
|
||||||
return strcmp(ref1->target.symbolic, ref2->target.symbolic);
|
return strcmp(ref1->target.symbolic, ref2->target.symbolic);
|
||||||
|
|
||||||
return git_oid_cmp(&ref1->target.oid, &ref2->target.oid);
|
return git_oid__cmp(&ref1->target.oid, &ref2->target.oid);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int reference__update_terminal(
|
static int reference__update_terminal(
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include "git2/refdb.h"
|
#include "git2/refdb.h"
|
||||||
#include "strmap.h"
|
#include "strmap.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
|
#include "oid.h"
|
||||||
|
|
||||||
#define GIT_REFS_DIR "refs/"
|
#define GIT_REFS_DIR "refs/"
|
||||||
#define GIT_REFS_HEADS_DIR GIT_REFS_DIR "heads/"
|
#define GIT_REFS_HEADS_DIR GIT_REFS_DIR "heads/"
|
||||||
|
@ -845,7 +845,7 @@ static int update_tips_for_spec(git_remote *remote, git_refspec *spec, git_vecto
|
|||||||
if (error == GIT_ENOTFOUND)
|
if (error == GIT_ENOTFOUND)
|
||||||
memset(&old, 0, GIT_OID_RAWSZ);
|
memset(&old, 0, GIT_OID_RAWSZ);
|
||||||
|
|
||||||
if (!git_oid_cmp(&old, &head->oid))
|
if (!git_oid__cmp(&old, &head->oid))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* In autotag mode, don't overwrite any locally-existing tags */
|
/* In autotag mode, don't overwrite any locally-existing tags */
|
||||||
|
@ -282,7 +282,7 @@ static int local_push_copy_object(
|
|||||||
odb_obj_size) < 0 ||
|
odb_obj_size) < 0 ||
|
||||||
odb_stream->finalize_write(&remote_odb_obj_oid, odb_stream) < 0) {
|
odb_stream->finalize_write(&remote_odb_obj_oid, odb_stream) < 0) {
|
||||||
error = -1;
|
error = -1;
|
||||||
} else if (git_oid_cmp(&obj->id, &remote_odb_obj_oid) != 0) {
|
} else if (git_oid__cmp(&obj->id, &remote_odb_obj_oid) != 0) {
|
||||||
giterr_set(GITERR_ODB, "Error when writing object to remote odb "
|
giterr_set(GITERR_ODB, "Error when writing object to remote odb "
|
||||||
"during local push operation. Remote odb object oid does not "
|
"during local push operation. Remote odb object oid does not "
|
||||||
"match local oid.");
|
"match local oid.");
|
||||||
|
Loading…
Reference in New Issue
Block a user