[PATCH] add --missing-ok option to write-tree

This option allows a write-tree even if the referenced objects are not
in the database.

Signed-off-by: Bryan Larsen <bryan.larsen@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Bryan Larsen
2005-07-10 20:53:44 -07:00
committed by Linus Torvalds
parent ab90ea5d6e
commit 9c1fa70aaa
2 changed files with 19 additions and 2 deletions

View File

@ -5,6 +5,8 @@
*/
#include "cache.h"
static int missing_ok = 0;
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;
}
if (check_valid_sha1(sha1) < 0)
if (!missing_ok && check_valid_sha1(sha1) < 0)
exit(1);
entrylen = pathlen - baselen;
@ -86,6 +88,16 @@ int main(int argc, char **argv)
int i, funny;
int entries = read_cache();
unsigned char sha1[20];
if (argc==2) {
if (!strcmp(argv[1], "--missing-ok"))
missing_ok = 1;
else
die("unknown option %s", argv[1]);
}
if (argc>2)
die("too many options");
if (entries < 0)
die("git-write-tree: error reading cache");