projects
/
git.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix test case for some sed
[git.git]
/
write-tree.c
diff --git
a/write-tree.c
b/write-tree.c
index
a794ea1
..
addb5de
100644
(file)
--- a/
write-tree.c
+++ b/
write-tree.c
@@
-5,6
+5,8
@@
*/
#include "cache.h"
*/
#include "cache.h"
+static int missing_ok = 0;
+
static int check_valid_sha1(unsigned char *sha1)
{
int ret;
static int check_valid_sha1(unsigned char *sha1)
{
int ret;
@@
-61,7
+63,7
@@
static int write_tree(struct cache_entry **cachep, int maxentries, const char *b
sha1 = subdir_sha1;
}
sha1 = subdir_sha1;
}
- if (check_valid_sha1(sha1) < 0)
+ if (
!missing_ok &&
check_valid_sha1(sha1) < 0)
exit(1);
entrylen = pathlen - baselen;
exit(1);
entrylen = pathlen - baselen;
@@
-81,11
+83,26
@@
static int write_tree(struct cache_entry **cachep, int maxentries, const char *b
return nr;
}
return nr;
}
+static const char write_tree_usage[] = "git-write-tree [--missing-ok]";
+
int main(int argc, char **argv)
{
int i, funny;
int main(int argc, char **argv)
{
int i, funny;
- int entries
= read_cache()
;
+ int entries;
unsigned char sha1[20];
unsigned char sha1[20];
+
+ setup_git_directory();
+
+ entries = read_cache();
+ if (argc == 2) {
+ if (!strcmp(argv[1], "--missing-ok"))
+ missing_ok = 1;
+ else
+ die(write_tree_usage);
+ }
+
+ if (argc > 2)
+ die("too many options");
if (entries < 0)
die("git-write-tree: error reading cache");
if (entries < 0)
die("git-write-tree: error reading cache");
@@
-94,7
+111,7
@@
int main(int argc, char **argv)
funny = 0;
for (i = 0; i < entries; i++) {
struct cache_entry *ce = active_cache[i];
funny = 0;
for (i = 0; i < entries; i++) {
struct cache_entry *ce = active_cache[i];
- if (
ntohs(ce->ce_flags) & ~CE_NAMEMASK
) {
+ if (
ce_stage(ce)
) {
if (10 < ++funny) {
fprintf(stderr, "...\n");
break;
if (10 < ++funny) {
fprintf(stderr, "...\n");
break;