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>
SYNOPSIS
--------
'git-write-tree'
+ [--missing-ok]
DESCRIPTION
-----------
now, you need to have done a "git-update-cache" phase before you did the
"git-write-tree".
-
+OPTIONS
+-------
+--missing-ok::
+ Normally "git-write-tree" ensures that the objects referenced by the
+ directory exist in the object database. This option disables this check.
////////////////////////////////////////////////////////////////
*/
#include "cache.h"
+static int missing_ok = 0;
+
static int check_valid_sha1(unsigned char *sha1)
{
int ret;
sha1 = subdir_sha1;
}
- if (check_valid_sha1(sha1) < 0)
+ if (!missing_ok && check_valid_sha1(sha1) < 0)
exit(1);
entrylen = pathlen - baselen;
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");