Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
match-trees: convert splice_tree to object_id
author
Patryk Obara
<patryk.obara@gmail.com>
Sun, 28 Jan 2018 00:13:15 +0000
(
01:13
+0100)
committer
Junio C Hamano
<gitster@pobox.com>
Tue, 30 Jan 2018 18:42:36 +0000
(10:42 -0800)
Convert the definition of static recursive splice_tree function to use
struct object_id and adjust single caller.
Signed-off-by: Patryk Obara <patryk.obara@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
match-trees.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
97a41a0
)
diff --git
a/match-trees.c
b/match-trees.c
index 396b7338df2c53009900fbd3df36dd06a7219493..afb771c4f50cbb4517b5bc63096d4a0b9fb73346 100644
(file)
--- a/
match-trees.c
+++ b/
match-trees.c
@@
-158,22
+158,20
@@
static void match_trees(const struct object_id *hash1,
}
/*
}
/*
- * A tree "
hash1" has a subdirectory at "prefix". Come up with a
- *
tree object by replacing it with another tree "hash
2".
+ * A tree "
oid1" has a subdirectory at "prefix". Come up with a tree object by
+ *
replacing it with another tree "oid
2".
*/
*/
-static int splice_tree(const unsigned char *hash1,
- const char *prefix,
- const unsigned char *hash2,
- unsigned char *result)
+static int splice_tree(const struct object_id *oid1, const char *prefix,
+ const struct object_id *oid2, struct object_id *result)
{
char *subpath;
int toplen;
char *buf;
unsigned long sz;
struct tree_desc desc;
{
char *subpath;
int toplen;
char *buf;
unsigned long sz;
struct tree_desc desc;
-
unsigned char
*rewrite_here;
- const
unsigned char
*rewrite_with;
-
unsigned char subtree[20]
;
+
struct object_id
*rewrite_here;
+ const
struct object_id
*rewrite_with;
+
struct object_id subtree
;
enum object_type type;
int status;
enum object_type type;
int status;
@@
-182,9
+180,9
@@
static int splice_tree(const unsigned char *hash1,
if (*subpath)
subpath++;
if (*subpath)
subpath++;
- buf = read_sha1_file(
hash1
, &type, &sz);
+ buf = read_sha1_file(
oid1->hash
, &type, &sz);
if (!buf)
if (!buf)
- die("cannot read tree %s",
sha1_to_hex(hash
1));
+ die("cannot read tree %s",
oid_to_hex(oid
1));
init_tree_desc(&desc, buf, sz);
rewrite_here = NULL;
init_tree_desc(&desc, buf, sz);
rewrite_here = NULL;
@@
-197,26
+195,26
@@
static int splice_tree(const unsigned char *hash1,
if (strlen(name) == toplen &&
!memcmp(name, prefix, toplen)) {
if (!S_ISDIR(mode))
if (strlen(name) == toplen &&
!memcmp(name, prefix, toplen)) {
if (!S_ISDIR(mode))
- die("entry %s in tree %s is not a tree",
-
name, sha1_to_hex(hash
1));
- rewrite_here = (
unsigned char *) oid->hash
;
+ die("entry %s in tree %s is not a tree",
name,
+
oid_to_hex(oid
1));
+ rewrite_here = (
struct object_id *)oid
;
break;
}
update_tree_entry(&desc);
}
if (!rewrite_here)
break;
}
update_tree_entry(&desc);
}
if (!rewrite_here)
- die("entry %.*s not found in tree %s",
-
toplen, prefix, sha1_to_hex(hash
1));
+ die("entry %.*s not found in tree %s",
toplen, prefix,
+
oid_to_hex(oid
1));
if (*subpath) {
if (*subpath) {
- status = splice_tree(rewrite_here, subpath,
hash2,
subtree);
+ status = splice_tree(rewrite_here, subpath,
oid2, &
subtree);
if (status)
return status;
if (status)
return status;
- rewrite_with = subtree;
+ rewrite_with = &subtree;
+ } else {
+ rewrite_with = oid2;
}
}
- else
- rewrite_with = hash2;
- hashcpy(rewrite_here, rewrite_with);
- status = write_sha1_file(buf, sz, tree_type, result);
+ oidcpy(rewrite_here, rewrite_with);
+ status = write_sha1_file(buf, sz, tree_type, result->hash);
free(buf);
return status;
}
free(buf);
return status;
}
@@
-280,7
+278,7
@@
void shift_tree(const struct object_id *hash1,
if (!*add_prefix)
return;
if (!*add_prefix)
return;
- splice_tree(hash1
->hash, add_prefix, hash2->hash, shifted->hash
);
+ splice_tree(hash1
, add_prefix, hash2, shifted
);
}
/*
}
/*
@@
-334,7
+332,7
@@
void shift_tree_by(const struct object_id *hash1,
* shift tree2 down by adding shift_prefix above it
* to match tree1.
*/
* shift tree2 down by adding shift_prefix above it
* to match tree1.
*/
- splice_tree(hash1
->hash, shift_prefix, hash2->hash, shifted->hash
);
+ splice_tree(hash1
, shift_prefix, hash2, shifted
);
else
/*
* shift tree2 up by removing shift_prefix from it
else
/*
* shift tree2 up by removing shift_prefix from it