summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ab90ea5)
raw | patch | inline | side by side (parent: ab90ea5)
author | Bryan Larsen <bryanlarsen@yahoo.com> | |
Mon, 11 Jul 2005 03:53:44 +0000 (20:53 -0700) | ||
committer | Linus Torvalds <torvalds@g5.osdl.org> | |
Mon, 11 Jul 2005 17:20:53 +0000 (10:20 -0700) |
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>
in the database.
Signed-off-by: Bryan Larsen <bryan.larsen@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Documentation/git-write-tree.txt | patch | blob | history | |
write-tree.c | patch | blob | history |
index 458d97ac986ff7324c105b5fe0222507ce514f04..4c7db5f59ad39ccf42ef2e85f2d40a4ffc03bd1b 100644 (file)
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.
////////////////////////////////////////////////////////////////
diff --git a/write-tree.c b/write-tree.c
index a794ea15b89ece14570bb8bf3ed0b42ab65cd413..561a101fa97c4fbf044093bdfe2cae56b94ce8bf 100644 (file)
--- a/write-tree.c
+++ b/write-tree.c
*/
#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");